avcodec/dnxhddec: use init_get_bits8()
authorPaul B Mahol <onemda@gmail.com>
Mon, 3 Dec 2018 18:44:49 +0000 (19:44 +0100)
committerPaul B Mahol <onemda@gmail.com>
Mon, 3 Dec 2018 18:44:49 +0000 (19:44 +0100)
libavcodec/dnxhddec.c

index ae8b0ff..abda5c6 100644 (file)
@@ -589,12 +589,16 @@ static int dnxhd_decode_row(AVCodecContext *avctx, void *data,
     const DNXHDContext *ctx = avctx->priv_data;
     uint32_t offset = ctx->mb_scan_index[rownb];
     RowContext *row = ctx->rows + threadnb;
-    int x;
+    int x, ret;
 
     row->last_dc[0] =
     row->last_dc[1] =
     row->last_dc[2] = 1 << (ctx->bit_depth + 2); // for levels +2^(bitdepth-1)
-    init_get_bits(&row->gb, ctx->buf + offset, (ctx->buf_size - offset) << 3);
+    ret = init_get_bits8(&row->gb, ctx->buf + offset, ctx->buf_size - offset);
+    if (ret < 0) {
+        row->errors++;
+        return ret;
+    }
     for (x = 0; x < ctx->mb_width; x++) {
         //START_TIMER;
         int ret = dnxhd_decode_macroblock(ctx, row, data, x, rownb);