From f1a6d84a6c4595a94c5654131a74b6a979f53a04 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 1 May 2013 17:36:47 +0100 Subject: [PATCH] mpegvideoparse: don't announce incomplete source caps Don't send any source caps yet if we're still in drop-buffers-until-we-get-a-sequence-header mode. Fixes transmuxing of many MPEG-TS/PS streams into formats which require things like width, height or codec_data on the input caps. Also fixes issues when using playbin with decoder sinks that want width/height etc. https://bugzilla.gnome.org/show_bug.cgi?id=695879 --- gst/videoparsers/gstmpegvideoparse.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c index 19c1221851..375c4cfc49 100644 --- a/gst/videoparsers/gstmpegvideoparse.c +++ b/gst/videoparsers/gstmpegvideoparse.c @@ -826,8 +826,6 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse); GstBuffer *buffer = frame->buffer; - gst_mpegv_parse_update_src_caps (mpvparse); - if (G_UNLIKELY (mpvparse->pichdr.pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_I)) GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); else @@ -854,8 +852,10 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame) if (G_UNLIKELY (mpvparse->drop && !mpvparse->config)) { GST_DEBUG_OBJECT (mpvparse, "dropping frame as no config yet"); return GST_BASE_PARSE_FLOW_DROPPED; - } else - return GST_FLOW_OK; + } + + gst_mpegv_parse_update_src_caps (mpvparse); + return GST_FLOW_OK; } static GstFlowReturn -- 2.34.1