videodecoder, audiodecoder: parse format before checking in src_query_default
authorScott D Phillips <scott.d.phillips@intel.com>
Tue, 15 Nov 2016 17:32:24 +0000 (09:32 -0800)
committerJan Schmidt <jan@centricular.com>
Tue, 15 Nov 2016 20:57:31 +0000 (07:57 +1100)
The logic change in these commits misordered the parsing and checking of
format in position queries:

 2b06e54 videodecoder: Don't answer BYTES queries
 1840b02 audio: Don't answer BYTES queries

https://bugzilla.gnome.org/show_bug.cgi?id=774484

gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/video/gstvideodecoder.c

index f03ec69..198e0fc 100644 (file)
@@ -2769,6 +2769,8 @@ gst_audio_decoder_src_query_default (GstAudioDecoder * dec, GstQuery * query)
 
       /* Refuse BYTES format queries. If it made sense to
        * answer them, upstream would have already */
+      gst_query_parse_position (query, &format, NULL);
+
       if (format == GST_FORMAT_BYTES) {
         GST_LOG_OBJECT (dec, "Ignoring BYTES position query");
         break;
@@ -2785,7 +2787,6 @@ gst_audio_decoder_src_query_default (GstAudioDecoder * dec, GstQuery * query)
           "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
 
       /* and convert to the final format */
-      gst_query_parse_position (query, &format, NULL);
       if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time,
                   format, &value)))
         break;
index 71ee3a0..0fdf1c5 100644 (file)
@@ -1617,6 +1617,8 @@ gst_video_decoder_src_query_default (GstVideoDecoder * dec, GstQuery * query)
 
       /* Refuse BYTES format queries. If it made sense to
        * answer them, upstream would have already */
+      gst_query_parse_position (query, &format, NULL);
+
       if (format == GST_FORMAT_BYTES) {
         GST_LOG_OBJECT (dec, "Ignoring BYTES position query");
         break;
@@ -1632,7 +1634,6 @@ gst_video_decoder_src_query_default (GstVideoDecoder * dec, GstQuery * query)
           "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
 
       /* and convert to the final format */
-      gst_query_parse_position (query, &format, NULL);
       if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time,
                   format, &value)))
         break;