[FFmpeg-cvslog] avcodec/h264_slice: Clear table pointers to avoid stale pointers
Michael Niedermayer
git at videolan.org
Thu Mar 12 18:05:28 CET 2015
ffmpeg | branch: release/0.10 | Michael Niedermayer <michaelni at gmx.at> | Sun Nov 2 01:55:40 2014 +0100| [3296e30d372d8ed0ada4b5fc010d2b0fc6b37e97] | committer: Michael Niedermayer
avcodec/h264_slice: Clear table pointers to avoid stale pointers
Might fix Ticket3889
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 547fce95858ef83f8c25ae347e3ae3b8ba437fd9)
Conflicts:
libavcodec/h264_slice.c
Conflicts:
libavcodec/h264.c
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3296e30d372d8ed0ada4b5fc010d2b0fc6b37e97
---
libavcodec/h264.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index e726fd8..988e819 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -1224,6 +1224,19 @@ static int decode_update_thread_context(AVCodecContext *dst, const AVCodecContex
memcpy(&h->s + 1, &h1->s + 1, sizeof(H264Context) - sizeof(MpegEncContext)); //copy all fields after MpegEnc
memset(h->sps_buffers, 0, sizeof(h->sps_buffers));
memset(h->pps_buffers, 0, sizeof(h->pps_buffers));
+
+ h->intra4x4_pred_mode= NULL;
+ h->non_zero_count = NULL;
+ h->slice_table_base = NULL;
+ h->slice_table = NULL;
+ h->cbp_table = NULL;
+ h->chroma_pred_mode_table = NULL;
+ memset(h->mvd_table, 0, sizeof(h->mvd_table));
+ h->direct_table = NULL;
+ h->list_counts = NULL;
+ h->mb2b_xy = NULL;
+ h->mb2br_xy = NULL;
+
if (ff_h264_alloc_tables(h) < 0) {
av_log(dst, AV_LOG_ERROR, "Could not allocate memory for h264\n");
return AVERROR(ENOMEM);
More information about the ffmpeg-cvslog
mailing list