summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIndrajit Das <indrajit-kumar.das@amd.com>2018-01-10 15:12:44 +0530
committerEmil Velikov <emil.l.velikov@gmail.com>2018-02-09 03:50:09 +0000
commite46597f2731f9b5623f51393309415bad15b38ca (patch)
treede74509f4b1c7f4c880d3a0e7b25e2dcdf1599ad
parent08ad68ea1913a238f22373ba962bbdac812da769 (diff)
radeon/vcn: update quantiser matrices only when requested
Only update them when the pointers are valid. Signed-off-by: Indrajit Das <indrajit-kumar.das@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> (cherry picked from commit f5277e84925b69b0bf01340122684becd45c1f7d)
-rw-r--r--src/gallium/drivers/radeon/radeon_vcn_dec.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/gallium/drivers/radeon/radeon_vcn_dec.c b/src/gallium/drivers/radeon/radeon_vcn_dec.c
index 2ece4a3fdaf..bc37442b621 100644
--- a/src/gallium/drivers/radeon/radeon_vcn_dec.c
+++ b/src/gallium/drivers/radeon/radeon_vcn_dec.c
@@ -480,12 +480,17 @@ static rvcn_dec_message_mpeg2_vld_t get_mpeg2_msg(struct radeon_decoder *dec,
result.forward_ref_pic_idx = get_ref_pic_idx(dec, pic->ref[0]);
result.backward_ref_pic_idx = get_ref_pic_idx(dec, pic->ref[1]);
- result.load_intra_quantiser_matrix = 1;
- result.load_nonintra_quantiser_matrix = 1;
-
- for (i = 0; i < 64; ++i) {
- result.intra_quantiser_matrix[i] = pic->intra_matrix[zscan[i]];
- result.nonintra_quantiser_matrix[i] = pic->non_intra_matrix[zscan[i]];
+ if(pic->intra_matrix) {
+ result.load_intra_quantiser_matrix = 1;
+ for (i = 0; i < 64; ++i) {
+ result.intra_quantiser_matrix[i] = pic->intra_matrix[zscan[i]];
+ }
+ }
+ if(pic->non_intra_matrix) {
+ result.load_nonintra_quantiser_matrix = 1;
+ for (i = 0; i < 64; ++i) {
+ result.nonintra_quantiser_matrix[i] = pic->non_intra_matrix[zscan[i]];
+ }
}
result.profile_and_level_indication = 0;