From 447d2e31d167ebd6856c492f762a98aa56df8b58 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 29 Jun 2013 12:44:47 +0200 Subject: [PATCH 1/2] ffplay: use frame->pkt_pts instead of pkt->pts in audio pts calculation Fixes ticket #2717. Signed-off-by: Marton Balint --- ffplay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ffplay.c b/ffplay.c index 946e9b3a30..37623a4548 100644 --- a/ffplay.c +++ b/ffplay.c @@ -2177,8 +2177,8 @@ static int audio_decode_frame(VideoState *is) tb = (AVRational){1, is->frame->sample_rate}; if (is->frame->pts != AV_NOPTS_VALUE) is->frame->pts = av_rescale_q(is->frame->pts, dec->time_base, tb); - if (is->frame->pts == AV_NOPTS_VALUE && pkt_temp->pts != AV_NOPTS_VALUE) - is->frame->pts = av_rescale_q(pkt_temp->pts, is->audio_st->time_base, tb); + else if (is->frame->pkt_pts != AV_NOPTS_VALUE) + is->frame->pts = av_rescale_q(is->frame->pkt_pts, is->audio_st->time_base, tb); if (pkt_temp->pts != AV_NOPTS_VALUE) pkt_temp->pts += (double) is->frame->nb_samples / is->frame->sample_rate / av_q2d(is->audio_st->time_base); From 02fc61a5a68321acb9d84bf30580cbdb3a2db1d6 Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Sat, 29 Jun 2013 14:44:30 +0200 Subject: [PATCH 2/2] ffplay: always send zero packets to flush audio decoders Zero packets are needed not for codecs with CODEC_CAP_DELAY but for multithreaded decoders as well. Signed-off-by: Marton Balint --- ffplay.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ffplay.c b/ffplay.c index 37623a4548..744570c08a 100644 --- a/ffplay.c +++ b/ffplay.c @@ -2892,8 +2892,7 @@ static int read_thread(void *arg) pkt->stream_index = is->video_stream; packet_queue_put(&is->videoq, pkt); } - if (is->audio_stream >= 0 && - is->audio_st->codec->codec->capabilities & CODEC_CAP_DELAY) { + if (is->audio_stream >= 0) { av_init_packet(pkt); pkt->data = NULL; pkt->size = 0;