From: Niklas Haas <[email protected]>
The spec specified indices in the order [x][y], but our code follows the
traditional C convention of [y][x]. This was not correctly account for
when calculating the base index of the grain database access.
---
libavcodec/h274.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libavcodec/h274.c b/libavcodec/h274.c
index fc111cdb50d..2388826d547 100644
--- a/libavcodec/h274.c
+++ b/libavcodec/h274.c
@@ -259,11 +259,11 @@ int ff_h274_apply_film_grain(AVFrame *out_frame, const
AVFrame *in_frame,
// only advanced in 16x16 blocks, so use a nested loop
for (int y = 0; y < height; y += 16) {
for (int x = 0; x < width; x += 16) {
- uint16_t y_offset = (seed >> 16) % 52;
- uint16_t x_offset = (seed & 0xFFFF) % 56;
+ uint16_t x_offset = (seed >> 16) % 52;
+ uint16_t y_offset = (seed & 0xFFFF) % 56;
const int invert = (seed & 0x1);
- y_offset &= 0xFFFC;
- x_offset &= 0xFFF8;
+ x_offset &= 0xFFFC;
+ y_offset &= 0xFFF8;
prng_shift(&seed);
for (int yy = 0; yy < 16 && y+yy < height; yy += 8) {
--
2.42.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".