avconv: always reset packet pts after decoding an audio frame
Currently, if a decoder sets AVFrame.pts, we'd send the same timestamp to it twice, which is wrong.
This commit is contained in:
parent
b19a5e5198
commit
1ae8198bca
5
avconv.c
5
avconv.c
@ -1175,10 +1175,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
|
|||||||
the decoder could be delaying output by a packet or more. */
|
the decoder could be delaying output by a packet or more. */
|
||||||
if (decoded_frame->pts != AV_NOPTS_VALUE)
|
if (decoded_frame->pts != AV_NOPTS_VALUE)
|
||||||
ist->next_dts = decoded_frame->pts;
|
ist->next_dts = decoded_frame->pts;
|
||||||
else if (pkt->pts != AV_NOPTS_VALUE) {
|
else if (pkt->pts != AV_NOPTS_VALUE)
|
||||||
decoded_frame->pts = pkt->pts;
|
decoded_frame->pts = pkt->pts;
|
||||||
pkt->pts = AV_NOPTS_VALUE;
|
pkt->pts = AV_NOPTS_VALUE;
|
||||||
}
|
|
||||||
|
|
||||||
resample_changed = ist->resample_sample_fmt != decoded_frame->format ||
|
resample_changed = ist->resample_sample_fmt != decoded_frame->format ||
|
||||||
ist->resample_channels != avctx->channels ||
|
ist->resample_channels != avctx->channels ||
|
||||||
|
Loading…
Reference in New Issue
Block a user