summaryrefslogtreecommitdiff
path: root/libavutil/intreadwrite.h
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-03-15 21:20:44 -0300
committerJames Almer <jamrial@gmail.com>2017-03-15 21:20:44 -0300
commit30fe4b8d4ce2ae0272f983f454a94f27b62f8c67 (patch)
treeff57678b4e6de4f32e58eb9dfe27acaab64a1a79 /libavutil/intreadwrite.h
parent916dff9cb10220aa88241da33a56ddeb8906826c (diff)
parentf79d847400d218cfd0b95f10358fe6e65ec3c9c4 (diff)
downloadffmpeg-30fe4b8d4ce2ae0272f983f454a94f27b62f8c67.tar.gz
Merge commit 'f79d847400d218cfd0b95f10358fe6e65ec3c9c4'
* commit 'f79d847400d218cfd0b95f10358fe6e65ec3c9c4': intreadwrite: Use the __unaligned keyword on MSVC for ARM and x86_64 Merged-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavutil/intreadwrite.h')
-rw-r--r--libavutil/intreadwrite.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavutil/intreadwrite.h b/libavutil/intreadwrite.h
index 89d25ac170..d54d4b91d6 100644
--- a/libavutil/intreadwrite.h
+++ b/libavutil/intreadwrite.h
@@ -229,6 +229,11 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
+#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_X64)) && AV_HAVE_FAST_UNALIGNED
+
+# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
+# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
+
#elif AV_HAVE_FAST_UNALIGNED
# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)