Anton Khirnov: > Quoting Andreas Rheinhardt (2021-04-08 11:41:41) >> Anton Khirnov: >>> --- >>> libavutil/video_enc_params.c | 6 +++--- >>> 1 file changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/libavutil/video_enc_params.c b/libavutil/video_enc_params.c >>> index 635176ab91..1779a8799a 100644 >>> --- a/libavutil/video_enc_params.c >>> +++ b/libavutil/video_enc_params.c >>> @@ -30,9 +30,9 @@ AVVideoEncParams *av_video_enc_params_alloc(enum >>> AVVideoEncParamsType type, >>> unsigned int nb_blocks, size_t >>> *out_size) >>> { >>> AVVideoEncParams *par; >>> - size_t size; >>> + size_t blocks_offset = FFALIGN(sizeof(*par), 8); >>> + size_t size = blocks_offset; >>> >>> - size = sizeof(*par); >>> if (nb_blocks > (SIZE_MAX - size) / sizeof(AVVideoBlockParams)) >>> return NULL; >>> size += sizeof(AVVideoBlockParams) * nb_blocks; >>> @@ -44,7 +44,7 @@ AVVideoEncParams *av_video_enc_params_alloc(enum >>> AVVideoEncParamsType type, >>> par->type = type; >>> par->nb_blocks = nb_blocks; >>> par->block_size = sizeof(AVVideoBlockParams); >>> - par->blocks_offset = sizeof(*par); >>> + par->blocks_offset = blocks_offset; >>> >>> if (out_size) >>> *out_size = size; >>> >> Wouldn't it be safer to just define a struct { AVVideoEncParams header; >> AVVideoBlockParams blocks[1]; } and use the offset of blocks in that? > > I don't see how it would be safer and it prevents you from adding new > fields to AVVideoEncParams > Safer: You are making assumptions about the alignment of AVVideoBlockParams; these assumptions may or may not be fulfilled in practice. And I really don't get your point about this preventing the addition of new fields to AVVideoEncParams. If something is added to AVVideoEncParams, sizeof(header) and offsetof(blocks) will grow automatically as required.
- Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".