[FFmpeg-devel] [PATCH 2/3] avcodec/libuavs3d: use output_reorder_delay as has_b_frames

"zhilizhao(赵志立)" quinkblack at foxmail.com
Sat May 14 06:39:15 EEST 2022



> On May 14, 2022, at 9:04 AM, mypopy at gmail.com wrote:
> 
> On Fri, May 13, 2022 at 5:41 PM Zhao Zhili <quinkblack at foxmail.com> wrote:
>> 
>> has_b_frames is more than a bool, it's the size of the frame
>> reordering buffer in the decoder.
>> ---
>> libavcodec/libuavs3d.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/libavcodec/libuavs3d.c b/libavcodec/libuavs3d.c
>> index 23de4c8cd5..e911963a41 100644
>> --- a/libavcodec/libuavs3d.c
>> +++ b/libavcodec/libuavs3d.c
>> @@ -206,7 +206,7 @@ static int libuavs3d_decode_frame(AVCodecContext *avctx, AVFrame *frm,
>>                     avctx->framerate.num = ff_avs3_frame_rate_tab[seqh->frame_rate_code].num;
>>                     avctx->framerate.den = ff_avs3_frame_rate_tab[seqh->frame_rate_code].den;
>>                 }
>> -                avctx->has_b_frames  = !seqh->low_delay;
>> +                avctx->has_b_frames = seqh->output_reorder_delay;
> The same case, AVS3 uses output_reorder_delay but AVS2 uses low_delay,
> which is a bit strange

Patch 3/3 explains why: it should be picture_reorder_delay, but it’s
not available in libdavs2’s public API.

>>                 avctx->pix_fmt = seqh->bit_depth_internal == 8 ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUV420P10LE;
>>                 ret = ff_set_dimensions(avctx, seqh->horizontal_size, seqh->vertical_size);
>>                 if (ret < 0)
>> --



More information about the ffmpeg-devel mailing list