From 9a92aea27bad2f5603ca85e0d0716c679a6b686c Mon Sep 17 00:00:00 2001 From: Martin Storsjö Date: Thu, 11 Oct 2012 15:08:04 +0300 Subject: avutil: Add functions for allocating opaque contexts for algorithms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current API where the plain size is exposed is not of much use - in most cases it is allocated dynamically anyway. If allocated e.g. on the stack via an uint8_t array, there's no guarantee that the struct's members are aligned properly (unless the array is overallocated and the opaque pointer within it manually aligned to some unspecified alignment). Signed-off-by: Martin Storsjö --- libavutil/md5.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavutil/md5.c') diff --git a/libavutil/md5.c b/libavutil/md5.c index ca0e598d2e..93a91d7812 100644 --- a/libavutil/md5.c +++ b/libavutil/md5.c @@ -34,6 +34,7 @@ #include "bswap.h" #include "intreadwrite.h" #include "md5.h" +#include "mem.h" typedef struct AVMD5{ uint64_t len; @@ -41,7 +42,14 @@ typedef struct AVMD5{ uint32_t ABCD[4]; } AVMD5; +#if FF_API_CONTEXT_SIZE const int av_md5_size = sizeof(AVMD5); +#endif + +struct AVMD5 *av_md5_alloc(void) +{ + return av_mallocz(sizeof(struct AVMD5)); +} static const uint8_t S[4][4] = { { 7, 12, 17, 22 }, /* round 1 */ -- cgit v1.2.3