From 1be0809073743e951c34669ac5a4cc9019554f17 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Mon, 28 Nov 2005 15:43:29 +0000 Subject: [PATCH] ext/faad/gstfaad.c: Handle gracefully the consequence of "Maximum number of scalefactor bands exceeded", which result... Original commit message from CVS: * ext/faad/gstfaad.c: (gst_faad_srcgetcaps): Handle gracefully the consequence of "Maximum number of scalefactor bands exceeded", which results in 0 channels with samplerates of 0. * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state): Do upward transitions, then call parent state_change, then do downward transitions. --- ChangeLog | 9 +++++++++ ext/faad/gstfaad.c | 4 ++-- gst/qtdemux/qtdemux.c | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 36a6338..73897bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-11-28 Edward Hervey + + * ext/faad/gstfaad.c: (gst_faad_srcgetcaps): + Handle gracefully the consequence of "Maximum number of scalefactor + bands exceeded", which results in 0 channels with samplerates of 0. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state): + Do upward transitions, then call parent state_change, then do + downward transitions. + 2005-11-28 Thomas Vander Stichele * ext/Makefile.am: diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c index 2dc9656..6057469 100644 --- a/ext/faad/gstfaad.c +++ b/ext/faad/gstfaad.c @@ -474,13 +474,13 @@ gst_faad_srcgetcaps (GstPad * pad) if (!str) continue; - if (faad->samplerate != -1) { + if (faad->samplerate > 0) { gst_structure_set (str, "rate", G_TYPE_INT, faad->samplerate, NULL); } else { gst_structure_set (str, "rate", GST_TYPE_INT_RANGE, 8000, 96000, NULL); } - if (faad->channels != -1) { + if (faad->channels > 0) { gst_structure_set (str, "channels", G_TYPE_INT, faad->channels, NULL); /* put channel information here */ diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index bb795bb..a569968 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -458,6 +458,9 @@ static GstStateChangeReturn gst_qtdemux_change_state (GstElement * element, GstStateChange transition) { GstQTDemux *qtdemux = GST_QTDEMUX (element); + GstStateChangeReturn result = GST_STATE_CHANGE_FAILURE; + + result = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); switch (transition) { case GST_STATE_CHANGE_PAUSED_TO_READY:{ @@ -480,7 +483,7 @@ gst_qtdemux_change_state (GstElement * element, GstStateChange transition) break; } - return GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + return result; } static void -- 2.7.4