From b843f8f99c7931cf1ec4f414702181896a29cba1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 28 Jul 2011 10:54:38 +0100 Subject: [PATCH] gst: udpate for position/duration/convert query API changes --- gst/audioparsers/gstflacparse.c | 5 ++-- gst/audioparsers/gstmpegaudioparse.c | 6 ++--- gst/auparse/gstauparse.c | 12 +++++---- gst/avi/gstavidemux.c | 49 +++++++++++------------------------- gst/debugutils/gstnavseek.c | 10 +++----- gst/debugutils/progressreport.c | 4 +-- gst/flv/gstflvdemux.c | 28 +++++++-------------- gst/flv/gstflvmux.c | 8 ++---- gst/isomp4/qtdemux.c | 10 +++----- gst/wavparse/gstwavparse.c | 10 +++----- 10 files changed, 50 insertions(+), 92 deletions(-) diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c index d4a2960..8895fac 100644 --- a/gst/audioparsers/gstflacparse.c +++ b/gst/audioparsers/gstflacparse.c @@ -1184,10 +1184,9 @@ gst_flac_parse_generate_headers (GstFlacParse * flacparse) { gint64 duration; - GstFormat fmt = GST_FORMAT_TIME; - if (gst_pad_query_peer_duration (GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE - (flacparse)), &fmt, &duration) && fmt == GST_FORMAT_TIME) { + if (gst_pad_query_peer_duration (GST_BASE_PARSE_SINK_PAD (flacparse), + GST_FORMAT_TIME, &duration)) { duration = GST_CLOCK_TIME_TO_FRAMES (duration, flacparse->samplerate); data[17] |= (duration >> 32) & 0xff; diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c index c5b0a8e..c454ec8 100644 --- a/gst/audioparsers/gstmpegaudioparse.c +++ b/gst/audioparsers/gstmpegaudioparse.c @@ -582,7 +582,6 @@ gst_mpeg_audio_parse_handle_first_frame (GstMpegAudioParse * mp3parse, gint offset_xing, offset_vbri; guint64 avail; gint64 upstream_total_bytes = 0; - GstFormat fmt = GST_FORMAT_BYTES; guint32 read_id_xing = 0, read_id_vbri = 0; guint8 *data, *origdata; gsize bufsize; @@ -623,9 +622,8 @@ gst_mpeg_audio_parse_handle_first_frame (GstMpegAudioParse * mp3parse, } /* obtain real upstream total bytes */ - fmt = GST_FORMAT_BYTES; - if (!gst_pad_query_peer_duration (GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE - (mp3parse)), &fmt, &upstream_total_bytes)) + if (!gst_pad_query_peer_duration (GST_BASE_PARSE_SINK_PAD (mp3parse), + GST_FORMAT_BYTES, &upstream_total_bytes)) upstream_total_bytes = 0; if (read_id_xing == xing_id || read_id_xing == info_id) { diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c index 2ede002..05aedcc 100644 --- a/gst/auparse/gstauparse.c +++ b/gst/auparse/gstauparse.c @@ -533,12 +533,12 @@ gst_au_parse_src_query (GstPad * pad, GstQuery * query) switch (GST_QUERY_TYPE (query)) { case GST_QUERY_DURATION:{ - GstFormat bformat = GST_FORMAT_BYTES; GstFormat format; gint64 len, val; gst_query_parse_duration (query, &format, NULL); - if (!gst_pad_query_peer_duration (auparse->sinkpad, &bformat, &len)) { + if (!gst_pad_query_peer_duration (auparse->sinkpad, GST_FORMAT_BYTES, + &len)) { GST_DEBUG_OBJECT (auparse, "failed to query upstream length"); break; } @@ -546,7 +546,9 @@ gst_au_parse_src_query (GstPad * pad, GstQuery * query) len -= auparse->offset; GST_OBJECT_UNLOCK (auparse); - ret = gst_au_parse_src_convert (auparse, bformat, len, format, &val); + ret = + gst_au_parse_src_convert (auparse, GST_FORMAT_BYTES, len, format, + &val); if (ret) { gst_query_set_duration (query, format, val); @@ -554,12 +556,12 @@ gst_au_parse_src_query (GstPad * pad, GstQuery * query) break; } case GST_QUERY_POSITION:{ - GstFormat bformat = GST_FORMAT_BYTES; GstFormat format; gint64 pos, val; gst_query_parse_position (query, &format, NULL); - if (!gst_pad_query_peer_position (auparse->sinkpad, &bformat, &pos)) { + if (!gst_pad_query_peer_position (auparse->sinkpad, GST_FORMAT_BYTES, + &pos)) { GST_DEBUG_OBJECT (auparse, "failed to query upstream position"); break; } diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index f6de29d..97aecdf 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -531,7 +531,7 @@ gst_avi_demux_handle_src_query (GstPad * pad, GstQuery * query) if (stream->idx_n >= 0) gst_query_set_duration (query, fmt, stream->idx_n); else if (gst_pad_query_convert (pad, GST_FORMAT_TIME, - duration, &fmt, &dur)) + duration, fmt, &dur)) gst_query_set_duration (query, fmt, dur); break; } @@ -2931,7 +2931,6 @@ gst_avi_demux_stream_scan (GstAviDemux * avi) { GstFlowReturn res; GstAviStream *stream; - GstFormat format; guint64 pos = 0; guint64 length; gint64 tmplength; @@ -2944,8 +2943,7 @@ gst_avi_demux_stream_scan (GstAviDemux * avi) GST_DEBUG_OBJECT (avi, "Creating index"); /* get the size of the file */ - format = GST_FORMAT_BYTES; - if (!gst_pad_query_peer_duration (avi->sinkpad, &format, &tmplength)) + if (!gst_pad_query_peer_duration (avi->sinkpad, GST_FORMAT_BYTES, &tmplength)) return FALSE; length = tmplength; @@ -3107,10 +3105,8 @@ gst_avi_demux_check_seekability (GstAviDemux * avi) /* try harder to query upstream size if we didn't get it the first time */ if (seekable && stop == -1) { - GstFormat fmt = GST_FORMAT_BYTES; - GST_DEBUG_OBJECT (avi, "doing duration query to fix up unset stop"); - gst_pad_query_peer_duration (avi->sinkpad, &fmt, &stop); + gst_pad_query_peer_duration (avi->sinkpad, GST_FORMAT_BYTES, &stop); } /* if upstream doesn't know the size, it's likely that it's not seekable in @@ -3983,7 +3979,7 @@ gst_avi_demux_do_seek (GstAviDemux * avi, GstSegment * segment) GstAviStream *stream; seek_time = segment->position; - keyframe = !!(segment->flags & GST_SEEK_FLAG_KEY_UNIT); + keyframe = ! !(segment->flags & GST_SEEK_FLAG_KEY_UNIT); GST_DEBUG_OBJECT (avi, "seek to: %" GST_TIME_FORMAT " keyframe seeking:%d", GST_TIME_ARGS (seek_time), keyframe); @@ -4070,17 +4066,16 @@ gst_avi_demux_handle_seek (GstAviDemux * avi, GstPad * pad, GstEvent * event) /* we have to have a format as the segment format. Try to convert * if not. */ if (format != GST_FORMAT_TIME) { - GstFormat fmt = GST_FORMAT_TIME; gboolean res = TRUE; if (cur_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, format, cur, &fmt, &cur); + res = gst_pad_query_convert (pad, format, cur, GST_FORMAT_TIME, &cur); if (res && stop_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, format, stop, &fmt, &stop); + res = gst_pad_query_convert (pad, format, stop, GST_FORMAT_TIME, &stop); if (!res) goto no_format; - format = fmt; + format = GST_FORMAT_TIME; } GST_DEBUG_OBJECT (avi, "seek requested: rate %g cur %" GST_TIME_FORMAT " stop %" @@ -4204,19 +4199,18 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event) &cur_type, &cur, &stop_type, &stop); if (format != GST_FORMAT_TIME) { - GstFormat fmt = GST_FORMAT_TIME; gboolean res = TRUE; if (cur_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, format, cur, &fmt, &cur); + res = gst_pad_query_convert (pad, format, cur, GST_FORMAT_TIME, &cur); if (res && stop_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, format, stop, &fmt, &stop); + res = gst_pad_query_convert (pad, format, stop, GST_FORMAT_TIME, &stop); if (!res) { GST_DEBUG_OBJECT (avi, "unsupported format given, seek aborted."); return FALSE; } - format = fmt; + format = GST_FORMAT_TIME; } /* let gst_segment handle any tricky stuff */ @@ -4225,7 +4219,7 @@ avi_demux_handle_seek_push (GstAviDemux * avi, GstPad * pad, GstEvent * event) gst_segment_do_seek (&seeksegment, rate, format, flags, cur_type, cur, stop_type, stop, &update); - keyframe = !!(flags & GST_SEEK_FLAG_KEY_UNIT); + keyframe = ! !(flags & GST_SEEK_FLAG_KEY_UNIT); cur = seeksegment.position; GST_DEBUG_OBJECT (avi, @@ -4819,7 +4813,6 @@ gst_avi_demux_stream_data (GstAviDemux * avi) guint32 size = 0; gint stream_nr = 0; GstFlowReturn res = GST_FLOW_OK; - GstFormat format = GST_FORMAT_TIME; if (G_UNLIKELY (avi->have_eos)) { /* Clean adapter, we're done */ @@ -4975,9 +4968,8 @@ gst_avi_demux_stream_data (GstAviDemux * avi) gst_buffer_unref (buf); } else { /* get time of this buffer */ - gst_pad_query_position (stream->pad, &format, (gint64 *) & next_ts); - if (G_UNLIKELY (format != GST_FORMAT_TIME)) - goto wrong_format; + gst_pad_query_position (stream->pad, GST_FORMAT_TIME, + (gint64 *) & next_ts); gst_avi_demux_add_assoc (avi, stream, next_ts, offset, FALSE); @@ -4994,9 +4986,8 @@ gst_avi_demux_stream_data (GstAviDemux * avi) /* invert the picture if needed */ buf = gst_avi_demux_invert (stream, buf); - gst_pad_query_position (stream->pad, &format, (gint64 *) & dur_ts); - if (G_UNLIKELY (format != GST_FORMAT_TIME)) - goto wrong_format; + gst_pad_query_position (stream->pad, GST_FORMAT_TIME, + (gint64 *) & dur_ts); GST_BUFFER_TIMESTAMP (buf) = next_ts; GST_BUFFER_DURATION (buf) = dur_ts - next_ts; @@ -5035,17 +5026,7 @@ gst_avi_demux_stream_data (GstAviDemux * avi) } } -done: return res; - - /* ERRORS */ -wrong_format: - { - GST_DEBUG_OBJECT (avi, "format %s != GST_FORMAT_TIME", - gst_format_get_name (format)); - res = GST_FLOW_ERROR; - goto done; - } } /* diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c index a5d39b2..9678a92 100644 --- a/gst/debugutils/gstnavseek.c +++ b/gst/debugutils/gstnavseek.c @@ -118,16 +118,15 @@ gst_navseek_init (GstNavSeek * navseek) static void gst_navseek_seek (GstNavSeek * navseek, gint64 offset) { - GstFormat peer_format = GST_FORMAT_TIME; gboolean ret; GstPad *peer_pad; gint64 peer_value; /* Query for the current time then attempt to set to time + offset */ peer_pad = gst_pad_get_peer (GST_BASE_TRANSFORM (navseek)->sinkpad); - ret = gst_pad_query_position (peer_pad, &peer_format, &peer_value); + ret = gst_pad_query_position (peer_pad, GST_FORMAT_TIME, &peer_value); - if (ret && peer_format == GST_FORMAT_TIME) { + if (ret) { GstEvent *event; peer_value += offset; @@ -147,15 +146,14 @@ gst_navseek_seek (GstNavSeek * navseek, gint64 offset) static void gst_navseek_change_playback_rate (GstNavSeek * navseek, gdouble rate) { - GstFormat peer_format = GST_FORMAT_TIME; gboolean ret; GstPad *peer_pad; gint64 current_position; peer_pad = gst_pad_get_peer (GST_BASE_TRANSFORM (navseek)->sinkpad); - ret = gst_pad_query_position (peer_pad, &peer_format, ¤t_position); + ret = gst_pad_query_position (peer_pad, GST_FORMAT_TIME, ¤t_position); - if (ret && peer_format == GST_FORMAT_TIME) { + if (ret) { GstEvent *event; gint64 start; gint64 stop; diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c index aa3d01b..5e2eecf 100644 --- a/gst/debugutils/progressreport.c +++ b/gst/debugutils/progressreport.c @@ -240,8 +240,8 @@ gst_progress_report_do_query (GstProgressReport * filter, GstFormat format, if (filter->do_query || !buf) { GST_LOG_OBJECT (filter, "using upstream query"); - if (!gst_pad_query_peer_position (sink_pad, &format, &cur) || - !gst_pad_query_peer_duration (sink_pad, &format, &total)) { + if (!gst_pad_query_peer_position (sink_pad, format, &cur) || + !gst_pad_query_peer_duration (sink_pad, format, &total)) { return FALSE; } } else { diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c index a74f2f2..bc3413a 100644 --- a/gst/flv/gstflvdemux.c +++ b/gst/flv/gstflvdemux.c @@ -119,11 +119,11 @@ gst_flv_demux_parse_and_add_index_entry (GstFlvDemux * demux, GstClockTime ts, gboolean key; gst_index_entry_assoc_map (entry, GST_FORMAT_TIME, &time); - key = !!(GST_INDEX_ASSOC_FLAGS (entry) & GST_ASSOCIATION_FLAG_KEY_UNIT); + key = ! !(GST_INDEX_ASSOC_FLAGS (entry) & GST_ASSOCIATION_FLAG_KEY_UNIT); GST_LOG_OBJECT (demux, "position already mapped to time %" GST_TIME_FORMAT ", keyframe %d", GST_TIME_ARGS (time), key); /* there is not really a way to delete the existing one */ - if (time != ts || key != !!keyframe) + if (time != ts || key != ! !keyframe) GST_DEBUG_OBJECT (demux, "metadata mismatch"); #endif return; @@ -214,10 +214,8 @@ gst_flv_demux_check_seekability (GstFlvDemux * demux) /* try harder to query upstream size if we didn't get it the first time */ if (demux->upstream_seekable && stop == -1) { - GstFormat fmt = GST_FORMAT_BYTES; - GST_DEBUG_OBJECT (demux, "doing duration query to fix up unset stop"); - gst_pad_query_peer_duration (demux->sinkpad, &fmt, &stop); + gst_pad_query_peer_duration (demux->sinkpad, GST_FORMAT_BYTES, &stop); } /* if upstream doesn't know the size, it's likely that it's not seekable in @@ -2194,15 +2192,13 @@ static GstFlowReturn gst_flv_demux_create_index (GstFlvDemux * demux, gint64 pos, GstClockTime ts) { gint64 size; - GstFormat fmt = GST_FORMAT_BYTES; size_t tag_size; guint64 old_offset; GstBuffer *buffer; GstClockTime tag_time; GstFlowReturn ret = GST_FLOW_OK; - if (G_UNLIKELY (!gst_pad_query_peer_duration (demux->sinkpad, &fmt, &size) || - fmt != GST_FORMAT_BYTES)) + if (!gst_pad_query_peer_duration (demux->sinkpad, GST_FORMAT_BYTES, &size)) return GST_FLOW_OK; GST_DEBUG_OBJECT (demux, "building index at %" G_GINT64_FORMAT @@ -2240,13 +2236,11 @@ static gint64 gst_flv_demux_get_metadata (GstFlvDemux * demux) { gint64 ret = 0, offset; - GstFormat fmt = GST_FORMAT_BYTES; size_t tag_size, size; GstBuffer *buffer = NULL; guint8 *data; - if (G_UNLIKELY (!gst_pad_query_peer_duration (demux->sinkpad, &fmt, &offset) - || fmt != GST_FORMAT_BYTES)) + if (!gst_pad_query_peer_duration (demux->sinkpad, GST_FORMAT_BYTES, &offset)) goto exit; ret = offset; @@ -2497,7 +2491,7 @@ flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event) if (format != GST_FORMAT_TIME) goto wrong_format; - flush = !!(flags & GST_SEEK_FLAG_FLUSH); + flush = ! !(flags & GST_SEEK_FLAG_FLUSH); /* FIXME : the keyframe flag is never used ! */ /* Work on a copy until we are sure the seek succeeded. */ @@ -2586,7 +2580,6 @@ gst_flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event) if (!demux->indexed) { guint64 seek_offset = 0; gboolean building_index; - GstFormat fmt; GST_OBJECT_LOCK (demux); /* handle the seek in the chain function */ @@ -2603,13 +2596,10 @@ gst_flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event) building_index = demux->building_index; if (!building_index) { demux->building_index = TRUE; - fmt = GST_FORMAT_BYTES; if (!demux->file_size - && !gst_pad_query_peer_duration (demux->sinkpad, &fmt, + && !gst_pad_query_peer_duration (demux->sinkpad, GST_FORMAT_BYTES, &demux->file_size)) { - GST_WARNING_OBJECT (demux, - "Cannot obtain file size - %" G_GINT64_FORMAT ", format %u", - demux->file_size, fmt); + GST_WARNING_OBJECT (demux, "Failed to query upstream file size"); GST_OBJECT_UNLOCK (demux); return FALSE; } @@ -2662,7 +2652,7 @@ gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, GstEvent * event, demux->seeking = seeking; GST_OBJECT_UNLOCK (demux); - flush = !!(flags & GST_SEEK_FLAG_FLUSH); + flush = ! !(flags & GST_SEEK_FLAG_FLUSH); /* FIXME : the keyframe flag is never used */ if (flush) { diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c index b3f4865..69e2622 100644 --- a/gst/flv/gstflvmux.c +++ b/gst/flv/gstflvmux.c @@ -767,17 +767,13 @@ gst_flv_mux_create_metadata (GstFlvMux * mux) if (mux->duration == GST_CLOCK_TIME_NONE) { GSList *l; - - GstFormat fmt = GST_FORMAT_TIME; guint64 dur; for (l = mux->collect->data; l; l = l->next) { GstCollectData *cdata = l->data; - fmt = GST_FORMAT_TIME; - - if (gst_pad_query_peer_duration (cdata->pad, &fmt, (gint64 *) & dur) && - fmt == GST_FORMAT_TIME && dur != GST_CLOCK_TIME_NONE) { + if (gst_pad_query_peer_duration (cdata->pad, GST_FORMAT_TIME, + (gint64 *) & dur) && dur != GST_CLOCK_TIME_NONE) { if (mux->duration == GST_CLOCK_TIME_NONE) mux->duration = dur; else diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index a1f7129..21d8033 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -1184,7 +1184,6 @@ gst_qtdemux_convert_seek (GstPad * pad, GstFormat * format, GstSeekType cur_type, gint64 * cur, GstSeekType stop_type, gint64 * stop) { gboolean res; - GstFormat fmt; g_return_val_if_fail (format != NULL, FALSE); g_return_val_if_fail (cur != NULL, FALSE); @@ -1193,12 +1192,11 @@ gst_qtdemux_convert_seek (GstPad * pad, GstFormat * format, if (*format == GST_FORMAT_TIME) return TRUE; - fmt = GST_FORMAT_TIME; res = TRUE; if (cur_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, *format, *cur, &fmt, cur); + res = gst_pad_query_convert (pad, *format, *cur, GST_FORMAT_TIME, cur); if (res && stop_type != GST_SEEK_TYPE_NONE) - res = gst_pad_query_convert (pad, *format, *stop, &fmt, stop); + res = gst_pad_query_convert (pad, *format, *stop, GST_FORMAT_TIME, stop); if (res) *format = GST_FORMAT_TIME; @@ -7457,7 +7455,6 @@ too_many_streams: static void gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux) { - GstFormat format = GST_FORMAT_BYTES; QtDemuxStream *stream = NULL; gint64 size, duration, sys_bitrate, sum_bitrate = 0; gint i; @@ -7468,8 +7465,7 @@ gst_qtdemux_guess_bitrate (GstQTDemux * qtdemux) GST_DEBUG_OBJECT (qtdemux, "Looking for streams with unknown bitrate"); - if (!gst_pad_query_peer_duration (qtdemux->sinkpad, &format, &size) || - format != GST_FORMAT_BYTES) { + if (!gst_pad_query_peer_duration (qtdemux->sinkpad, GST_FORMAT_BYTES, &size)) { GST_DEBUG_OBJECT (qtdemux, "Size in bytes of the stream not known - bailing"); return; diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 35a0dc0..3377eae 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -782,11 +782,11 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event) if (cur_type != GST_SEEK_TYPE_NONE) res = gst_pad_query_convert (wav->srcpad, format, cur, - &wav->segment.format, &cur); + wav->segment.format, &cur); if (res && stop_type != GST_SEEK_TYPE_NONE) res = gst_pad_query_convert (wav->srcpad, format, stop, - &wav->segment.format, &stop); + wav->segment.format, &stop); if (!res) goto no_format; @@ -921,7 +921,7 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event) /* make sure filesize is not exceeded due to rounding errors or so, * same precaution as in _stream_headers */ bformat = GST_FORMAT_BYTES; - if (gst_pad_query_peer_duration (wav->sinkpad, &bformat, &upstream_size)) + if (gst_pad_query_peer_duration (wav->sinkpad, bformat, &upstream_size)) wav->end_offset = MIN (wav->end_offset, upstream_size); /* this is the range of bytes we will use for playback */ @@ -1133,7 +1133,6 @@ gst_wavparse_stream_headers (GstWavParse * wav) GstCaps *caps = NULL; gchar *codec_name = NULL; GstEvent **event_p; - GstFormat bformat; gint64 upstream_size = 0; /* search for "_fmt" chunk, which should be first */ @@ -1278,8 +1277,7 @@ gst_wavparse_stream_headers (GstWavParse * wav) } - bformat = GST_FORMAT_BYTES; - gst_pad_query_peer_duration (wav->sinkpad, &bformat, &upstream_size); + gst_pad_query_peer_duration (wav->sinkpad, GST_FORMAT_BYTES, &upstream_size); GST_DEBUG_OBJECT (wav, "upstream size %" G_GUINT64_FORMAT, upstream_size); /* loop headers until we get data */ -- 2.7.4