summaryrefslogtreecommitdiff
path: root/libavcodec/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/utils.c')
-rw-r--r--libavcodec/utils.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 4c6823ea76..755186d0b6 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -992,9 +992,11 @@ int attribute_align_arg avcodec_encode_audio2(AVCodecContext *avctx,
ret = avctx->codec->encode2(avctx, avpkt, frame, got_packet_ptr);
if (!ret && *got_packet_ptr) {
if (!(avctx->codec->capabilities & CODEC_CAP_DELAY)) {
- avpkt->pts = frame->pts;
- avpkt->duration = ff_samples_to_time_base(avctx,
- frame->nb_samples);
+ if (avpkt->pts == AV_NOPTS_VALUE)
+ avpkt->pts = frame->pts;
+ if (!avpkt->duration)
+ avpkt->duration = ff_samples_to_time_base(avctx,
+ frame->nb_samples);
}
avpkt->dts = avpkt->pts;
} else {