[FFmpeg-devel] [PATCH v3 1/3] lavc/decode: Warp get_hw_config function
Mark Thompson
sw at jkqxz.net
Thu Sep 8 01:13:15 EEST 2022
On 07/09/2022 09:47, Xiang, Haihao wrote:
> On Wed, 2022-08-31 at 01:20 +0000, Wang, Fei W wrote:
>> On Tue, 2022-08-23 at 16:19 +0800, Fei Wang wrote:
>>> From: Linjie Fu <linjie.fu at intel.com>
>>>
>>> Wrap the procedure of getting the hardware config from a pixel format
>>> into a function.
>>>
>>> Signed-off-by: Linjie Fu <linjie.fu at intel.com>
>>> Signed-off-by: Fei Wang <fei.w.wang at intel.com>
>>> ---
>>> libavcodec/decode.c | 31 +++++++++++++++++++------------
>>> 1 file changed, 19 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
>>> index 75373989c6..3b69426c09 100644
>>> --- a/libavcodec/decode.c
>>> +++ b/libavcodec/decode.c
>>> @@ -1156,6 +1156,24 @@ static void hwaccel_uninit(AVCodecContext
>>> *avctx)
>>> av_buffer_unref(&avctx->hw_frames_ctx);
>>> }
>>>
>>> +static const AVCodecHWConfigInternal *get_hw_config(AVCodecContext
>>> *avctx, enum AVPixelFormat fmt)
>>> +{
>>> + const AVCodecHWConfigInternal *hw_config;
>>> +
>>> + if (!ffcodec(avctx->codec)->hw_configs)
>>> + return NULL;
>>> +
>>> + for (int i = 0;; i++) {
>>> + hw_config = ffcodec(avctx->codec)->hw_configs[i];
>>> + if (!hw_config)
>>> + return NULL;
>>> + if (hw_config->public.pix_fmt == fmt)
>>> + return hw_config;
>>> + }
>>> +
>>> + return NULL;
>>> +}
>>> +
>>> int ff_get_format(AVCodecContext *avctx, const enum AVPixelFormat
>>> *fmt)
>>> {
>>> const AVPixFmtDescriptor *desc;
>>> @@ -1213,18 +1231,7 @@ int ff_get_format(AVCodecContext *avctx, const
>>> enum AVPixelFormat *fmt)
>>> break;
>>> }
>>>
>>> - if (ffcodec(avctx->codec)->hw_configs) {
>>> - for (i = 0;; i++) {
>>> - hw_config = ffcodec(avctx->codec)->hw_configs[i];
>>> - if (!hw_config)
>>> - break;
>>> - if (hw_config->public.pix_fmt == user_choice)
>>> - break;
>>> - }
>>> - } else {
>>> - hw_config = NULL;
>>> - }
>>> -
>>> + hw_config = get_hw_config(avctx, user_choice);
>>> if (!hw_config) {
>>> // No config available, so no extra setup required.
>>> ret = user_choice;
>>
>> Ping, any more comments on V3?
>>
>
> The patchset LGTM and works well for me, I'll apply this patchset if no more
> comment.
See <https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2022-September/301124.html>.
More information about the ffmpeg-devel
mailing list