diff options
| -rw-r--r-- | benchmark/image_benchmark.cc | 2 | ||||
| -rw-r--r-- | src/lib/image.cc | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/benchmark/image_benchmark.cc b/benchmark/image_benchmark.cc index 1da53e024..3e0f7bb8d 100644 --- a/benchmark/image_benchmark.cc +++ b/benchmark/image_benchmark.cc @@ -62,5 +62,7 @@ image_benchmark() }; make_part_black(AV_PIX_FMT_YUV420P, "AV_PIX_FMT_YUV420P"); + make_part_black(AV_PIX_FMT_YUV422P10LE, "AV_PIX_FMT_YUV422P10LE"); + make_part_black(AV_PIX_FMT_YUV444P10LE, "AV_PIX_FMT_YUV444P10LE"); } diff --git a/src/lib/image.cc b/src/lib/image.cc index 70dbad7f9..d5212fc78 100644 --- a/src/lib/image.cc +++ b/src/lib/image.cc @@ -482,13 +482,12 @@ Image::make_part_black(int const start, int const width) case AV_PIX_FMT_YUV422P10LE: { y_part(); + auto const uv = copy_16_bit_words_to_64_bit(ten_bit_uv); for (int i = 1; i < 3; ++i) { auto p = reinterpret_cast<int16_t*>(data()[i]); int const h = sample_size(i).height; for (int y = 0; y < h; ++y) { - for (int x = start / 2; x < (start + width) / 2; ++x) { - p[x] = ten_bit_uv; - } + fill_memory(p + start / 2, width, uv); p += stride()[i] / 2; } } @@ -497,13 +496,12 @@ Image::make_part_black(int const start, int const width) case AV_PIX_FMT_YUV444P10LE: { y_part(); + auto const uv = copy_16_bit_words_to_64_bit(ten_bit_uv); for (int i = 1; i < 3; ++i) { auto p = reinterpret_cast<int16_t*>(data()[i]); int const h = sample_size(i).height; for (int y = 0; y < h; ++y) { - for (int x = start; x < (start + width); ++x) { - p[x] = ten_bit_uv; - } + fill_memory(p + start, width * 2, uv); p += stride()[i] / 2; } } |
