Commit 82ba1b77 authored by fbarchard@google.com's avatar fbarchard@google.com

bayer off by one on width

BUG=none
TEST=media_unittest
Review URL: http://webrtc-codereview.appspot.com/276003

git-svn-id: http://libyuv.googlecode.com/svn/trunk@65 16f28f9a-4ce2-e073-06de-1de4eb20be90
parent 86e9487d
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 64 Version: 65
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -79,7 +79,7 @@ static void ARGBToBayerRow_C(const uint8* src_argb, ...@@ -79,7 +79,7 @@ static void ARGBToBayerRow_C(const uint8* src_argb,
int index0 = selector & 0xff; int index0 = selector & 0xff;
int index1 = (selector >> 8) & 0xff; int index1 = (selector >> 8) & 0xff;
// Copy a row of Bayer. // Copy a row of Bayer.
for (int x = 0; x < (pix - 1); x += 2) { for (int x = 0; x < pix - 1; x += 2) {
dst_bayer[0] = src_argb[index0]; dst_bayer[0] = src_argb[index0];
dst_bayer[1] = src_argb[index1]; dst_bayer[1] = src_argb[index1];
src_argb += 8; src_argb += 8;
...@@ -166,7 +166,7 @@ static void BayerRowBG(const uint8* src_bayer0, int src_stride_bayer, ...@@ -166,7 +166,7 @@ static void BayerRowBG(const uint8* src_bayer0, int src_stride_bayer,
const uint8* src_bayer1 = src_bayer0 + src_stride_bayer; const uint8* src_bayer1 = src_bayer0 + src_stride_bayer;
uint8 g = src_bayer0[1]; uint8 g = src_bayer0[1];
uint8 r = src_bayer1[1]; uint8 r = src_bayer1[1];
for (int x = 0; x < pix - 3; x += 2) { for (int x = 0; x < pix - 2; x += 2) {
dst_rgb[0] = src_bayer0[0]; dst_rgb[0] = src_bayer0[0];
dst_rgb[1] = AVG(g, src_bayer0[1]); dst_rgb[1] = AVG(g, src_bayer0[1]);
dst_rgb[2] = AVG(r, src_bayer1[1]); dst_rgb[2] = AVG(r, src_bayer1[1]);
...@@ -185,7 +185,7 @@ static void BayerRowBG(const uint8* src_bayer0, int src_stride_bayer, ...@@ -185,7 +185,7 @@ static void BayerRowBG(const uint8* src_bayer0, int src_stride_bayer,
dst_rgb[1] = AVG(g, src_bayer0[1]); dst_rgb[1] = AVG(g, src_bayer0[1]);
dst_rgb[2] = AVG(r, src_bayer1[1]); dst_rgb[2] = AVG(r, src_bayer1[1]);
dst_rgb[3] = 255U; dst_rgb[3] = 255U;
if (pix & 1) { if (!(pix & 1)) {
dst_rgb[4] = src_bayer0[0]; dst_rgb[4] = src_bayer0[0];
dst_rgb[5] = src_bayer0[1]; dst_rgb[5] = src_bayer0[1];
dst_rgb[6] = src_bayer1[1]; dst_rgb[6] = src_bayer1[1];
...@@ -198,7 +198,7 @@ static void BayerRowRG(const uint8* src_bayer0, int src_stride_bayer, ...@@ -198,7 +198,7 @@ static void BayerRowRG(const uint8* src_bayer0, int src_stride_bayer,
const uint8* src_bayer1 = src_bayer0 + src_stride_bayer; const uint8* src_bayer1 = src_bayer0 + src_stride_bayer;
uint8 g = src_bayer0[1]; uint8 g = src_bayer0[1];
uint8 b = src_bayer1[1]; uint8 b = src_bayer1[1];
for (int x = 0; x < pix - 3; x += 2) { for (int x = 0; x < pix - 2; x += 2) {
dst_rgb[0] = AVG(b, src_bayer1[1]); dst_rgb[0] = AVG(b, src_bayer1[1]);
dst_rgb[1] = AVG(g, src_bayer0[1]); dst_rgb[1] = AVG(g, src_bayer0[1]);
dst_rgb[2] = src_bayer0[0]; dst_rgb[2] = src_bayer0[0];
...@@ -217,7 +217,7 @@ static void BayerRowRG(const uint8* src_bayer0, int src_stride_bayer, ...@@ -217,7 +217,7 @@ static void BayerRowRG(const uint8* src_bayer0, int src_stride_bayer,
dst_rgb[1] = AVG(g, src_bayer0[1]); dst_rgb[1] = AVG(g, src_bayer0[1]);
dst_rgb[2] = src_bayer0[0]; dst_rgb[2] = src_bayer0[0];
dst_rgb[3] = 255U; dst_rgb[3] = 255U;
if (pix & 1) { if (!(pix & 1)) {
dst_rgb[4] = src_bayer1[1]; dst_rgb[4] = src_bayer1[1];
dst_rgb[5] = src_bayer0[1]; dst_rgb[5] = src_bayer0[1];
dst_rgb[6] = src_bayer0[0]; dst_rgb[6] = src_bayer0[0];
...@@ -229,7 +229,7 @@ static void BayerRowGB(const uint8* src_bayer0, int src_stride_bayer, ...@@ -229,7 +229,7 @@ static void BayerRowGB(const uint8* src_bayer0, int src_stride_bayer,
uint8* dst_rgb, int pix) { uint8* dst_rgb, int pix) {
const uint8* src_bayer1 = src_bayer0 + src_stride_bayer; const uint8* src_bayer1 = src_bayer0 + src_stride_bayer;
uint8 b = src_bayer0[1]; uint8 b = src_bayer0[1];
for (int x = 0; x < pix - 3; x += 2) { for (int x = 0; x < pix - 2; x += 2) {
dst_rgb[0] = AVG(b, src_bayer0[1]); dst_rgb[0] = AVG(b, src_bayer0[1]);
dst_rgb[1] = src_bayer0[0]; dst_rgb[1] = src_bayer0[0];
dst_rgb[2] = src_bayer1[0]; dst_rgb[2] = src_bayer1[0];
...@@ -247,7 +247,7 @@ static void BayerRowGB(const uint8* src_bayer0, int src_stride_bayer, ...@@ -247,7 +247,7 @@ static void BayerRowGB(const uint8* src_bayer0, int src_stride_bayer,
dst_rgb[1] = src_bayer0[0]; dst_rgb[1] = src_bayer0[0];
dst_rgb[2] = src_bayer1[0]; dst_rgb[2] = src_bayer1[0];
dst_rgb[3] = 255U; dst_rgb[3] = 255U;
if (pix & 1) { if (!(pix & 1)) {
dst_rgb[4] = src_bayer0[1]; dst_rgb[4] = src_bayer0[1];
dst_rgb[5] = src_bayer0[0]; dst_rgb[5] = src_bayer0[0];
dst_rgb[6] = src_bayer1[0]; dst_rgb[6] = src_bayer1[0];
...@@ -259,7 +259,7 @@ static void BayerRowGR(const uint8* src_bayer0, int src_stride_bayer, ...@@ -259,7 +259,7 @@ static void BayerRowGR(const uint8* src_bayer0, int src_stride_bayer,
uint8* dst_rgb, int pix) { uint8* dst_rgb, int pix) {
const uint8* src_bayer1 = src_bayer0 + src_stride_bayer; const uint8* src_bayer1 = src_bayer0 + src_stride_bayer;
uint8 r = src_bayer0[1]; uint8 r = src_bayer0[1];
for (int x = 0; x < pix - 3; x += 2) { for (int x = 0; x < pix - 2; x += 2) {
dst_rgb[0] = src_bayer1[0]; dst_rgb[0] = src_bayer1[0];
dst_rgb[1] = src_bayer0[0]; dst_rgb[1] = src_bayer0[0];
dst_rgb[2] = AVG(r, src_bayer0[1]); dst_rgb[2] = AVG(r, src_bayer0[1]);
...@@ -277,7 +277,7 @@ static void BayerRowGR(const uint8* src_bayer0, int src_stride_bayer, ...@@ -277,7 +277,7 @@ static void BayerRowGR(const uint8* src_bayer0, int src_stride_bayer,
dst_rgb[1] = src_bayer0[0]; dst_rgb[1] = src_bayer0[0];
dst_rgb[2] = AVG(r, src_bayer0[1]); dst_rgb[2] = AVG(r, src_bayer0[1]);
dst_rgb[3] = 255U; dst_rgb[3] = 255U;
if (pix & 1) { if (!(pix & 1)) {
dst_rgb[4] = src_bayer1[0]; dst_rgb[4] = src_bayer1[0];
dst_rgb[5] = src_bayer0[0]; dst_rgb[5] = src_bayer0[0];
dst_rgb[6] = src_bayer0[1]; dst_rgb[6] = src_bayer0[1];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment