Merge remote-tracking branch 'cus/stable'
* cus/stable: ffplay: always send zero packets to flush audio decoders ffplay: use frame->pkt_pts instead of pkt->pts in audio pts calculation Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
ec837a0899
7
ffplay.c
7
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;
|
||||
|
Loading…
Reference in New Issue
Block a user