summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-01-23 14:42:56 +0000
committerCarl Hetherington <cth@carlh.net>2013-01-23 14:42:56 +0000
commitd58f9adc515ac0c0193a4998fed3605f4e2c6e11 (patch)
tree8b9c48af8f50af93aa6dfd5e9852f4a6ffb21865 /src/lib
parent3886847e2dafdaec4ad780dac606802356beb31d (diff)
Fix and test Image::make_black().
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/image.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/lib/image.cc b/src/lib/image.cc
index 4eed0e5b4..3afb6205e 100644
--- a/src/lib/image.cc
+++ b/src/lib/image.cc
@@ -245,13 +245,25 @@ Image::make_black ()
{
switch (_pixel_format) {
case PIX_FMT_YUV420P:
- case PIX_FMT_YUV422P10LE:
case PIX_FMT_YUV422P:
memset (data()[0], 0, lines(0) * stride()[0]);
- memset (data()[1], 0x80, lines(1) * stride()[1]);
- memset (data()[2], 0x80, lines(2) * stride()[2]);
+ memset (data()[1], 0x7f, lines(1) * stride()[1]);
+ memset (data()[2], 0x7f, lines(2) * stride()[2]);
break;
+ case PIX_FMT_YUV422P10LE:
+ memset (data()[0], 0, lines(0) * stride()[0]);
+ for (int i = 1; i < 3; ++i) {
+ int16_t* p = reinterpret_cast<int16_t*> (data()[i]);
+ for (int y = 0; y < size().height; ++y) {
+ for (int x = 0; x < line_size()[i] / 2; ++x) {
+ p[x] = (1 << 9) - 1;
+ }
+ p += stride()[i] / 2;
+ }
+ }
+ break;
+
case PIX_FMT_RGB24:
memset (data()[0], 0, lines(0) * stride()[0]);
break;