[FFmpeg-devel] [PATCH 01/11] avcodec/packet: add generic side data helpers

Anton Khirnov anton at khirnov.net
Tue Oct 3 15:54:48 EEST 2023


Quoting James Almer (2023-09-27 15:12:32)
> +static AVPacketSideData *packet_side_data_add(AVPacketSideData **psd, int *pnb_sd,
> +                                              enum AVPacketSideDataType type,
> +                                              void *data, size_t size)
> +{
> +    AVPacketSideData *sd = *psd, *tmp;
> +    int nb_sd = *pnb_sd;
> +
> +    for (int i = 0; i < nb_sd; i++) {
> +        if (sd[i].type != type)
> +            continue;
> +
> +        av_free(sd[i].data);
> +        sd[i].data = data;
> +        sd[i].size = size;
> +        return &sd[i];
> +    }
> +
> +    if (nb_sd + 1U > INT_MAX)

seems simpler to write it as nb_sd == INT_MAX

> +AVPacketSideData *av_packet_side_data_new(AVPacketSideData **psd, int *pnb_sd,
> +                                          enum AVPacketSideDataType type,
> +                                          size_t size, int flags)
> +{
> +    AVPacketSideData *sd = NULL;
> +    void *data;
> +
> +    if (size > SIZE_MAX - AV_INPUT_BUFFER_PADDING_SIZE)
> +        return NULL;
> +
> +    data = av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE);
> +    if (!data)
> +        return NULL;

IIRC padding needs to be memset to zero

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list