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
This commit is contained in:
parent
9056e775a9
commit
f1a6d84a6c
@ -826,8 +826,6 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
|||||||
GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse);
|
GstMpegvParse *mpvparse = GST_MPEGVIDEO_PARSE (parse);
|
||||||
GstBuffer *buffer = frame->buffer;
|
GstBuffer *buffer = frame->buffer;
|
||||||
|
|
||||||
gst_mpegv_parse_update_src_caps (mpvparse);
|
|
||||||
|
|
||||||
if (G_UNLIKELY (mpvparse->pichdr.pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_I))
|
if (G_UNLIKELY (mpvparse->pichdr.pic_type == GST_MPEG_VIDEO_PICTURE_TYPE_I))
|
||||||
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
|
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
|
||||||
else
|
else
|
||||||
@ -854,8 +852,10 @@ gst_mpegv_parse_parse_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
|
|||||||
if (G_UNLIKELY (mpvparse->drop && !mpvparse->config)) {
|
if (G_UNLIKELY (mpvparse->drop && !mpvparse->config)) {
|
||||||
GST_DEBUG_OBJECT (mpvparse, "dropping frame as no config yet");
|
GST_DEBUG_OBJECT (mpvparse, "dropping frame as no config yet");
|
||||||
return GST_BASE_PARSE_FLOW_DROPPED;
|
return GST_BASE_PARSE_FLOW_DROPPED;
|
||||||
} else
|
}
|
||||||
return GST_FLOW_OK;
|
|
||||||
|
gst_mpegv_parse_update_src_caps (mpvparse);
|
||||||
|
return GST_FLOW_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstFlowReturn
|
static GstFlowReturn
|
||||||
|
Loading…
x
Reference in New Issue
Block a user