On Tue, May 9, 2017 at 8:19 PM, Nicolas George <geo...@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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel