mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-30 13:40:23 +01:00
st/omx/dec/h264: fix corruption when scaling matrix present flag set
The scaling list should be filled out with zig zag scan
v2: integrate zig zag scan for list 4x4 to vl(Christian)
v3: move list determination out from the loop(Ilia)
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
(cherry picked from commit 6ad2e55a14)
This commit is contained in:
parent
3adf111821
commit
37aed85969
1 changed files with 5 additions and 2 deletions
|
|
@ -35,6 +35,7 @@
|
|||
#include "util/u_memory.h"
|
||||
#include "util/u_video.h"
|
||||
#include "vl/vl_rbsp.h"
|
||||
#include "vl/vl_zscan.h"
|
||||
|
||||
#include "entrypoint.h"
|
||||
#include "vid_dec.h"
|
||||
|
|
@ -205,6 +206,7 @@ static void scaling_list(struct vl_rbsp *rbsp, uint8_t *scalingList, unsigned si
|
|||
const uint8_t *defaultList, const uint8_t *fallbackList)
|
||||
{
|
||||
unsigned lastScale = 8, nextScale = 8;
|
||||
const int *list;
|
||||
unsigned i;
|
||||
|
||||
/* (pic|seq)_scaling_list_present_flag[i] */
|
||||
|
|
@ -214,6 +216,7 @@ static void scaling_list(struct vl_rbsp *rbsp, uint8_t *scalingList, unsigned si
|
|||
return;
|
||||
}
|
||||
|
||||
list = (sizeOfScalingList == 16) ? vl_zscan_normal_16 : vl_zscan_normal;
|
||||
for (i = 0; i < sizeOfScalingList; ++i ) {
|
||||
|
||||
if (nextScale != 0) {
|
||||
|
|
@ -224,8 +227,8 @@ static void scaling_list(struct vl_rbsp *rbsp, uint8_t *scalingList, unsigned si
|
|||
return;
|
||||
}
|
||||
}
|
||||
scalingList[i] = nextScale == 0 ? lastScale : nextScale;
|
||||
lastScale = scalingList[i];
|
||||
scalingList[list[i]] = nextScale == 0 ? lastScale : nextScale;
|
||||
lastScale = scalingList[list[i]];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue