# HG changeset patch # User mru # Date 1250437912 0 # Node ID 2ddfead60392781ed7d94aa4f52cbee93332ebf5 # Parent 2d52bcf3e4e6676fb10d12d9b2230e4a4543b137 intreadwrite: allow arch-specific 24-bit access macros diff -r 2d52bcf3e4e6 -r 2ddfead60392 intreadwrite.h --- 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 */