[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