aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-07-15 21:43:30 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-07-15 22:19:27 +0200
commitb7638af9425a721459d51fe99858a1dee7080070 (patch)
tree22102861e3d200d7286e81ee4d525f1c50b32538
parent0bb71a85c398cae8a66885e357490f68d38c80ac (diff)
downloadffmpeg-b7638af9425a721459d51fe99858a1dee7080070.tar.gz
avcodec/hevc: treat current_sps like sps_list
This simplifies the management of current_sps Fixes Ticket3458 Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 880dbe43ca71982ecdfe1c73446137d6b2fd24d5) Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 30b6e9377d3b0b1341147d8484fce24301e7b8a0) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/hevc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavcodec/hevc.c b/libavcodec/hevc.c
index e0f35286e9..9633511f43 100644
--- a/libavcodec/hevc.c
+++ b/libavcodec/hevc.c
@@ -2815,9 +2815,12 @@ static int hevc_update_thread_context(AVCodecContext *dst,
}
}
- if (s->current_sps && s->sps == (HEVCSPS*)s->current_sps->data)
- s->sps = NULL;
av_buffer_unref(&s->current_sps);
+ if (s0->current_sps) {
+ s->current_sps = av_buffer_ref(s0->current_sps);
+ if (!s->current_sps)
+ return AVERROR(ENOMEM);
+ }
s->seq_decode = s0->seq_decode;
s->seq_output = s0->seq_output;