diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gst/flv/gstflvparse.c | 11 |
2 files changed, 16 insertions, 2 deletions
@@ -1,5 +1,12 @@ 2008-10-27 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + If the caps change during playback and negotiation fails error out + instead of trying to continue. + +2008-10-27 Sebastian Dröge <sebastian.droege@collabora.co.uk> + * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), (gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer), (gst_flv_mux_collected): diff --git a/gst/flv/gstflvparse.c b/gst/flv/gstflvparse.c index d9cdb239..e7c4f144 100644 --- a/gst/flv/gstflvparse.c +++ b/gst/flv/gstflvparse.c @@ -606,7 +606,11 @@ gst_flv_parse_tag_audio (GstFLVDemux * demux, const guint8 * data, GST_DEBUG_OBJECT (demux, "audio settings have changed, changing caps"); /* Negotiate caps */ - gst_flv_parse_audio_negotiate (demux, codec_tag, rate, channels, width); + if (!gst_flv_parse_audio_negotiate (demux, codec_tag, rate, channels, + width)) { + ret = GST_FLOW_ERROR; + goto beach; + } } /* Push taglist if present */ @@ -907,7 +911,10 @@ gst_flv_parse_tag_video (GstFLVDemux * demux, const guint8 * data, GST_DEBUG_OBJECT (demux, "video settings have changed, changing caps"); - gst_flv_parse_video_negotiate (demux, codec_tag); + if (!gst_flv_parse_video_negotiate (demux, codec_tag)) { + ret = GST_FLOW_ERROR; + goto beach; + } /* When we ve set pixel-aspect-ratio we use that boolean to detect a * metadata tag that would come later and trigger a caps change */ |