diff --git a/ffplay.c b/ffplay.c index 946e9b3a30..744570c08a 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); @@ -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;