mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-19 14:56:36 +00:00
openh264dec: Hook up openh264 messages to GStreamer logging
Use the OpenH264 callback to pass Openh264 internal warning/error messages through the GStreamer logging framework
This commit is contained in:
parent
d4594c5c75
commit
278cd35695
1 changed files with 30 additions and 0 deletions
|
@ -113,12 +113,34 @@ gst_openh264dec_init (GstOpenh264Dec * openh264dec)
|
||||||
gst_video_decoder_set_needs_format (GST_VIDEO_DECODER (openh264dec), TRUE);
|
gst_video_decoder_set_needs_format (GST_VIDEO_DECODER (openh264dec), TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
openh264_trace_cb (void *ctx, int level, const char *string)
|
||||||
|
{
|
||||||
|
GObject *o = G_OBJECT (ctx);
|
||||||
|
GstDebugLevel lvl = GST_LEVEL_WARNING;
|
||||||
|
|
||||||
|
if (level >= WELS_LOG_DETAIL)
|
||||||
|
lvl = GST_LEVEL_LOG;
|
||||||
|
else if (level >= WELS_LOG_DEBUG)
|
||||||
|
lvl = GST_LEVEL_DEBUG;
|
||||||
|
else if (level >= WELS_LOG_INFO)
|
||||||
|
lvl = GST_LEVEL_INFO;
|
||||||
|
else if (level >= WELS_LOG_WARNING)
|
||||||
|
lvl = GST_LEVEL_WARNING;
|
||||||
|
else if (level >= WELS_LOG_ERROR)
|
||||||
|
lvl = GST_LEVEL_ERROR;
|
||||||
|
|
||||||
|
gst_debug_log (GST_CAT_DEFAULT, lvl, "", "", 0, o, "%s", string);
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_openh264dec_start (GstVideoDecoder * decoder)
|
gst_openh264dec_start (GstVideoDecoder * decoder)
|
||||||
{
|
{
|
||||||
GstOpenh264Dec *openh264dec = GST_OPENH264DEC (decoder);
|
GstOpenh264Dec *openh264dec = GST_OPENH264DEC (decoder);
|
||||||
gint ret;
|
gint ret;
|
||||||
SDecodingParam dec_param = { 0 };
|
SDecodingParam dec_param = { 0 };
|
||||||
|
int log_level;
|
||||||
|
WelsTraceCallback log_cb;
|
||||||
|
|
||||||
if (openh264dec->decoder != NULL) {
|
if (openh264dec->decoder != NULL) {
|
||||||
openh264dec->decoder->Uninitialize ();
|
openh264dec->decoder->Uninitialize ();
|
||||||
|
@ -127,6 +149,14 @@ gst_openh264dec_start (GstVideoDecoder * decoder)
|
||||||
}
|
}
|
||||||
WelsCreateDecoder (&(openh264dec->decoder));
|
WelsCreateDecoder (&(openh264dec->decoder));
|
||||||
|
|
||||||
|
log_level = WELS_LOG_WARNING;
|
||||||
|
log_cb = openh264_trace_cb;
|
||||||
|
openh264dec->decoder->SetOption (DECODER_OPTION_TRACE_LEVEL, &log_level);
|
||||||
|
openh264dec->decoder->SetOption (DECODER_OPTION_TRACE_CALLBACK,
|
||||||
|
(void *) &log_cb);
|
||||||
|
openh264dec->decoder->SetOption (DECODER_OPTION_TRACE_CALLBACK_CONTEXT,
|
||||||
|
(void *) &decoder);
|
||||||
|
|
||||||
dec_param.uiTargetDqLayer = 255;
|
dec_param.uiTargetDqLayer = 255;
|
||||||
dec_param.eEcActiveIdc = ERROR_CON_FRAME_COPY;
|
dec_param.eEcActiveIdc = ERROR_CON_FRAME_COPY;
|
||||||
#if OPENH264_MAJOR == 1 && OPENH264_MINOR < 6
|
#if OPENH264_MAJOR == 1 && OPENH264_MINOR < 6
|
||||||
|
|
Loading…
Reference in a new issue