Browse Source

Separate gstreamer libryary internal api logging from QGC GStreamer class logging.

QGC4.4
DonLakeFlyer 4 years ago committed by Don Gagne
parent
commit
b10d482eb2
  1. 15
      src/VideoReceiver/GStreamer.cc
  2. 3
      src/VideoReceiver/GStreamer.h

15
src/VideoReceiver/GStreamer.cc

@ -20,6 +20,7 @@
#include "GstVideoReceiver.h" #include "GstVideoReceiver.h"
QGC_LOGGING_CATEGORY(GStreamerLog, "GStreamerLog") QGC_LOGGING_CATEGORY(GStreamerLog, "GStreamerLog")
QGC_LOGGING_CATEGORY(GStreamerAPILog, "GStreamerAPILog")
static void qt_gst_log(GstDebugCategory * category, static void qt_gst_log(GstDebugCategory * category,
GstDebugLevel level, GstDebugLevel level,
@ -43,20 +44,20 @@ static void qt_gst_log(GstDebugCategory * category,
switch (level) { switch (level) {
default: default:
case GST_LEVEL_ERROR: case GST_LEVEL_ERROR:
log.critical(GStreamerLog, "%s %s", object_info, gst_debug_message_get(message)); log.critical(GStreamerAPILog, "%s %s", object_info, gst_debug_message_get(message));
break; break;
case GST_LEVEL_WARNING: case GST_LEVEL_WARNING:
log.warning(GStreamerLog, "%s %s", object_info, gst_debug_message_get(message)); log.warning(GStreamerAPILog, "%s %s", object_info, gst_debug_message_get(message));
break; break;
case GST_LEVEL_FIXME: case GST_LEVEL_FIXME:
case GST_LEVEL_INFO: case GST_LEVEL_INFO:
log.info(GStreamerLog, "%s %s", object_info, gst_debug_message_get(message)); log.info(GStreamerAPILog, "%s %s", object_info, gst_debug_message_get(message));
break; break;
case GST_LEVEL_DEBUG: case GST_LEVEL_DEBUG:
case GST_LEVEL_LOG: case GST_LEVEL_LOG:
case GST_LEVEL_TRACE: case GST_LEVEL_TRACE:
case GST_LEVEL_MEMDUMP: case GST_LEVEL_MEMDUMP:
log.debug(GStreamerLog, "%s %s", object_info, gst_debug_message_get(message)); log.debug(GStreamerAPILog, "%s %s", object_info, gst_debug_message_get(message));
break; break;
} }
@ -118,11 +119,11 @@ GStreamer::blacklist(VideoSettings::VideoDecoderOptions option)
auto changeRank = [registry](const char* featureName, uint16_t rank) { auto changeRank = [registry](const char* featureName, uint16_t rank) {
GstPluginFeature* feature = gst_registry_lookup_feature(registry, featureName); GstPluginFeature* feature = gst_registry_lookup_feature(registry, featureName);
if (feature == nullptr) { if (feature == nullptr) {
qCDebug(GStreamerLog) << "Failed to change ranking of feature:" << featureName; qCWarning(GStreamerLog) << "Failed to change ranking of feature:" << featureName;
return; return;
} }
qCInfo(GStreamerLog) << "Changing feature (" << featureName << ") to use rank:" << rank; qCDebug(GStreamerLog) << "Changing feature (" << featureName << ") to use rank:" << rank;
gst_plugin_feature_set_rank(feature, rank); gst_plugin_feature_set_rank(feature, rank);
gst_registry_add_feature(registry, feature); gst_registry_add_feature(registry, feature);
gst_object_unref(feature); gst_object_unref(feature);
@ -259,7 +260,7 @@ GStreamer::createVideoSink(QObject* parent, QQuickItem* widget)
if ((sink = gst_element_factory_make("qgcvideosinkbin", nullptr)) != nullptr) { if ((sink = gst_element_factory_make("qgcvideosinkbin", nullptr)) != nullptr) {
g_object_set(sink, "widget", widget, NULL); g_object_set(sink, "widget", widget, NULL);
} else { } else {
qCritical() << "gst_element_factory_make('qgcvideosinkbin') failed"; qCCritical(GStreamerLog) << "gst_element_factory_make('qgcvideosinkbin') failed";
} }
return sink; return sink;

3
src/VideoReceiver/GStreamer.h

@ -6,6 +6,9 @@
#include "VideoReceiver.h" #include "VideoReceiver.h"
#include "VideoSettings.h" #include "VideoSettings.h"
Q_DECLARE_LOGGING_CATEGORY(GStreamerLog)
Q_DECLARE_LOGGING_CATEGORY(GStreamerAPILog)
class GStreamer { class GStreamer {
public: public:
static void blacklist(VideoSettings::VideoDecoderOptions option); static void blacklist(VideoSettings::VideoDecoderOptions option);

Loading…
Cancel
Save