summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmark/image_benchmark.cc2
-rw-r--r--src/lib/image.cc10
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;
}
}