summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--ext/faad/gstfaad.c4
-rw-r--r--gst/qtdemux/qtdemux.c5
3 files changed, 15 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 36a6338b..73897bfd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-11-28 Edward Hervey <edward@fluendo.com>
+
+ * 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 <thomas at apestaart dot org>
* ext/Makefile.am:
diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c
index 2dc96566..6057469c 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 bb795bb2..a5699688 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