diff --git a/ChangeLog b/ChangeLog index c8d9cdfc01..4159930f37 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,21 @@ +2006-02-06 Tim-Philipp Müller + + * ext/dv/gstdvdemux.c: (gst_dvdemux_src_query), + (gst_dvdemux_sink_query): + * ext/flac/gstflacdec.c: (gst_flac_dec_src_query): + * ext/speex/gstspeexdec.c: (speex_get_query_types), + (speex_dec_src_query): + * ext/speex/gstspeexenc.c: (gst_speexenc_src_query), + (gst_speexenc_sink_query): + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_get_src_query_types), + (gst_matroska_demux_handle_src_query): + * gst/wavparse/gstwavparse.c: (gst_wavparse_get_query_types), + (gst_wavparse_pad_query): + Pass unhandled queries upstream instead of just dropping + them (#326446). Update query type arrays here and there. + 2006-02-06 Tim-Philipp Müller * tests/check/elements/matroskamux.c: (setup_src_pad): diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index e93d532c5a..5765aa30bc 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -516,7 +516,7 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } gst_object_unref (dvdemux); @@ -565,7 +565,7 @@ gst_dvdemux_sink_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } gst_object_unref (dvdemux); diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c index 836eadce04..92aa4e2cda 100644 --- a/ext/flac/gstflacdec.c +++ b/ext/flac/gstflacdec.c @@ -826,7 +826,7 @@ gst_flac_dec_src_query (GstPad * pad, GstQuery * query) } default:{ - res = FALSE; + res = gst_pad_query_default (pad, query); break; } } diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c index 5f68a32bbb..5bf95818ff 100644 --- a/ext/speex/gstspeexdec.c +++ b/ext/speex/gstspeexdec.c @@ -118,6 +118,7 @@ speex_get_query_types (GstPad * pad) { static const GstQueryType speex_dec_src_query_types[] = { GST_QUERY_POSITION, + GST_QUERY_DURATION, 0 }; @@ -212,6 +213,7 @@ static gboolean speex_dec_src_query (GstPad * pad, GstQuery * query) { GstSpeexDec *dec = GST_SPEEXDEC (GST_OBJECT_PARENT (pad)); + gboolean res = FALSE; switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION: @@ -221,10 +223,10 @@ speex_dec_src_query (GstPad * pad, GstQuery * query) gst_query_parse_position (query, &format, NULL); - speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, dec->samples_out, - &format, &cur); - - gst_query_set_position (query, format, cur); + if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, + dec->samples_out, &format, &cur))) { + gst_query_set_position (query, format, cur); + } break; } case GST_QUERY_DURATION: @@ -234,19 +236,19 @@ speex_dec_src_query (GstPad * pad, GstQuery * query) gint64 total_samples; if (!(peer = gst_pad_get_peer (dec->sinkpad))) - return FALSE; + break; gst_pad_query_duration (peer, &my_format, &total_samples); gst_object_unref (peer); - speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, total_samples, - &my_format, &total_samples); - - gst_query_set_duration (query, GST_FORMAT_TIME, total_samples); + if ((res = speex_dec_convert (dec->srcpad, GST_FORMAT_DEFAULT, + total_samples, &my_format, &total_samples))) { + gst_query_set_duration (query, GST_FORMAT_TIME, total_samples); + } break; } default: - return FALSE; + res = gst_pad_query_default (pad, query); break; } diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c index 7d6f369543..f3f680dbd4 100644 --- a/ext/speex/gstspeexenc.c +++ b/ext/speex/gstspeexenc.c @@ -440,7 +440,7 @@ gst_speexenc_src_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } @@ -473,7 +473,7 @@ gst_speexenc_sink_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index a67ebc2d5a..d4e22a1d35 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -416,7 +416,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 10c3c98c41..cdbeb2e7e8 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -928,6 +928,7 @@ gst_matroska_demux_get_src_query_types (GstPad * pad) { static const GstQueryType query_types[] = { GST_QUERY_POSITION, + GST_QUERY_DURATION, 0 }; @@ -981,6 +982,7 @@ gst_matroska_demux_handle_src_query (GstPad * pad, GstQuery * query) } default: + res = gst_pad_query_default (pad, query); break; } diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 81324ae783..d3b1b7f82c 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -1260,6 +1260,8 @@ gst_wavparse_get_query_types (GstPad * pad) { static const GstQueryType types[] = { GST_QUERY_POSITION, + GST_QUERY_DURATION, + GST_QUERY_CONVERT, 0 }; @@ -1343,7 +1345,7 @@ gst_wavparse_pad_query (GstPad * pad, GstQuery * query) break; } default: - res = FALSE; + res = gst_pad_query_default (pad, query); break; } return res;