summaryrefslogtreecommitdiff
path: root/libs/ffvpx/libavutil/imgutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ffvpx/libavutil/imgutils.c')
-rw-r--r--libs/ffvpx/libavutil/imgutils.c31
1 files changed, 7 insertions, 24 deletions
diff --git a/libs/ffvpx/libavutil/imgutils.c b/libs/ffvpx/libavutil/imgutils.c
index 4938a7ef6..c733cb5cf 100644
--- a/libs/ffvpx/libavutil/imgutils.c
+++ b/libs/ffvpx/libavutil/imgutils.c
@@ -311,8 +311,8 @@ static void image_copy_plane(uint8_t *dst, ptrdiff_t dst_linesize,
{
if (!dst || !src)
return;
- av_assert0(abs(src_linesize) >= bytewidth);
- av_assert0(abs(dst_linesize) >= bytewidth);
+ av_assert0(FFABS(src_linesize) >= bytewidth);
+ av_assert0(FFABS(dst_linesize) >= bytewidth);
for (;height > 0; height--) {
memcpy(dst, src, bytewidth);
dst += dst_linesize;
@@ -501,7 +501,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;
@@ -521,28 +520,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