Commit b03b223f authored by Vincent Penquerc'h's avatar Vincent Penquerc'h Committed by David Schleef

oggstream: when the last keyframe position is not known, do not use -1

Instead, use either 0 or 1, depending on bitstream version, which give
the correct result for streams which aren't cut off at start.
This allows that function to not return negative granpos.

https://bugzilla.gnome.org/show_bug.cgi?id=638276
parent 133baf3a
......@@ -255,6 +255,11 @@ granule_to_granulepos_default (GstOggStream * pad, gint64 granule,
gint64 keyoffset;
if (pad->granuleshift != 0) {
/* If we don't know where the previous keyframe is yet, assume it is
at 0 or 1, depending on bitstream version. If nothing else, this
avoids getting negative granpos back. */
if (keyframe_granule < 0)
keyframe_granule = pad->theora_has_zero_keyoffset ? 0 : 1;
keyoffset = granule - keyframe_granule;
return (keyframe_granule << pad->granuleshift) | keyoffset;
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment