oggvorbis: move handling of first packets ts from parser to muxer.
The parser does not have enough knowledge it seems to do it correctly. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
bce42e95d1
commit
441dce2169
@ -226,8 +226,7 @@ int avpriv_vorbis_parse_frame(VorbisParseContext *s, const uint8_t *buf,
|
|||||||
previous_blocksize = s->blocksize[flag];
|
previous_blocksize = s->blocksize[flag];
|
||||||
}
|
}
|
||||||
current_blocksize = s->mode_blocksize[mode];
|
current_blocksize = s->mode_blocksize[mode];
|
||||||
if(previous_blocksize)
|
duration = (previous_blocksize + current_blocksize) >> 2;
|
||||||
duration = (previous_blocksize + current_blocksize) >> 2;
|
|
||||||
s->previous_blocksize = current_blocksize;
|
s->previous_blocksize = current_blocksize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ static int vorbis_packet(AVFormatContext *s, int idx)
|
|||||||
}
|
}
|
||||||
next_pkt += os->segments[seg];
|
next_pkt += os->segments[seg];
|
||||||
}
|
}
|
||||||
os->lastpts = os->lastdts = os->granule - duration;
|
os->lastpts = os->lastdts = os->granule - FFMIN(duration, os->granule);
|
||||||
if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {
|
if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {
|
||||||
s->streams[idx]->start_time = os->lastpts;
|
s->streams[idx]->start_time = os->lastpts;
|
||||||
if (s->streams[idx]->duration)
|
if (s->streams[idx]->duration)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user