Chromium Code Reviews| Index: media/video/capture/android/video_capture_device_android.cc |
| diff --git a/media/video/capture/android/video_capture_device_android.cc b/media/video/capture/android/video_capture_device_android.cc |
| index 152cfda08756a0c48ac217be9032789306f4ba35..e2e19f633b3c1e89c1466453af0de61c37ba301a 100644 |
| --- a/media/video/capture/android/video_capture_device_android.cc |
| +++ b/media/video/capture/android/video_capture_device_android.cc |
| @@ -21,19 +21,6 @@ using base::android::MethodID; |
| using base::android::JavaRef; |
| using base::android::ScopedJavaLocalRef; |
| -namespace { |
| - |
| -int GetIntField(JNIEnv* env, |
| - const JavaRef<jclass>& clazz, |
| - const JavaRef<jobject>& instance, |
| - const char* field_name) { |
| - jfieldID field = GetFieldID(env, clazz, field_name, "I"); |
| - jint int_value = env->GetIntField(instance.obj(), field); |
| - return int_value; |
| -} |
| - |
| -} // namespace |
| - |
| namespace media { |
| // static |
| @@ -151,7 +138,8 @@ void VideoCaptureDeviceAndroid::Allocate( |
| Java_VideoCapture_queryHeight(env, j_capture_.obj()); |
| current_settings_.frame_rate = |
| Java_VideoCapture_queryFrameRate(env, j_capture_.obj()); |
| - current_settings_.color = PIXEL_FORMAT_YV12; |
| + current_settings_.color = GetColorspace(); |
| + DCHECK_NE(current_settings_.color, media::PIXEL_FORMAT_UNKNOWN); |
|
wjia(left Chromium)
2013/09/18 18:35:27
no need to have media::
|
| CHECK(current_settings_.width > 0 && !(current_settings_.width % 2)); |
| CHECK(current_settings_.height > 0 && !(current_settings_.height % 2)); |
| @@ -256,6 +244,27 @@ void VideoCaptureDeviceAndroid::OnFrameAvailable( |
| env->ReleaseByteArrayElements(data, buffer, JNI_ABORT); |
| } |
| +VideoPixelFormat VideoCaptureDeviceAndroid::GetColorspace() { |
| + JNIEnv* env = AttachCurrentThread(); |
| + int current_capture_colorspace = |
| + Java_VideoCapture_getColorspace(env, j_capture_.obj()); |
| + switch (current_capture_colorspace){ |
|
wjia(left Chromium)
2013/09/18 18:35:27
nit: one space between ) and {.
|
| + case ANDROID_IMAGEFORMAT_YV12: |
|
wjia(left Chromium)
2013/09/18 18:35:27
Some reviewer has mentioned this before. Please fo
|
| + return media::PIXEL_FORMAT_YV12; |
| + case ANDROID_IMAGEFORMAT_NV21: |
| + return media::PIXEL_FORMAT_NV21; |
| + case ANDROID_IMAGEFORMAT_YUY2: |
| + return media::PIXEL_FORMAT_YUY2; |
| + case ANDROID_IMAGEFORMAT_NV16: |
| + case ANDROID_IMAGEFORMAT_JPEG: |
| + case ANDROID_IMAGEFORMAT_RGB_565: |
|
wjia(left Chromium)
2013/09/18 18:35:27
Only NV21 and YV12 are used. Please remove unused
|
| + case ANDROID_IMAGEFORMAT_UNKNOWN: |
| + // NOTE(mcasas): NV16, JPEG, RGB565 not supported in VideoPixelFormat. |
| + default: |
| + return media::PIXEL_FORMAT_UNKNOWN; |
| + } |
| +} |
| + |
| void VideoCaptureDeviceAndroid::SetErrorState(const std::string& reason) { |
| LOG(ERROR) << "VideoCaptureDeviceAndroid::SetErrorState: " << reason; |
| { |