avcodec/proresenc_kostya: set initial max_slice_size based on frame_size_upper_bound
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 18 Aug 2014 18:42:27 +0000 (20:42 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 20 Sep 2014 15:46:41 +0000 (17:46 +0200)
If the initial max_slice_size is 0 then reallocation is disabled for the first
slice.

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 76a8cb9d7bcc12a8f1cedcb4c23bbb6391a4c56c)

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

index ab56820..1905f60 100644 (file)
@@ -939,7 +939,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     int sizes[4] = { 0 };
     int slice_hdr_size = 2 + 2 * (ctx->num_planes - 1);
     int frame_size, picture_size, slice_size;
-    int pkt_size, ret, max_slice_size = 0;
+    int pkt_size, ret;
+    int max_slice_size = (ctx->frame_size_upper_bound - 200) / ctx->pictures_per_frame / ctx->slices_per_picture;
     uint8_t frame_flags;
 
     *avctx->coded_frame           = *pic;