diff options
-rw-r--r-- | doc/APIchanges | 1 | ||||
-rw-r--r-- | libavutil/rc4.c | 13 | ||||
-rw-r--r-- | libavutil/rc4.h | 24 |
3 files changed, 35 insertions, 3 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index d222fc67b7..5fcbabb9e4 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -17,6 +17,7 @@ API changes, most recent first: 2015-xx-xx - lavu 54.30.0 xxxxxxx - Add av_blowfish_alloc(). + xxxxxxx - Add av_rc4_alloc(). 2015-xx-xx - lavc 56.35.0 - avcodec.h xxxxxxxxx - Rename CODEC_FLAG* defines to AV_CODEC_FLAG*. diff --git a/libavutil/rc4.c b/libavutil/rc4.c index 4e52ba5ac1..e507b4a1ab 100644 --- a/libavutil/rc4.c +++ b/libavutil/rc4.c @@ -22,9 +22,20 @@ */ #include "avutil.h" #include "common.h" +#include "mem.h" #include "rc4.h" -typedef struct AVRC4 AVRC4; +#if !FF_API_CRYPTO_CONTEXT +struct AVRC4 { + uint8_t state[256]; + int x, y; +}; +#endif + +AVRC4 *av_rc4_alloc(void) +{ + return av_mallocz(sizeof(struct AVRC4)); +} int av_rc4_init(AVRC4 *r, const uint8_t *key, int key_bits, int decrypt) { int i, j; diff --git a/libavutil/rc4.h b/libavutil/rc4.h index 9362fd8880..52d0868f2e 100644 --- a/libavutil/rc4.h +++ b/libavutil/rc4.h @@ -22,11 +22,27 @@ #define AVUTIL_RC4_H #include <stdint.h> +#include "version.h" -struct AVRC4 { +/** + * @defgroup lavu_rc4 RC4 + * @ingroup lavu_crypto + * @{ + */ + +#if FF_API_CRYPTO_CONTEXT +typedef struct AVRC4 { uint8_t state[256]; int x, y; -}; +} AVRC4; +#else +typedef struct AVRC4 AVRC4; +#endif + +/** + * Allocate an AVRC4 context. + */ +AVRC4 *av_rc4_alloc(void); /** * @brief Initializes an AVRC4 context. @@ -47,4 +63,8 @@ int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); */ void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); +/** + * @} + */ + #endif /* AVUTIL_RC4_H */ |