h264: allocate some tables per slice contexts, not threads
authorAnton Khirnov <anton@khirnov.net>
Wed, 13 Apr 2016 15:31:27 +0000 (17:31 +0200)
committerAnton Khirnov <anton@khirnov.net>
Sun, 24 Apr 2016 08:06:25 +0000 (10:06 +0200)
This is more correct and avoids wasting space when frame threading is
used.

libavcodec/h264.c

index b8dfbf6..efecabf 100644 (file)
@@ -162,7 +162,7 @@ void ff_h264_free_tables(H264Context *h)
 int ff_h264_alloc_tables(H264Context *h)
 {
     const int big_mb_num = h->mb_stride * (h->mb_height + 1);
-    const int row_mb_num = h->mb_stride * 2 * h->avctx->thread_count;
+    const int row_mb_num = h->mb_stride * 2 * h->nb_slice_ctx;
     int x, y;
 
     FF_ALLOCZ_OR_GOTO(h->avctx, h->intra4x4_pred_mode,