Mercurial > libavutil.hg
changeset 766:2ddfead60392 libavutil
intreadwrite: allow arch-specific 24-bit access macros
author | mru |
---|---|
date | Sun, 16 Aug 2009 15:51:52 +0000 |
parents | 2d52bcf3e4e6 |
children | 231275ff8012 |
files | intreadwrite.h |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/intreadwrite.h Sun Aug 16 15:51:50 2009 +0000 +++ b/intreadwrite.h Sun Aug 16 15:51:52 2009 +0000 @@ -25,7 +25,7 @@ /* * Arch-specific headers can provide any combination of - * AV_[RW][BLN](16|32|64) macros. Preprocessor symbols must be + * AV_[RW][BLN](16|24|32|64) macros. Preprocessor symbols must be * defined, even if these are implemented as inline functions. */ @@ -249,20 +249,28 @@ # define AV_WL64(p, v) AV_WL(64, p, v) #endif +#ifndef AV_RB24 #define AV_RB24(x) ((((const uint8_t*)(x))[0] << 16) | \ (((const uint8_t*)(x))[1] << 8) | \ ((const uint8_t*)(x))[2]) +#endif +#ifndef AV_WB24 #define AV_WB24(p, d) do { \ ((uint8_t*)(p))[2] = (d); \ ((uint8_t*)(p))[1] = (d)>>8; \ ((uint8_t*)(p))[0] = (d)>>16; } while(0) +#endif +#ifndef AV_RL24 #define AV_RL24(x) ((((const uint8_t*)(x))[2] << 16) | \ (((const uint8_t*)(x))[1] << 8) | \ ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL24 #define AV_WL24(p, d) do { \ ((uint8_t*)(p))[0] = (d); \ ((uint8_t*)(p))[1] = (d)>>8; \ ((uint8_t*)(p))[2] = (d)>>16; } while(0) +#endif #endif /* AVUTIL_INTREADWRITE_H */