aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2015-10-17 02:13:42 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2015-11-19 03:51:38 +0100
commita456a5285d15bb27578f2d8ba2bc7d2899afdb9f (patch)
tree28cf6536acfaf3877044b7db6817db9e2c0f3654
parentf8951f4c7af828609174671d00dfd4b25be90b39 (diff)
downloadffmpeg-a456a5285d15bb27578f2d8ba2bc7d2899afdb9f.tar.gz
avcodec/ffv1: Initialize vlc_state on allocation
This ensures that they are always set to valid values Fixes Ticket4939 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit a878dfa4f57d068eb69fb6614f7a4a20f769ee7b) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/ffv1.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index 6073bc4461..89c4e61d17 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -66,7 +66,7 @@ av_cold int ffv1_common_init(AVCodecContext *avctx)
av_cold int ffv1_init_slice_state(FFV1Context *f, FFV1Context *fs)
{
- int j;
+ int j, i;
fs->plane_count = f->plane_count;
fs->transparency = f->transparency;
@@ -80,10 +80,15 @@ av_cold int ffv1_init_slice_state(FFV1Context *f, FFV1Context *fs)
if (!p->state)
return AVERROR(ENOMEM);
} else {
- if (!p->vlc_state)
- p->vlc_state = av_malloc_array(p->context_count, sizeof(VlcState));
- if (!p->vlc_state)
- return AVERROR(ENOMEM);
+ if (!p->vlc_state) {
+ p->vlc_state = av_mallocz_array(p->context_count, sizeof(VlcState));
+ if (!p->vlc_state)
+ return AVERROR(ENOMEM);
+ for (i = 0; i < p->context_count; i++) {
+ p->vlc_state[i].error_sum = 4;
+ p->vlc_state[i].count = 1;
+ }
+ }
}
}