ctx->avctx = avctx;
ctx->cid = -1;
- avctx->colorspace = AVCOL_SPC_BT709;
+ if (avctx->colorspace == AVCOL_SPC_UNSPECIFIED) {
+ avctx->colorspace = AVCOL_SPC_BT709;
+ }
avctx->coded_width = FFALIGN(avctx->width, 16);
avctx->coded_height = FFALIGN(avctx->height, 16);
UPDATE_CACHE(bs, &row->gb);
GET_VLC(len, bs, &row->gb, ctx->dc_vlc.table, DNXHD_DC_VLC_BITS, 1);
+ if (len < 0) {
+ ret = len;
+ goto error;
+ }
if (len) {
level = GET_CACHE(bs, &row->gb);
LAST_SKIP_BITS(bs, &row->gb, len);
GET_VLC(index1, bs, &row->gb, ctx->ac_vlc.table,
DNXHD_VLC_BITS, 2);
}
-
+error:
CLOSE_READER(bs, &row->gb);
return ret;
}