diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-11-02 01:55:40 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2015-03-12 18:03:49 +0100 |
commit | 3296e30d372d8ed0ada4b5fc010d2b0fc6b37e97 (patch) | |
tree | d93ded951b1af5c9766e69f889244782c7018935 | |
parent | d327f673f934b95eefefd4944161d273d5ddfb44 (diff) | |
download | ffmpeg-3296e30d372d8ed0ada4b5fc010d2b0fc6b37e97.tar.gz |
avcodec/h264_slice: Clear table pointers to avoid stale pointers
Might fix Ticket3889
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 547fce95858ef83f8c25ae347e3ae3b8ba437fd9)
Conflicts:
libavcodec/h264_slice.c
Conflicts:
libavcodec/h264.c
-rw-r--r-- | libavcodec/h264.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index e726fd8019..988e8195b2 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); |