diff options
author | Martin Storsjö <martin@martin.st> | 2012-10-11 15:08:04 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-10-11 23:35:27 +0300 |
commit | 9a92aea27bad2f5603ca85e0d0716c679a6b686c (patch) | |
tree | a38dae27b4c15cc4a75c0a3745351b8c5b3fd122 /libavutil/sha.c | |
parent | fb32f31af76ce784c86c59c86c28e5653e223610 (diff) | |
download | ffmpeg-9a92aea27bad2f5603ca85e0d0716c679a6b686c.tar.gz |
avutil: Add functions for allocating opaque contexts for algorithms
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ö <martin@martin.st>
Diffstat (limited to 'libavutil/sha.c')
-rw-r--r-- | libavutil/sha.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libavutil/sha.c b/libavutil/sha.c index cbe1608a26..d5831915c4 100644 --- a/libavutil/sha.c +++ b/libavutil/sha.c @@ -26,6 +26,7 @@ #include "bswap.h" #include "sha.h" #include "intreadwrite.h" +#include "mem.h" /** hash context */ typedef struct AVSHA { @@ -37,7 +38,14 @@ typedef struct AVSHA { void (*transform)(uint32_t *state, const uint8_t buffer[64]); } AVSHA; +#if FF_API_CONTEXT_SIZE const int av_sha_size = sizeof(AVSHA); +#endif + +struct AVSHA *av_sha_alloc(void) +{ + return av_mallocz(sizeof(struct AVSHA)); +} #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) |