ffvpx: update to 3.4.6

This commit is contained in:
Roy Tam 2019-03-29 21:29:57 +08:00
commit 402c27b560
8 changed files with 33 additions and 28 deletions

View file

@ -499,7 +499,6 @@ int av_image_copy_to_buffer(uint8_t *dst, int dst_size,
static void memset_bytes(uint8_t *dst, size_t dst_size, uint8_t *clear,
size_t clear_size)
{
size_t pos = 0;
int same = 1;
int i;
@ -519,28 +518,12 @@ static void memset_bytes(uint8_t *dst, size_t dst_size, uint8_t *clear,
if (clear_size == 1) {
memset(dst, clear[0], dst_size);
dst_size = 0;
} else if (clear_size == 2) {
uint16_t val = AV_RN16(clear);
for (; dst_size >= 2; dst_size -= 2) {
AV_WN16(dst, val);
dst += 2;
}
} else if (clear_size == 4) {
uint32_t val = AV_RN32(clear);
for (; dst_size >= 4; dst_size -= 4) {
AV_WN32(dst, val);
dst += 4;
}
} else if (clear_size == 8) {
uint32_t val = AV_RN64(clear);
for (; dst_size >= 8; dst_size -= 8) {
AV_WN64(dst, val);
dst += 8;
}
} else {
if (clear_size > dst_size)
clear_size = dst_size;
memcpy(dst, clear, clear_size);
av_memcpy_backptr(dst + clear_size, clear_size, dst_size - clear_size);
}
for (; dst_size; dst_size--)
*dst++ = clear[pos++ % clear_size];
}
// Maximum size in bytes of a plane element (usually a pixel, or multiple pixels

View file

@ -385,6 +385,18 @@ static void fill32(uint8_t *dst, int len)
{
uint32_t v = AV_RN32(dst - 4);
#if HAVE_FAST_64BIT
uint64_t v2= v + ((uint64_t)v<<32);
while (len >= 32) {
AV_WN64(dst , v2);
AV_WN64(dst+ 8, v2);
AV_WN64(dst+16, v2);
AV_WN64(dst+24, v2);
dst += 32;
len -= 32;
}
#endif
while (len >= 4) {
AV_WN32(dst, v);
dst += 4;