fix FfmpegDecoderPlugin to use relative timestamps
This commit is contained in:
parent
a191db84f2
commit
6b3b8c6f2e
2
NEWS
2
NEWS
|
@ -3,6 +3,8 @@ ver 0.18.6 (not yet released)
|
|||
- cdio_paranoia: support libcdio-paranoia 0.90
|
||||
* tags
|
||||
- riff: recognize upper-case "ID3" chunk name
|
||||
* decoder
|
||||
- ffmpeg: use relative timestamps
|
||||
* output
|
||||
- openal: fix build failure on Mac OS X
|
||||
- osx: fix build failure
|
||||
|
|
|
@ -251,13 +251,14 @@ static DecoderCommand
|
|||
ffmpeg_send_packet(Decoder &decoder, InputStream &is,
|
||||
const AVPacket *packet,
|
||||
AVCodecContext *codec_context,
|
||||
const AVRational *time_base,
|
||||
const AVStream *stream,
|
||||
AVFrame *frame,
|
||||
uint8_t **buffer, int *buffer_size)
|
||||
{
|
||||
if (packet->pts >= 0 && packet->pts != (int64_t)AV_NOPTS_VALUE)
|
||||
decoder_timestamp(decoder,
|
||||
time_from_ffmpeg(packet->pts, *time_base));
|
||||
time_from_ffmpeg(packet->pts - stream->start_time,
|
||||
stream->time_base));
|
||||
|
||||
AVPacket packet2 = *packet;
|
||||
|
||||
|
@ -470,7 +471,7 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
|
|||
if (packet.stream_index == audio_stream)
|
||||
cmd = ffmpeg_send_packet(decoder, input,
|
||||
&packet, codec_context,
|
||||
&av_stream->time_base,
|
||||
av_stream,
|
||||
frame,
|
||||
&interleaved_buffer, &interleaved_buffer_size);
|
||||
else
|
||||
|
@ -481,7 +482,8 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
|
|||
if (cmd == DecoderCommand::SEEK) {
|
||||
int64_t where =
|
||||
time_to_ffmpeg(decoder_seek_where(decoder),
|
||||
av_stream->time_base);
|
||||
av_stream->time_base) +
|
||||
av_stream->start_time;
|
||||
|
||||
if (av_seek_frame(format_context, audio_stream, where,
|
||||
AV_TIME_BASE) < 0)
|
||||
|
|
Loading…
Reference in New Issue