mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-02-08 18:56:43 +08:00
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
This commit is contained in:
parent
86e9487d0d
commit
82ba1b77ae
@ -1,6 +1,6 @@
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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,
|
|||||||
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];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user