diff mbox series

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

Message ID AS8P250MB0744408EBACC92AC1E0647E88F479@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State New
Headers show
Series [FFmpeg-devel] avutil/intreadwrite: Always provide AV_[RW]N(24|48) | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt Sept. 13, 2022, 5:07 a.m. UTC
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@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 mbox series

Patch

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.