mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 20:51:13 +00:00
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
This commit is contained in:
parent
133baf3a34
commit
b03b223fb1
1 changed files with 5 additions and 0 deletions
|
@ -255,6 +255,11 @@ granule_to_granulepos_default (GstOggStream * pad, gint64 granule,
|
||||||
gint64 keyoffset;
|
gint64 keyoffset;
|
||||||
|
|
||||||
if (pad->granuleshift != 0) {
|
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;
|
keyoffset = granule - keyframe_granule;
|
||||||
return (keyframe_granule << pad->granuleshift) | keyoffset;
|
return (keyframe_granule << pad->granuleshift) | keyoffset;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue