Chromium Code Reviews| Index: media/base/android/java/src/org/chromium/media/VideoCapture.java |
| diff --git a/media/base/android/java/src/org/chromium/media/VideoCapture.java b/media/base/android/java/src/org/chromium/media/VideoCapture.java |
| index df9eb4dcffb61a8ea9a8bd8ea8d0e16d92d775a1..27b55320673240708720b2504018b9cfeb154d21 100644 |
| --- a/media/base/android/java/src/org/chromium/media/VideoCapture.java |
| +++ b/media/base/android/java/src/org/chromium/media/VideoCapture.java |
| @@ -51,7 +51,6 @@ public class VideoCapture implements PreviewCallback, OnFrameAvailableListener { |
| return ImageFormat.NV21; |
| } |
| } |
| - |
| return ImageFormat.YV12; |
| } |
| } |
| @@ -238,6 +237,27 @@ public class VideoCapture implements PreviewCallback, OnFrameAvailableListener { |
| } |
| @CalledByNative |
| + public int getColorspace() { |
| + switch (mImageFormat){ |
| + case ImageFormat.YV12: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_YV12; |
| + case ImageFormat.NV21: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_NV21; |
| + case ImageFormat.YUY2: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_YUY2; |
| + case ImageFormat.NV16: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_NV16; |
| + case ImageFormat.JPEG: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_JPEG; |
| + case ImageFormat.RGB_565: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_RGB_565; |
|
wjia(left Chromium)
2013/09/18 18:35:27
Only YV12 and NV21 are used. The rest should be ad
|
| + case ImageFormat.UNKNOWN: |
| + default: |
| + return AndroidImageFormatList.ANDROID_IMAGEFORMAT_UNKNOWN; |
| + } |
| + } |
| + |
| + @CalledByNative |
| public int startCapture() { |
| if (mCamera == null) { |
| Log.e(TAG, "startCapture: camera is null"); |
| @@ -325,9 +345,6 @@ public class VideoCapture implements PreviewCallback, OnFrameAvailableListener { |
| } else { |
| rotation = (mCameraOrientation - rotation + 360) % 360; |
| } |
| - if (mImageFormat == ImageFormat.NV21) { |
| - convertNV21ToYV12(data); |
| - } |
| nativeOnFrameAvailable(mNativeVideoCaptureDeviceAndroid, |
| data, mExpectedFrameSize, |
| rotation, flipVertical, flipHorizontal); |
| @@ -417,19 +434,5 @@ public class VideoCapture implements PreviewCallback, OnFrameAvailableListener { |
| private void calculateImageFormat(int width, int height) { |
| mImageFormat = DeviceImageFormatHack.getImageFormat(); |
| - if (mImageFormat == ImageFormat.NV21) { |
| - mColorPlane = new byte[width * height / 4]; |
| - } |
| - } |
| - |
| - private void convertNV21ToYV12(byte[] data) { |
| - final int ySize = mCurrentCapability.mWidth * mCurrentCapability.mHeight; |
| - final int uvSize = ySize / 4; |
| - for (int i = 0; i < uvSize; i++) { |
| - final int index = ySize + i * 2; |
| - data[ySize + i] = data[index]; |
| - mColorPlane[i] = data[index + 1]; |
| - } |
| - System.arraycopy(mColorPlane, 0, data, ySize + uvSize, uvSize); |
| } |
| } |