mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-13 18:40:03 +01:00
utvideodec: Fix gradient prediction when stride does not match width
Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
committed by
Luca Barbato
parent
7c25523cc8
commit
b812db66af
@@ -686,7 +686,11 @@ static void restore_gradient_planar_il(UtvideoContext *c, uint8_t *src, ptrdiff_
|
|||||||
C = bsrc[i - 1];
|
C = bsrc[i - 1];
|
||||||
bsrc[i] = (A - B + C + bsrc[i]) & 0xFF;
|
bsrc[i] = (A - B + C + bsrc[i]) & 0xFF;
|
||||||
}
|
}
|
||||||
for (i = 0; i < width; i++) {
|
A = bsrc[-stride];
|
||||||
|
B = bsrc[-(1 + stride + stride - width)];
|
||||||
|
C = bsrc[width - 1];
|
||||||
|
bsrc[stride] = (A - B + C + bsrc[stride]) & 0xFF;
|
||||||
|
for (i = 1; i < width; i++) {
|
||||||
A = bsrc[i - stride];
|
A = bsrc[i - stride];
|
||||||
B = bsrc[i - (1 + stride)];
|
B = bsrc[i - (1 + stride)];
|
||||||
C = bsrc[i - 1 + stride];
|
C = bsrc[i - 1 + stride];
|
||||||
@@ -784,7 +788,11 @@ static void restore_gradient_packed_il(uint8_t *src, int step, ptrdiff_t stride,
|
|||||||
C = bsrc[i - step];
|
C = bsrc[i - step];
|
||||||
bsrc[i] = (A - B + C + bsrc[i]) & 0xFF;
|
bsrc[i] = (A - B + C + bsrc[i]) & 0xFF;
|
||||||
}
|
}
|
||||||
for (i = 0; i < width * step; i += step) {
|
A = bsrc[-stride];
|
||||||
|
B = bsrc[-(step + stride + stride - width * step)];
|
||||||
|
C = bsrc[width * step - step];
|
||||||
|
bsrc[stride] = (A - B + C + bsrc[stride]) & 0xFF;
|
||||||
|
for (i = step; i < width * step; i += step) {
|
||||||
A = bsrc[i - stride];
|
A = bsrc[i - stride];
|
||||||
B = bsrc[i - (step + stride)];
|
B = bsrc[i - (step + stride)];
|
||||||
C = bsrc[i - step + stride];
|
C = bsrc[i - step + stride];
|
||||||
|
|||||||
Reference in New Issue
Block a user