summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim.muller@collabora.co.uk>2013-05-01 17:36:47 +0100
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2013-05-01 16:48:31 +0000
commitd4a9d5ae5c85054add2dcaf18493ae858f4a89ac (patch)
tree6a617a32c49aba628c5fb90289fb129d4ae0417f
parenta5f32013486cc88d1bcc1bebe178111a600fbc76 (diff)
downloadgstreamer-plugins-bad-d4a9d5ae5c85054add2dcaf18493ae858f4a89ac.tar.gz
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
-rw-r--r--gst/videoparsers/gstmpegvideoparse.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c
index 8743c7cbe..83ce17fd3 100644
--- a/gst/videoparsers/gstmpegvideoparse.c
+++ b/gst/videoparsers/gstmpegvideoparse.c
@@ -726,8 +726,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
@@ -749,8 +747,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