summaryrefslogtreecommitdiff
path: root/libavutil/lzo.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-10-25 13:15:58 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-10-25 13:15:58 +0200
commitaa604e8e33ae06f3a106e44fff798fdd70d77230 (patch)
treede1f5670244e74d90e97b8dc69f054768c363959 /libavutil/lzo.c
parentd312ffdd79bd22b5a051790c993eda6b1366cdfc (diff)
parent2a91ada8282f18d2807abee5188225bba1b19bda (diff)
downloadffmpeg-aa604e8e33ae06f3a106e44fff798fdd70d77230.tar.gz
Merge remote-tracking branch 'qatar/master'
* qatar/master: avutil: Make LZO decoder code configure-time selectable avutil: Move memcpy_backptr() to mem.c configure: detect parisc64 automatically configure: detect ppc64 automatically configure: detect mips64 automatically configure: generalise 64-bit test smoothstreamingenc: Don't assume streams start from timestamp 0 Conflicts: configure libavutil/Makefile libavutil/lzo.c libavutil/lzo.h libavutil/mem.c libavutil/mem.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/lzo.c')
-rw-r--r--libavutil/lzo.c44
1 files changed, 1 insertions, 43 deletions
diff --git a/libavutil/lzo.c b/libavutil/lzo.c
index 47fc767a06..c723257212 100644
--- a/libavutil/lzo.c
+++ b/libavutil/lzo.c
@@ -100,8 +100,6 @@ static inline void copy(LZOContext *c, int cnt)
c->out = dst + cnt;
}
-static inline void memcpy_backptr(uint8_t *dst, int back, int cnt);
-
/**
* @brief Copies previously decoded bytes to current position.
* @param back how many bytes back we start, must be > 0
@@ -122,50 +120,10 @@ static inline void copy_backptr(LZOContext *c, int back, int cnt)
cnt = FFMAX(c->out_end - dst, 0);
c->error |= AV_LZO_OUTPUT_FULL;
}
- memcpy_backptr(dst, back, cnt);
+ av_memcpy_backptr(dst, back, cnt);
c->out = dst + cnt;
}
-static inline void memcpy_backptr(uint8_t *dst, int back, int cnt)
-{
- const uint8_t *src = &dst[-back];
- if (back <= 1) {
- memset(dst, *src, cnt);
- } else {
- if (cnt >= 4) {
- AV_COPY16U(dst, src);
- AV_COPY16U(dst + 2, src + 2);
- src += 4;
- dst += 4;
- cnt -= 4;
- }
- if (cnt >= 8) {
- 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;
- }
- if (cnt > 0) {
- int blocklen = back;
- while (cnt > blocklen) {
- memcpy(dst, src, blocklen);
- dst += blocklen;
- cnt -= blocklen;
- blocklen <<= 1;
- }
- memcpy(dst, src, cnt);
- }
- }
-}
-
-void av_memcpy_backptr(uint8_t *dst, int back, int cnt)
-{
- memcpy_backptr(dst, back, cnt);
-}
-
int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen)
{
int state = 0;