forked from FFmpeg/FFmpeg
lzo: Use AV_COPY*U macros where appropriate
This commit is contained in:
parent
a9f0dce283
commit
ceb754d041
1 changed files with 8 additions and 20 deletions
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "avutil.h"
|
||||
#include "common.h"
|
||||
#include "intreadwrite.h"
|
||||
#include "lzo.h"
|
||||
|
||||
/// Define if we may write up to 12 bytes beyond the output buffer.
|
||||
|
@ -71,19 +72,6 @@ static inline int get_len(LZOContext *c, int x, int mask)
|
|||
return cnt;
|
||||
}
|
||||
|
||||
//#define UNALIGNED_LOADSTORE
|
||||
#define BUILTIN_MEMCPY
|
||||
#ifdef UNALIGNED_LOADSTORE
|
||||
#define COPY2(d, s) *(uint16_t *)(d) = *(uint16_t *)(s);
|
||||
#define COPY4(d, s) *(uint32_t *)(d) = *(uint32_t *)(s);
|
||||
#elif defined(BUILTIN_MEMCPY)
|
||||
#define COPY2(d, s) memcpy(d, s, 2);
|
||||
#define COPY4(d, s) memcpy(d, s, 4);
|
||||
#else
|
||||
#define COPY2(d, s) (d)[0] = (s)[0]; (d)[1] = (s)[1];
|
||||
#define COPY4(d, s) (d)[0] = (s)[0]; (d)[1] = (s)[1]; (d)[2] = (s)[2]; (d)[3] = (s)[3];
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Copies bytes from input to output buffer with checking.
|
||||
* @param cnt number of bytes to copy, must be >= 0
|
||||
|
@ -101,7 +89,7 @@ static inline void copy(LZOContext *c, int cnt)
|
|||
c->error |= AV_LZO_OUTPUT_FULL;
|
||||
}
|
||||
#if defined(INBUF_PADDED) && defined(OUTBUF_PADDED)
|
||||
COPY4(dst, src);
|
||||
AV_COPY32U(dst, src);
|
||||
src += 4;
|
||||
dst += 4;
|
||||
cnt -= 4;
|
||||
|
@ -145,16 +133,16 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt)
|
|||
memset(dst, *src, cnt);
|
||||
} else {
|
||||
#ifdef OUTBUF_PADDED
|
||||
COPY2(dst, src);
|
||||
COPY2(dst + 2, src + 2);
|
||||
AV_COPY16U(dst, src);
|
||||
AV_COPY16U(dst + 2, src + 2);
|
||||
src += 4;
|
||||
dst += 4;
|
||||
cnt -= 4;
|
||||
if (cnt > 0) {
|
||||
COPY2(dst, src);
|
||||
COPY2(dst + 2, src + 2);
|
||||
COPY2(dst + 4, src + 4);
|
||||
COPY2(dst + 6, src + 6);
|
||||
AV_COPY16U(dst, src);
|
||||
AV_COPY16U(dst + 2, src + 2);
|
||||
AV_COPY16U(dst + 4, src + 4);
|
||||
AV_COPY16U(dst + 6, src + 6);
|
||||
src += 8;
|
||||
dst += 8;
|
||||
cnt -= 8;
|
||||
|
|
Loading…
Add table
Reference in a new issue