[FFmpeg-devel] [PATCH 1/2] intreadwrite: add AV_RL64A, AV_WL64A
Peter Ross
pross at xvid.org
Mon Jan 7 13:40:11 EET 2019
macros for reading and writing 64-bit aligned little-endian values.
these macros are used by the DST decoder and give a performance boost
on big-endian platforms that where the compiler must normally guard
against unaligned memory access.
---
libavutil/intreadwrite.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/libavutil/intreadwrite.h b/libavutil/intreadwrite.h
index 67c763b135..4c8413a536 100644
--- a/libavutil/intreadwrite.h
+++ b/libavutil/intreadwrite.h
@@ -542,6 +542,21 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
# define AV_WN64A(p, v) AV_WNA(64, p, v)
#endif
+#if AV_HAVE_BIGENDIAN
+# define AV_RLA(s, p) av_bswap##s(AV_RN##s##A(p))
+# define AV_WLA(s, p, v) AV_WN##s##A(p, av_bswap##s(v))
+#else
+# define AV_RLA(s, p) AV_RN##s##A(p)
+# define AV_WLA(s, p, v) AV_WN##s##A(p, v)
+#endif
+
+#ifndef AV_RL64A
+# define AV_RL64A(p) AV_RLA(64, p)
+#endif
+#ifndef AV_WL64A
+# define AV_WL64A(p, v) AV_WLA(64, p, v)
+#endif
+
/*
* The AV_COPYxxU macros are suitable for copying data to/from unaligned
* memory locations.
--
2.17.1
-- Peter
(A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20190107/78a7daeb/attachment.sig>
More information about the ffmpeg-devel
mailing list