From: Edward Hervey Date: Wed, 5 Oct 2005 11:15:23 +0000 (+0000) Subject: ext/dv/gstdvdemux.c: Fixes for better conversion X-Git-Tag: RELEASE-0_9_4~51 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=76620459d5eff33e3408f61b8cecfa365f1e45bf;p=platform%2Fupstream%2Fgst-plugins-good.git ext/dv/gstdvdemux.c: Fixes for better conversion Original commit message from CVS: * ext/dv/gstdvdemux.c: (gst_dvdemux_src_convert), (gst_dvdemux_src_query): Fixes for better conversion --- diff --git a/ChangeLog b/ChangeLog index 4159fd8..b291b7b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-10-05 Edward Hervey + + * ext/dv/gstdvdemux.c: (gst_dvdemux_src_convert), + (gst_dvdemux_src_query): + Fixes for better conversion + 2005-10-04 Michael Smith * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_reset), diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index f72be8d..bea6472 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -284,13 +284,14 @@ gst_dvdemux_src_convert (GstPad * pad, GstFormat src_format, gint64 src_value, case GST_FORMAT_DEFAULT: if (pad == dvdemux->videosrcpad) { if (src_value) - *dest_value = src_value / (dvdemux->framerate * GST_SECOND); + *dest_value = src_value * dvdemux->framerate / GST_SECOND; else *dest_value = 0; - } else if (pad == dvdemux->audiosrcpad) + } else if (pad == dvdemux->audiosrcpad) { *dest_value = 2 * src_value * dvdemux->frequency * dvdemux->channels / (GST_SECOND * gst_audio_frame_byte_size (pad)); + } break; default: res = FALSE; @@ -454,7 +455,7 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query) /* convert end to requested format */ if (end != -1) { format2 = format; - if (!(res = gst_pad_query_convert (pad, + if (!(res = gst_pad_query_convert (dvdemux->sinkpad, GST_FORMAT_BYTES, end, &format2, &end))) { gst_object_unref (peer); goto error; @@ -468,6 +469,8 @@ gst_dvdemux_src_query (GstPad * pad, GstQuery * query) if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, dvdemux->timestamp, &format, &cur))) goto error; + if (!(res = gst_pad_query_convert (pad, format2, end, &format, &end))) + goto error; gst_query_set_position (query, format, cur, end); break; }