diff options
author | trav90 <travawine@protonmail.ch> | 2018-10-01 10:27:24 -0500 |
---|---|---|
committer | trav90 <travawine@protonmail.ch> | 2018-10-01 10:27:24 -0500 |
commit | ebc8d7e3ca8723d815904e6fee6c088c659d6784 (patch) | |
tree | 9e3115f44e9a09b9c71d40d72c7d5c939b2278e2 /media/ffvpx/libavutil/mem.c | |
parent | 8e8fcee4a55de171303ebe526d3cf051522111bf (diff) | |
download | UXP-ebc8d7e3ca8723d815904e6fee6c088c659d6784.tar UXP-ebc8d7e3ca8723d815904e6fee6c088c659d6784.tar.gz UXP-ebc8d7e3ca8723d815904e6fee6c088c659d6784.tar.lz UXP-ebc8d7e3ca8723d815904e6fee6c088c659d6784.tar.xz UXP-ebc8d7e3ca8723d815904e6fee6c088c659d6784.zip |
[ffvpx] Update ffvp9/ffvp8 to release 4.0.2
Diffstat (limited to 'media/ffvpx/libavutil/mem.c')
-rw-r--r-- | media/ffvpx/libavutil/mem.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/media/ffvpx/libavutil/mem.c b/media/ffvpx/libavutil/mem.c index 36740f115..6149755a6 100644 --- a/media/ffvpx/libavutil/mem.c +++ b/media/ffvpx/libavutil/mem.c @@ -61,7 +61,7 @@ void free(void *ptr); #include "mem_internal.h" -#define ALIGN (HAVE_AVX ? 32 : 16) +#define ALIGN (HAVE_AVX512 ? 64 : (HAVE_AVX ? 32 : 16)) /* NOTE: if you want to override these functions with your own * implementations (not recommended) you have to link libav* as @@ -181,6 +181,20 @@ int av_reallocp(void *ptr, size_t size) return 0; } +void *av_malloc_array(size_t nmemb, size_t size) +{ + if (!size || nmemb >= INT_MAX / size) + return NULL; + return av_malloc(nmemb * size); +} + +void *av_mallocz_array(size_t nmemb, size_t size) +{ + if (!size || nmemb >= INT_MAX / size) + return NULL; + return av_mallocz(nmemb * size); +} + void *av_realloc_array(void *ptr, size_t nmemb, size_t size) { if (!size || nmemb >= INT_MAX / size) @@ -449,10 +463,15 @@ void av_memcpy_backptr(uint8_t *dst, int back, int cnt) void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size) { - if (min_size < *size) + if (min_size <= *size) return ptr; - min_size = FFMAX(min_size + min_size / 16 + 32, min_size); + if (min_size > max_alloc_size - 32) { + *size = 0; + return NULL; + } + + min_size = FFMIN(max_alloc_size - 32, FFMAX(min_size + min_size / 16 + 32, min_size)); ptr = av_realloc(ptr, min_size); /* we could set this to the unmodified min_size but this is safer |