mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
ext/ogg/gstoggdemux.c: Make seeking in ogg more accurate again by doing the more correct granuletime to stream time c...
Original commit message from CVS: * ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain), (gst_ogg_demux_do_seek), (gst_ogg_demux_read_chain): Make seeking in ogg more accurate again by doing the more correct granuletime to stream time conversion.
This commit is contained in:
parent
3ed1d62d9a
commit
149d818f38
2 changed files with 11 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2006-07-26 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
|
||||||
|
(gst_ogg_demux_do_seek), (gst_ogg_demux_read_chain):
|
||||||
|
Make seeking in ogg more accurate again by doing the more correct
|
||||||
|
granuletime to stream time conversion.
|
||||||
|
|
||||||
2006-07-26 Thomas Vander Stichele <thomas at apestaart dot org>
|
2006-07-26 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full),
|
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_add_full),
|
||||||
|
|
|
@ -135,7 +135,7 @@ struct _GstOggPad
|
||||||
GstClockTime start_time; /* the timestamp of the first sample */
|
GstClockTime start_time; /* the timestamp of the first sample */
|
||||||
|
|
||||||
gint64 first_granule; /* the granulepos of first page == first sample in next page */
|
gint64 first_granule; /* the granulepos of first page == first sample in next page */
|
||||||
GstClockTime first_time; /* the timestamp of the second page */
|
GstClockTime first_time; /* the timestamp of the second page or granuletime of first page */
|
||||||
|
|
||||||
ogg_stream_state stream;
|
ogg_stream_state stream;
|
||||||
|
|
||||||
|
@ -1878,12 +1878,12 @@ gst_ogg_demux_do_seek (GstOggDemux * ogg, gint64 position, gboolean accurate,
|
||||||
GST_WARNING_OBJECT (ogg, "could not convert granulepos to time");
|
GST_WARNING_OBJECT (ogg, "could not convert granulepos to time");
|
||||||
granuletime = target;
|
granuletime = target;
|
||||||
} else {
|
} else {
|
||||||
if (granuletime < pad->first_time)
|
if (granuletime < pad->start_time)
|
||||||
continue;
|
continue;
|
||||||
GST_LOG_OBJECT (ogg, "granulepos %" G_GINT64_FORMAT "maps to time %"
|
GST_LOG_OBJECT (ogg, "granulepos %" G_GINT64_FORMAT " maps to time %"
|
||||||
GST_TIME_FORMAT, granulepos, GST_TIME_ARGS (granuletime));
|
GST_TIME_FORMAT, granulepos, GST_TIME_ARGS (granuletime));
|
||||||
|
|
||||||
granuletime -= pad->first_time;
|
granuletime -= pad->start_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (ogg,
|
GST_DEBUG_OBJECT (ogg,
|
||||||
|
|
Loading…
Reference in a new issue