mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-09 14:14:39 +02:00
avformat/oggparsevp8: fix pts calculation on pages ending with an invisible frame
Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit 5adfbd391847fcdaea1e9b105fae2dd90af2a733)
This commit is contained in:
parent
da4ea97161
commit
e9b7ae08d6
@ -82,7 +82,11 @@ static uint64_t vp8_gptopts(AVFormatContext *s, int idx,
|
|||||||
struct ogg *ogg = s->priv_data;
|
struct ogg *ogg = s->priv_data;
|
||||||
struct ogg_stream *os = ogg->streams + idx;
|
struct ogg_stream *os = ogg->streams + idx;
|
||||||
|
|
||||||
uint64_t pts = (granule >> 32);
|
int invcnt = !((granule >> 30) & 3);
|
||||||
|
// If page granule is that of an invisible vp8 frame, its pts will be
|
||||||
|
// that of the end of the next visible frame. We substract 1 for those
|
||||||
|
// to prevent messing up pts calculations.
|
||||||
|
uint64_t pts = (granule >> 32) - invcnt;
|
||||||
uint32_t dist = (granule >> 3) & 0x07ffffff;
|
uint32_t dist = (granule >> 3) & 0x07ffffff;
|
||||||
|
|
||||||
if (!dist)
|
if (!dist)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user