[FFmpeg-devel] [PATCH] avutil/intreadwrite: Always provide AV_[RW]N(24|48)

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Sep 13 08:07:08 EEST 2022


Currently, only the AVR32-arch provides some of these (namely
the 24 bit variants), but this should not depend on the arch.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
When I started writing this patch, I believed that whether intreadwrite.h
provided AV_[RW]N24 depended upon the arch, namely AVR32; but later
I noticed that this issue actually only exists for internal users,
as an API user never got AV_[RW]24, because the AVR32-specific
header is not public. So I am no longer sure about this patch.

 libavutil/intreadwrite.h | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/libavutil/intreadwrite.h b/libavutil/intreadwrite.h
index 4c8413a536..8a18233f55 100644
--- a/libavutil/intreadwrite.h
+++ b/libavutil/intreadwrite.h
@@ -510,6 +510,34 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
     } while(0)
 #endif
 
+#if AV_HAVE_BIGENDIAN
+#   ifndef AV_WN24
+#       define AV_WN24(p, v) AV_WB24(p, v)
+#   endif
+#   ifndef AV_RN24
+#       define AV_RN24(p) AV_RB24(p)
+#   endif
+#   ifndef AV_WN48
+#       define AV_WN48(p, v) AV_WB48(p, v)
+#   endif
+#   ifndef AV_RN48
+#       define AV_RN48(p) AV_RB48(p)
+#   endif
+#else
+#   ifndef AV_WN24
+#       define AV_WN24(p, v) AV_WL24(p, v)
+#   endif
+#   ifndef AV_RN24
+#       define AV_RN24(p) AV_RL24(p)
+#   endif
+#   ifndef AV_WN48
+#       define AV_WN48(p, v) AV_WL48(p, v)
+#   endif
+#   ifndef AV_RN48
+#       define AV_RN48(p) AV_RL48(p)
+#   endif
+#endif
+
 /*
  * The AV_[RW]NA macros access naturally aligned data
  * in a type-safe way.
-- 
2.34.1



More information about the ffmpeg-devel mailing list