[FFmpeg-devel] [PATCH 1/3] avcodec/av1dec: Pass AVCodecContext* as logctx in get_sw_pixel_format()

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Sep 13 11:43:59 EEST 2023


James Almer:
> On 9/12/2023 9:22 PM, Andreas Rheinhardt wrote:
>> Andreas Rheinhardt:
>>> It indicates to the reader that said function does not modify
>>> any state.
>>>
>>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
>>> ---
>>>   libavcodec/av1dec.c | 12 ++++++------
>>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
>>> index 8f9c2dfefb..8f6c4f732e 100644
>>> --- a/libavcodec/av1dec.c
>>> +++ b/libavcodec/av1dec.c
>>> @@ -440,7 +440,7 @@ static int get_tiles_info(AVCodecContext *avctx,
>>> const AV1RawTileGroup *tile_gro
>>>     }
>>>   -static enum AVPixelFormat get_sw_pixel_format(AVCodecContext *avctx,
>>> +static enum AVPixelFormat get_sw_pixel_format(void *logctx,
>>>                                                 const
>>> AV1RawSequenceHeader *seq)
>>>   {
>>>       uint8_t bit_depth;
>>> @@ -451,7 +451,7 @@ static enum AVPixelFormat
>>> get_sw_pixel_format(AVCodecContext *avctx,
>>>       else if (seq->seq_profile <= 2)
>>>           bit_depth = seq->color_config.high_bitdepth ? 10 : 8;
>>>       else {
>>> -        av_log(avctx, AV_LOG_ERROR,
>>> +        av_log(logctx, AV_LOG_ERROR,
>>>                  "Unknown AV1 profile %d.\n", seq->seq_profile);
>>>           return -1;
>>>       }
>>> @@ -467,7 +467,7 @@ static enum AVPixelFormat
>>> get_sw_pixel_format(AVCodecContext *avctx,
>>>               else if (bit_depth == 12)
>>>                   pix_fmt = AV_PIX_FMT_YUV444P12;
>>>               else
>>> -                av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>> +                av_log(logctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>>           } else if (seq->color_config.subsampling_x == 1 &&
>>>                      seq->color_config.subsampling_y == 0) {
>>>               if (bit_depth == 8)
>>> @@ -477,7 +477,7 @@ static enum AVPixelFormat
>>> get_sw_pixel_format(AVCodecContext *avctx,
>>>               else if (bit_depth == 12)
>>>                   pix_fmt = AV_PIX_FMT_YUV422P12;
>>>               else
>>> -                av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>> +                av_log(logctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>>           } else if (seq->color_config.subsampling_x == 1 &&
>>>                      seq->color_config.subsampling_y == 1) {
>>>               if (bit_depth == 8)
>>> @@ -487,7 +487,7 @@ static enum AVPixelFormat
>>> get_sw_pixel_format(AVCodecContext *avctx,
>>>               else if (bit_depth == 12)
>>>                   pix_fmt = AV_PIX_FMT_YUV420P12;
>>>               else
>>> -                av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>> +                av_log(logctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>>           }
>>>       } else {
>>>           if (bit_depth == 8)
>>> @@ -497,7 +497,7 @@ static enum AVPixelFormat
>>> get_sw_pixel_format(AVCodecContext *avctx,
>>>           else if (bit_depth == 12)
>>>               pix_fmt = AV_PIX_FMT_GRAY12;
>>>           else
>>> -            av_log(avctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>> +            av_log(logctx, AV_LOG_WARNING, "Unknown AV1 pixel
>>> format.\n");
>>>       }
>>>         return pix_fmt;
>>
>> Will apply this patchset tonight unless there are objections.
> 
> Not against it, but this reminds me I'd really like a way to pass a
> const pointer to av_log().

In this case you should take a look at bsf.c whose item_name callback
modifies the underlying AVClass-enabled context. (It also does not
bother with error checks.)

- Andreas



More information about the ffmpeg-devel mailing list