Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/build_environment/patches/ffmpeg.diff')
-rw-r--r--build_files/build_environment/patches/ffmpeg.diff59
1 files changed, 59 insertions, 0 deletions
diff --git a/build_files/build_environment/patches/ffmpeg.diff b/build_files/build_environment/patches/ffmpeg.diff
index 960728ae980..e195ca272de 100644
--- a/build_files/build_environment/patches/ffmpeg.diff
+++ b/build_files/build_environment/patches/ffmpeg.diff
@@ -9,3 +9,62 @@
enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++"
enabled libopus && {
enabled libopus_decoder && {
+--- a/libavcodec/cfhddata.c
++++ b/libavcodec/cfhddata.c
+@@ -276,10 +276,10 @@
+ av_cold int ff_cfhd_init_vlcs(CFHDContext *s)
+ {
+ int i, j, ret = 0;
+- uint32_t new_cfhd_vlc_bits[NB_VLC_TABLE_18 * 2];
+- uint8_t new_cfhd_vlc_len[NB_VLC_TABLE_18 * 2];
+- uint16_t new_cfhd_vlc_run[NB_VLC_TABLE_18 * 2];
+- int16_t new_cfhd_vlc_level[NB_VLC_TABLE_18 * 2];
++ uint32_t *new_cfhd_vlc_bits = av_calloc(sizeof(uint32_t), NB_VLC_TABLE_18 * 2);
++ uint8_t *new_cfhd_vlc_len = av_calloc(sizeof(uint8_t), NB_VLC_TABLE_18 * 2);
++ uint16_t *new_cfhd_vlc_run = av_calloc(sizeof(uint16_t), NB_VLC_TABLE_18 * 2);
++ int16_t *new_cfhd_vlc_level = av_calloc(sizeof(int16_t), NB_VLC_TABLE_18 * 2);
+
+ /** Similar to dv.c, generate signed VLC tables **/
+
+@@ -305,8 +305,13 @@
+
+ ret = init_vlc(&s->vlc_9, VLC_BITS, j, new_cfhd_vlc_len,
+ 1, 1, new_cfhd_vlc_bits, 4, 4, 0);
+- if (ret < 0)
++ if (ret < 0) {
++ av_free(new_cfhd_vlc_bits);
++ av_free(new_cfhd_vlc_len);
++ av_free(new_cfhd_vlc_run);
++ av_free(new_cfhd_vlc_level);
+ return ret;
++ }
+ for (i = 0; i < s->vlc_9.table_size; i++) {
+ int code = s->vlc_9.table[i][0];
+ int len = s->vlc_9.table[i][1];
+@@ -346,8 +351,14 @@
+
+ ret = init_vlc(&s->vlc_18, VLC_BITS, j, new_cfhd_vlc_len,
+ 1, 1, new_cfhd_vlc_bits, 4, 4, 0);
+- if (ret < 0)
++ if (ret < 0) {
++ av_free(new_cfhd_vlc_bits);
++ av_free(new_cfhd_vlc_len);
++ av_free(new_cfhd_vlc_run);
++ av_free(new_cfhd_vlc_level);
+ return ret;
++ }
++
+ av_assert0(s->vlc_18.table_size == 4572);
+
+ for (i = 0; i < s->vlc_18.table_size; i++) {
+@@ -367,5 +378,10 @@
+ s->table_18_rl_vlc[i].run = run;
+ }
+
++ av_free(new_cfhd_vlc_bits);
++ av_free(new_cfhd_vlc_len);
++ av_free(new_cfhd_vlc_run);
++ av_free(new_cfhd_vlc_level);
++
+ return ret;
+ }