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/aes.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'libavutil/aes.c') diff --git a/libavutil/aes.c b/libavutil/aes.c index 6803c7190d..4656a48634 100644 --- a/libavutil/aes.c +++ b/libavutil/aes.c @@ -39,7 +39,14 @@ typedef struct AVAES { int rounds; } AVAES; +#if FF_API_CONTEXT_SIZE const int av_aes_size= sizeof(AVAES); +#endif + +struct AVAES *av_aes_alloc(void) +{ + return av_mallocz(sizeof(struct AVAES)); +} static const uint8_t rcon[10] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36 -- cgit v1.2.3