[FFmpeg-devel] [PATCH 2/2] avfilter/vsrc_testsrc: use aligned macros for writing

James Almer jamrial at gmail.com
Mon Mar 10 21:29:18 EET 2025


Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavfilter/vsrc_testsrc.c | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 71188e624a..0da8cb0fa4 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -1035,7 +1035,7 @@ static void rgbtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
     case AV_PIX_FMT_ABGR:
         v = (r << (rgba_map[R]*8)) + (g << (rgba_map[G]*8)) + (b << (rgba_map[B]*8)) + (255U << (rgba_map[A]*8));
         p = dst + 4*x + y*dst_linesize;
-        AV_WL32(p, v);
+        AV_WL32A(p, v);
         break;
     case AV_PIX_FMT_X2RGB10LE:
     case AV_PIX_FMT_X2BGR10LE:
@@ -1044,7 +1044,7 @@ static void rgbtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
             (b  << ((desc->comp[2].offset*8) + desc->comp[2].shift)) +
             (3U << ((desc->comp[3].offset*8) + desc->comp[3].shift));
         p = dst + 4*x + y*dst_linesize;
-        AV_WL32(p, v);
+        AV_WL32A(p, v);
         break;
     case AV_PIX_FMT_GBRP:
         p = dstp[0] + x + y * dst_linesize;
@@ -1197,22 +1197,22 @@ static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
             (u << ((desc->comp[1].offset*8) + desc->comp[1].shift)) +
             (v << ((desc->comp[2].offset*8) + desc->comp[2].shift)) +
             (3U << ((desc->comp[3].offset*8) + desc->comp[3].shift));
-        AV_WL32(&dstp[0][i*4 + j*dst_linesizep[0]], n);
+        AV_WL32A(&dstp[0][i*4 + j*dst_linesizep[0]], n);
         break;
     case AV_PIX_FMT_XV36:
     case AV_PIX_FMT_XV48:
     case AV_PIX_FMT_AYUV64:
-        AV_WN16(&dstp[0][i*8 + ayuv_map[Y]*2 + j*dst_linesizep[0]], y << desc->comp[0].shift);
-        AV_WN16(&dstp[0][i*8 + ayuv_map[U]*2 + j*dst_linesizep[0]], u << desc->comp[1].shift);
-        AV_WN16(&dstp[0][i*8 + ayuv_map[V]*2 + j*dst_linesizep[0]], v << desc->comp[2].shift);
-        AV_WN16(&dstp[0][i*8 + ayuv_map[A]*2 + j*dst_linesizep[0]], UINT16_MAX << desc->comp[3].shift);
+        AV_WN16A(&dstp[0][i*8 + ayuv_map[Y]*2 + j*dst_linesizep[0]], y << desc->comp[0].shift);
+        AV_WN16A(&dstp[0][i*8 + ayuv_map[U]*2 + j*dst_linesizep[0]], u << desc->comp[1].shift);
+        AV_WN16A(&dstp[0][i*8 + ayuv_map[V]*2 + j*dst_linesizep[0]], v << desc->comp[2].shift);
+        AV_WN16A(&dstp[0][i*8 + ayuv_map[A]*2 + j*dst_linesizep[0]], UINT16_MAX << desc->comp[3].shift);
         break;
     case AV_PIX_FMT_UYVA:
     case AV_PIX_FMT_VUYA:
     case AV_PIX_FMT_VUYX:
     case AV_PIX_FMT_AYUV:
         n = (y << (ayuv_map[Y]*8)) + (u << (ayuv_map[U]*8)) + (v << (ayuv_map[V]*8)) + (255U << (ayuv_map[A]*8));
-        AV_WL32(&dstp[0][i*4 + j*dst_linesizep[0]], n);
+        AV_WL32A(&dstp[0][i*4 + j*dst_linesizep[0]], n);
         break;
     case AV_PIX_FMT_YUV444P:
     case AV_PIX_FMT_YUVJ444P:
@@ -1225,9 +1225,9 @@ static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
     case AV_PIX_FMT_YUV444P12:
     case AV_PIX_FMT_YUV444P14:
     case AV_PIX_FMT_YUV444P16:
-        AV_WN16(&dstp[0][i*2 + j*dst_linesizep[0]], y);
-        AV_WN16(&dstp[1][i*2 + j*dst_linesizep[1]], u);
-        AV_WN16(&dstp[2][i*2 + j*dst_linesizep[2]], v);
+        AV_WN16A(&dstp[0][i*2 + j*dst_linesizep[0]], y);
+        AV_WN16A(&dstp[1][i*2 + j*dst_linesizep[1]], u);
+        AV_WN16A(&dstp[2][i*2 + j*dst_linesizep[2]], v);
         break;
     case AV_PIX_FMT_NV24:
         dstp[0][i   + j*dst_linesizep[0] + 0] = y;
@@ -1242,9 +1242,9 @@ static void yuvtest_put_pixel(uint8_t *dstp[4], int dst_linesizep[4],
     case AV_PIX_FMT_P410:
     case AV_PIX_FMT_P412:
     case AV_PIX_FMT_P416:
-        AV_WN16(&dstp[0][i*2 + j*dst_linesizep[0] + 0], y << (16 - desc->comp[0].depth));
-        AV_WN16(&dstp[1][i*4 + j*dst_linesizep[1] + 0], u << (16 - desc->comp[1].depth));
-        AV_WN16(&dstp[1][i*4 + j*dst_linesizep[1] + 2], v << (16 - desc->comp[1].depth));
+        AV_WN16A(&dstp[0][i*2 + j*dst_linesizep[0] + 0], y << (16 - desc->comp[0].depth));
+        AV_WN16A(&dstp[1][i*4 + j*dst_linesizep[1] + 0], u << (16 - desc->comp[1].depth));
+        AV_WN16A(&dstp[1][i*4 + j*dst_linesizep[1] + 2], v << (16 - desc->comp[1].depth));
         break;
     }
 }
-- 
2.48.1



More information about the ffmpeg-devel mailing list