From 881490ded687a2712f7617dba3ccc1d9fd38b47b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 27 Oct 2008 09:35:34 +0000 Subject: gst/flv/gstflvparse.c: If the caps change during playback and negotiation fails error out instead of trying to continue. Original commit message from CVS: * 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. --- ChangeLog | 7 +++++++ gst/flv/gstflvparse.c | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 78f5366e..974db636 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-10-27 Sebastian Dröge + + * 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 * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), 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 */ -- cgit v1.2.1