[FFmpeg-cvslog] avcodec/binkaudio: clear pts when returning more than one frame per input packet
James Almer
git at videolan.org
Wed Dec 7 14:02:46 EET 2022
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sun Dec 4 15:32:23 2022 -0300| [8dcb8d1b808d4f8cd6444de05d8277b2e7959144] | committer: James Almer
avcodec/binkaudio: clear pts when returning more than one frame per input packet
This will be needed for a following commit, after which ff_get_buffer() will
stop setting frame->pts to AV_NOPTS_VALUE.
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8dcb8d1b808d4f8cd6444de05d8277b2e7959144
---
libavcodec/binkaudio.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
index 046bf93207..f28ecba760 100644
--- a/libavcodec/binkaudio.c
+++ b/libavcodec/binkaudio.c
@@ -296,9 +296,10 @@ static int binkaudio_receive_frame(AVCodecContext *avctx, AVFrame *frame)
{
BinkAudioContext *s = avctx->priv_data;
GetBitContext *gb = &s->gb;
- int ret;
+ int new_pkt, ret;
again:
+ new_pkt = !s->pkt->data;
if (!s->pkt->data) {
ret = ff_decode_get_packet(avctx, s->pkt);
if (ret < 0) {
@@ -325,6 +326,8 @@ again:
frame->nb_samples = s->frame_len;
if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
return ret;
+ if (!new_pkt)
+ frame->pts = AV_NOPTS_VALUE;
}
if (decode_block(s, (float **)frame->extended_data,
More information about the ffmpeg-cvslog
mailing list