[FFmpeg-devel] [PATCH 1/3] lavu/frame: add av_frame_check_align().

Muhammad Faiz mfcc64 at gmail.com
Thu May 11 10:59:48 EEST 2017


On Tue, May 9, 2017 at 8:19 PM, Nicolas George <george at nsup.org> wrote:
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index 24d5d5f184..e8467a1cd6 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -781,3 +781,21 @@ const char *av_frame_side_data_name(enum AVFrameSideDataType type)
>      }
>      return NULL;
>  }
> +
> +int av_frame_check_align(const AVFrame *frame, unsigned align)
> +{
> +    unsigned mask = (1 << align) - 1;
> +    unsigned i;
> +    int ret;
> +
> +    av_assert1(align < 16);
> +    for (i = 0; i < AV_NUM_DATA_POINTERS; i++)
> +        if (((intptr_t)frame->data[i] & mask))
> +            return 0;
> +    if (!frame->extended_data || frame->extended_data == frame->data)
> +        return 1;
> +    for (i = AV_NUM_DATA_POINTERS; i < frame->channels; i++)
> +        if (((intptr_t)frame->extended_data[i] & mask))
> +            return 0;
> +    return 1;
> +}

Seem that you don't check linesize alignment. I don't know if it is
required or not. Anyway the linesize constraint has been written in
frame.h


More information about the ffmpeg-devel mailing list