mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-26 09:12:33 +00:00
avformat/oggparsetheora: Do not adjust AV_NOPTS_VALUE
Fixes: Chromium bug 795653 Fixes: signed integer overflow: 9223372036854775807 + 1 cannot be represented in type 'long' Reported-by: Matt Wolenetz <wolenetz@google.com> Reviewed-by: Matt Wolenetz <wolenetz@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
8d37dd6ed3
commit
02ecda4aba
@ -181,6 +181,7 @@ static int theora_packet(AVFormatContext *s, int idx)
|
||||
|
||||
if ((!os->lastpts || os->lastpts == AV_NOPTS_VALUE) && !(os->flags & OGG_FLAG_EOS)) {
|
||||
int seg;
|
||||
int64_t pts;
|
||||
|
||||
duration = 1;
|
||||
for (seg = os->segp; seg < os->nsegs; seg++) {
|
||||
@ -188,7 +189,10 @@ static int theora_packet(AVFormatContext *s, int idx)
|
||||
duration ++;
|
||||
}
|
||||
|
||||
os->lastpts = os->lastdts = theora_gptopts(s, idx, os->granule, NULL) - duration;
|
||||
pts = theora_gptopts(s, idx, os->granule, NULL);
|
||||
if (pts != AV_NOPTS_VALUE)
|
||||
pts -= duration;
|
||||
os->lastpts = os->lastdts = pts;
|
||||
if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {
|
||||
s->streams[idx]->start_time = os->lastpts;
|
||||
if (s->streams[idx]->duration > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user