mirror of https://git.ffmpeg.org/ffmpeg.git
Remove need for padding in av_memcpy_backptr()
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
ceb754d041
commit
d82f188504
|
@ -132,13 +132,14 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt)
|
||||||
if (back == 1) {
|
if (back == 1) {
|
||||||
memset(dst, *src, cnt);
|
memset(dst, *src, cnt);
|
||||||
} else {
|
} else {
|
||||||
#ifdef OUTBUF_PADDED
|
if (cnt >= 4) {
|
||||||
AV_COPY16U(dst, src);
|
AV_COPY16U(dst, src);
|
||||||
AV_COPY16U(dst + 2, src + 2);
|
AV_COPY16U(dst + 2, src + 2);
|
||||||
src += 4;
|
src += 4;
|
||||||
dst += 4;
|
dst += 4;
|
||||||
cnt -= 4;
|
cnt -= 4;
|
||||||
if (cnt > 0) {
|
}
|
||||||
|
if (cnt >= 8) {
|
||||||
AV_COPY16U(dst, src);
|
AV_COPY16U(dst, src);
|
||||||
AV_COPY16U(dst + 2, src + 2);
|
AV_COPY16U(dst + 2, src + 2);
|
||||||
AV_COPY16U(dst + 4, src + 4);
|
AV_COPY16U(dst + 4, src + 4);
|
||||||
|
@ -147,7 +148,6 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt)
|
||||||
dst += 8;
|
dst += 8;
|
||||||
cnt -= 8;
|
cnt -= 8;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (cnt > 0) {
|
if (cnt > 0) {
|
||||||
int blocklen = back;
|
int blocklen = back;
|
||||||
while (cnt > blocklen) {
|
while (cnt > blocklen) {
|
||||||
|
|
|
@ -61,7 +61,7 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief deliberately overlapping memcpy implementation
|
* @brief deliberately overlapping memcpy implementation
|
||||||
* @param dst destination buffer; must be padded with 12 additional bytes
|
* @param dst destination buffer
|
||||||
* @param back how many bytes back we start (the initial size of the overlapping window)
|
* @param back how many bytes back we start (the initial size of the overlapping window)
|
||||||
* @param cnt number of bytes to copy, must be >= 0
|
* @param cnt number of bytes to copy, must be >= 0
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue