summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2015-03-29 12:26:45 +0200
committerAnton Khirnov <anton@khirnov.net>2015-04-05 12:03:07 +0200
commitbd737b5178f361a9b592691848f29a7a79603a7e (patch)
treeff9e96643bdcc900d5af7f0072acd9c65a2c202a
parenta939e5b2527d0c4628815b1d3d8e29ee921227e8 (diff)
h264: reset the private data in init_thread_copy()
The generic code copies the main context's private data to all the others. However that is quite dangerous, as it might end up copying some pointers that are or will become invalid. Since everything we actually need will be copied later in update_thread_context(), it's safest to zero the private data in init_thread_copy(), so it works the same way as init for the main context.
-rw-r--r--libavcodec/h264.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 0b963e4106..46c172ad48 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -677,8 +677,8 @@ static int decode_init_thread_copy(AVCodecContext *avctx)
if (!avctx->internal->is_copy)
return 0;
- memset(h->sps_buffers, 0, sizeof(h->sps_buffers));
- memset(h->pps_buffers, 0, sizeof(h->pps_buffers));
+
+ memset(h, 0, sizeof(*h));
ret = h264_init_context(avctx, h);
if (ret < 0)