On Mon, Feb 1, 2016 at 12:35 PM, Leo Liu <leo....@amd.com> wrote: > The scaling list should be filled out with zig zag scan > > v2: integrate zig zag scan for list 4x4 to vl(Christian) > > Cc: "11.0 11.1" <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Leo Liu <leo....@amd.com> > --- > src/gallium/state_trackers/omx/vid_dec_h264.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/state_trackers/omx/vid_dec_h264.c > b/src/gallium/state_trackers/omx/vid_dec_h264.c > index f66ed89..f17be91 100644 > --- a/src/gallium/state_trackers/omx/vid_dec_h264.c > +++ b/src/gallium/state_trackers/omx/vid_dec_h264.c > @@ -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" > @@ -215,6 +216,7 @@ static void scaling_list(struct vl_rbsp *rbsp, uint8_t > *scalingList, unsigned si > } > > for (i = 0; i < sizeOfScalingList; ++i ) { > + unsigned scan = (sizeOfScalingList == 16) ? vl_zscan_normal_16[i] : > vl_zscan_normal[i];
Perhaps determine the list just once rather than on each loop iter? Also (and more importantly) it appears like you forgot to add vl_zscan_normal_16? > > if (nextScale != 0) { > signed delta_scale = vl_rbsp_se(rbsp); > @@ -224,8 +226,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[scan] = nextScale == 0 ? lastScale : nextScale; > + lastScale = scalingList[scan]; > } > } > > -- > 1.9.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev