diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c index 11b9267479..b5a829f75c 100644 --- a/libs/gst/base/gstbaseparse.c +++ b/libs/gst/base/gstbaseparse.c @@ -1258,14 +1258,13 @@ gst_base_parse_update_duration (GstBaseParse * baseparse) peer = gst_pad_get_peer (parse->sinkpad); if (peer) { - GstFormat pformat = GST_FORMAT_BYTES; gboolean qres = FALSE; gint64 ptot, dest_value; - qres = gst_pad_query_duration (peer, &pformat, &ptot); + qres = gst_pad_query_duration (peer, GST_FORMAT_BYTES, &ptot); gst_object_unref (GST_OBJECT (peer)); if (qres) { - if (gst_base_parse_convert (parse, pformat, ptot, + if (gst_base_parse_convert (parse, GST_FORMAT_BYTES, ptot, GST_FORMAT_TIME, &dest_value)) { parse->priv->estimated_duration = dest_value; GST_LOG_OBJECT (parse, @@ -1518,10 +1517,8 @@ gst_base_parse_check_seekability (GstBaseParse * parse) /* 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 (parse, "doing duration query to fix up unset stop"); - gst_pad_query_peer_duration (parse->sinkpad, &fmt, &stop); + gst_pad_query_peer_duration (parse->sinkpad, GST_FORMAT_BYTES, &stop); } /* if upstream doesn't know the size, it's likely that it's not seekable in @@ -1557,10 +1554,9 @@ done: static void gst_base_parse_check_upstream (GstBaseParse * parse) { - GstFormat fmt = GST_FORMAT_TIME; gint64 stop; - if (gst_pad_query_peer_duration (parse->sinkpad, &fmt, &stop)) + if (gst_pad_query_peer_duration (parse->sinkpad, GST_FORMAT_TIME, &stop)) if (GST_CLOCK_TIME_IS_VALID (stop) && stop) { /* upstream has one, accept it also, and no further updates */ gst_base_parse_set_duration (parse, GST_FORMAT_TIME, stop, 0); @@ -2490,10 +2486,8 @@ gst_base_parse_handle_previous_fragment (GstBaseParse * parse) if (parse->priv->exact_position) { offset = gst_base_parse_find_offset (parse, ts, TRUE, NULL); } else { - GstFormat dstformat = GST_FORMAT_BYTES; - if (!gst_pad_query_convert (parse->srcpad, GST_FORMAT_TIME, ts, - &dstformat, &offset)) { + GST_FORMAT_BYTES, &offset)) { GST_DEBUG_OBJECT (parse, "conversion failed, only BYTE based"); } } @@ -3559,7 +3553,6 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) gboolean flush, update, res = TRUE, accurate; gint64 cur, stop, seekpos, seekstop; GstSegment seeksegment = { 0, }; - GstFormat dstformat; GstClockTime start_ts; gst_event_parse_seek (event, &rate, &format, &flags, @@ -3626,12 +3619,11 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) NULL); } else { start_ts = seeksegment.position; - dstformat = GST_FORMAT_BYTES; if (!gst_pad_query_convert (parse->srcpad, format, seeksegment.position, - &dstformat, &seekpos)) + GST_FORMAT_BYTES, &seekpos)) goto convert_failed; if (!gst_pad_query_convert (parse->srcpad, format, seeksegment.stop, - &dstformat, &seekstop)) + GST_FORMAT_BYTES, &seekstop)) goto convert_failed; } diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c index 426c4329b1..f6ecd72839 100644 --- a/libs/gst/base/gstbasesink.c +++ b/libs/gst/base/gstbasesink.c @@ -2073,8 +2073,8 @@ gst_base_sink_wait_clock (GstBaseSink * sink, GstClockTime time, /* FIXME: Casting to GstClockEntry only works because the types * are the same */ if (G_LIKELY (sink->priv->cached_clock_id != NULL - && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink-> - priv->cached_clock_id) == clock)) { + && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->priv-> + cached_clock_id) == clock)) { if (!gst_clock_single_shot_id_reinit (clock, sink->priv->cached_clock_id, time)) { gst_clock_id_unref (sink->priv->cached_clock_id); @@ -3727,16 +3727,15 @@ gst_base_sink_default_prepare_seek_segment (GstBaseSink * sink, GstSeekType cur_type, stop_type; gint64 cur, stop; GstSeekFlags flags; - GstFormat seek_format, dest_format; + GstFormat seek_format; gdouble rate; gboolean update; gboolean res = TRUE; gst_event_parse_seek (event, &rate, &seek_format, &flags, &cur_type, &cur, &stop_type, &stop); - dest_format = segment->format; - if (seek_format == dest_format) { + if (seek_format == segment->format) { gst_segment_do_seek (segment, rate, seek_format, flags, cur_type, cur, stop_type, stop, &update); return TRUE; @@ -3745,7 +3744,7 @@ gst_base_sink_default_prepare_seek_segment (GstBaseSink * sink, if (cur_type != GST_SEEK_TYPE_NONE) { /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */ res = - gst_pad_query_convert (sink->sinkpad, seek_format, cur, &dest_format, + gst_pad_query_convert (sink->sinkpad, seek_format, cur, segment->format, &cur); cur_type = GST_SEEK_TYPE_SET; } @@ -3753,13 +3752,13 @@ gst_base_sink_default_prepare_seek_segment (GstBaseSink * sink, if (res && stop_type != GST_SEEK_TYPE_NONE) { /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */ res = - gst_pad_query_convert (sink->sinkpad, seek_format, stop, &dest_format, - &stop); + gst_pad_query_convert (sink->sinkpad, seek_format, stop, + segment->format, &stop); stop_type = GST_SEEK_TYPE_SET; } /* And finally, configure our output segment in the desired format */ - gst_segment_do_seek (segment, rate, dest_format, flags, cur_type, cur, + gst_segment_do_seek (segment, rate, segment->format, flags, cur_type, cur, stop_type, stop, &update); if (!res) @@ -4324,22 +4323,19 @@ gst_base_sink_pad_activate_pull (GstPad * pad, gboolean active) bclass = GST_BASE_SINK_GET_CLASS (basesink); if (active) { - GstFormat format; gint64 duration; /* we mark we have a newsegment here because pull based * mode works just fine without having a newsegment before the * first buffer */ - format = GST_FORMAT_BYTES; - - gst_segment_init (&basesink->segment, format); - gst_segment_init (&basesink->clip_segment, format); + gst_segment_init (&basesink->segment, GST_FORMAT_BYTES); + gst_segment_init (&basesink->clip_segment, GST_FORMAT_BYTES); GST_OBJECT_LOCK (basesink); basesink->have_newsegment = TRUE; GST_OBJECT_UNLOCK (basesink); /* get the peer duration in bytes */ - result = gst_pad_query_peer_duration (pad, &format, &duration); + result = gst_pad_query_peer_duration (pad, GST_FORMAT_BYTES, &duration); if (result) { GST_DEBUG_OBJECT (basesink, "setting duration in bytes to %" G_GINT64_FORMAT, duration); @@ -4460,7 +4456,7 @@ gst_base_sink_get_position (GstBaseSink * basesink, GstFormat format, { GstClock *clock = NULL; gboolean res = FALSE; - GstFormat oformat, tformat; + GstFormat oformat; GstSegment *segment; GstClockTime now, latency; GstClockTimeDiff base_time; @@ -4491,8 +4487,6 @@ gst_base_sink_get_position (GstBaseSink * basesink, GstFormat format, else segment = &basesink->segment; - /* our intermediate time format */ - tformat = GST_FORMAT_TIME; /* get the format in the segment */ oformat = segment->format; @@ -4597,23 +4591,23 @@ gst_base_sink_get_position (GstBaseSink * basesink, GstFormat format, GST_TIME_ARGS (last)); *cur = last; } else { - if (oformat != tformat) { + if (oformat != GST_FORMAT_TIME) { /* convert base, time and duration to time */ - if (!gst_pad_query_convert (basesink->sinkpad, oformat, base, &tformat, - &base)) + if (!gst_pad_query_convert (basesink->sinkpad, oformat, base, + GST_FORMAT_TIME, &base)) goto convert_failed; if (!gst_pad_query_convert (basesink->sinkpad, oformat, duration, - &tformat, &duration)) + GST_FORMAT_TIME, &duration)) goto convert_failed; - if (!gst_pad_query_convert (basesink->sinkpad, oformat, time, &tformat, - &time)) + if (!gst_pad_query_convert (basesink->sinkpad, oformat, time, + GST_FORMAT_TIME, &time)) goto convert_failed; - if (!gst_pad_query_convert (basesink->sinkpad, oformat, last, &tformat, - &last)) + if (!gst_pad_query_convert (basesink->sinkpad, oformat, last, + GST_FORMAT_TIME, &last)) goto convert_failed; /* assume time format from now on */ - oformat = tformat; + oformat = GST_FORMAT_TIME; } if (!in_paused && with_clock) { @@ -4658,7 +4652,7 @@ gst_base_sink_get_position (GstBaseSink * basesink, GstFormat format, if (oformat != format) { /* convert to final format */ - if (!gst_pad_query_convert (basesink->sinkpad, oformat, *cur, &format, cur)) + if (!gst_pad_query_convert (basesink->sinkpad, oformat, *cur, format, cur)) goto convert_failed; } @@ -4699,20 +4693,22 @@ gst_base_sink_get_duration (GstBaseSink * basesink, GstFormat format, gboolean res = FALSE; if (basesink->pad_mode == GST_ACTIVATE_PULL) { - GstFormat uformat = GST_FORMAT_BYTES; gint64 uduration; /* get the duration in bytes, in pull mode that's all we are sure to * know. We have to explicitly get this value from upstream instead of * using our cached value because it might change. Duration caching * should be done at a higher level. */ - res = gst_pad_query_peer_duration (basesink->sinkpad, &uformat, &uduration); + res = + gst_pad_query_peer_duration (basesink->sinkpad, GST_FORMAT_BYTES, + &uduration); if (res) { basesink->segment.duration = uduration; - if (format != uformat) { + if (format != GST_FORMAT_BYTES) { /* convert to the requested format */ - res = gst_pad_query_convert (basesink->sinkpad, uformat, uduration, - &format, dur); + res = + gst_pad_query_convert (basesink->sinkpad, GST_FORMAT_BYTES, + uduration, format, dur); } else { *dur = uduration; } @@ -4770,20 +4766,21 @@ default_element_query (GstElement * element, GstQuery * query) /* we can handle a few things if upstream failed */ if (format == GST_FORMAT_PERCENT) { gint64 dur = 0; - GstFormat uformat = GST_FORMAT_TIME; res = gst_base_sink_get_position (basesink, GST_FORMAT_TIME, &cur, &upstream); if (!res && upstream) { - res = gst_pad_query_peer_position (basesink->sinkpad, &uformat, + res = + gst_pad_query_peer_position (basesink->sinkpad, GST_FORMAT_TIME, &cur); } if (res) { res = gst_base_sink_get_duration (basesink, GST_FORMAT_TIME, &dur, &upstream); if (!res && upstream) { - res = gst_pad_query_peer_duration (basesink->sinkpad, &uformat, - &dur); + res = + gst_pad_query_peer_duration (basesink->sinkpad, + GST_FORMAT_TIME, &dur); } } if (res) { diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index f2ea2acbb9..b973dd698b 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -900,7 +900,7 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query) /* convert to requested format */ res = gst_pad_query_convert (src->srcpad, seg_format, - position, &format, &position); + position, format, &position); } else res = TRUE; @@ -949,7 +949,7 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query) * but we cannot answer the query, we must return FALSE. */ res = gst_pad_query_convert (src->srcpad, seg_format, - duration, &format, &duration); + duration, format, &duration); } else { /* The subclass did not configure a duration, we assume that the * media has an unknown duration then and we return TRUE to report @@ -1086,13 +1086,13 @@ gst_base_src_default_query (GstBaseSrc * src, GstQuery * query) * but report TRUE. */ if (format != GST_FORMAT_PERCENT && stop != -1) { res = gst_pad_query_convert (src->srcpad, seg_format, - stop, &format, &stop); + stop, format, &stop); } else { res = TRUE; } if (res && format != GST_FORMAT_PERCENT && start != -1) res = gst_pad_query_convert (src->srcpad, seg_format, - start, &format, &start); + start, format, &start); gst_query_set_buffering_range (query, format, start, stop, estimated); break; @@ -1210,7 +1210,7 @@ gst_base_src_default_prepare_seek_segment (GstBaseSrc * src, GstEvent * event, if (cur_type != GST_SEEK_TYPE_NONE) { /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */ res = - gst_pad_query_convert (src->srcpad, seek_format, cur, &dest_format, + gst_pad_query_convert (src->srcpad, seek_format, cur, dest_format, &cur); cur_type = GST_SEEK_TYPE_SET; } @@ -1218,7 +1218,7 @@ gst_base_src_default_prepare_seek_segment (GstBaseSrc * src, GstEvent * event, if (res && stop_type != GST_SEEK_TYPE_NONE) { /* FIXME: Handle seek_cur & seek_end by converting the input segment vals */ res = - gst_pad_query_convert (src->srcpad, seek_format, stop, &dest_format, + gst_pad_query_convert (src->srcpad, seek_format, stop, dest_format, &stop); stop_type = GST_SEEK_TYPE_SET; }