avcodec/hevc: treat current_sps like sps_list
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 15 Jul 2014 19:43:30 +0000 (21:43 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 15 Jul 2014 19:49:56 +0000 (21:49 +0200)
This simplifies the management of current_sps
Fixes Ticket3458

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/hevc.c

index 17f7252..cccd07a 100644 (file)
@@ -3291,9 +3291,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);
+    }
 
     if (s->sps != s0->sps)
         ret = set_sps(s, s0->sps);