diff mbox series

[FFmpeg-devel,3/3] avcodec/libdavs2: export has_b_frames info

Message ID tencent_91E93368B5D4C902CEA125437315684DB305@qq.com
State Accepted
Commit 5a7a33f6f24e08470bfce2dee020da7b2f6a9b50
Headers show
Series [FFmpeg-devel,1/3] avcodec/avs3_parser: set has_b_frames properly | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Zhao Zhili May 13, 2022, 9:40 a.m. UTC
More precisely, we should use picture_reorder_delay, but it's
unavailable yet.
---
 libavcodec/libdavs2.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/libavcodec/libdavs2.c b/libavcodec/libdavs2.c
index a47027d300..bc31745a4f 100644
--- a/libavcodec/libdavs2.c
+++ b/libavcodec/libdavs2.c
@@ -78,6 +78,12 @@  static int davs2_dump_frames(AVCodecContext *avctx, davs2_picture_t *pic, int *g
         avctx->height    = headerset->height;
         avctx->pix_fmt   = headerset->output_bit_depth == 10 ?
                            AV_PIX_FMT_YUV420P10 : AV_PIX_FMT_YUV420P;
+        /* It should be picture_reorder_delay, but libdavs2 doesn't export that
+         * info.
+         * Use FFMAX since has_b_frames could be set by AVS2 parser in theory,
+         * which doesn't do it yet.
+         */
+        avctx->has_b_frames = FFMAX(avctx->has_b_frames, !headerset->low_delay);
 
         avctx->framerate = av_d2q(headerset->frame_rate,4096);
         *got_frame = 0;