- if (band->quant_mat == 31) {
- av_log(avctx, AV_LOG_ERROR, "Custom quant matrix encountered!\n");
+ if (band->quant_mat >= FF_ARRAY_ELEMS(quant_index_to_tab)) {
+
+ if (band->quant_mat == 31)
+ av_log(avctx, AV_LOG_ERROR,
+ "Custom quant matrix encountered!\n");
+ else
+ avpriv_request_sample(avctx, "Quantization matrix %d",
+ band->quant_mat);
+ band->quant_mat = -1;
+ return AVERROR_INVALIDDATA;
+ }
+ } else {
+ if (old_blk_size != band->blk_size) {
+ av_log(avctx, AV_LOG_ERROR,
+ "The band block size does not match the configuration "
+ "inherited\n");
+ return AVERROR_INVALIDDATA;
+ }
+ if (band->quant_mat < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid quant_mat inherited\n");