From a8cadf5ca3c8eabb623574eeb0c4eac591d6ad47 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Fri, 29 Aug 2014 20:38:09 -0400 Subject: [PATCH] Bug 1060708 - Detect user and environment cameras on Android. r=gcp,blassey,snorp --- dom/media/MediaManager.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/dom/media/MediaManager.cpp b/dom/media/MediaManager.cpp index c177daa54b0a..6596dbb1809c 100644 --- a/dom/media/MediaManager.cpp +++ b/dom/media/MediaManager.cpp @@ -388,13 +388,27 @@ VideoDevice::VideoDevice(MediaEngineVideoSource* aSource) mFacingMode = dom::VideoFacingModeEnum::User; } #endif // MOZ_B2G_CAMERA +#if defined(ANDROID) && !defined(MOZ_WIDGET_GONK) + // Names are generated. Example: "Camera 0, Facing back, Orientation 90" + // + // See media/webrtc/trunk/webrtc/modules/video_capture/android/java/src/org/ + // webrtc/videoengine/VideoCaptureDeviceInfoAndroid.java + if (mName.Find(NS_LITERAL_STRING("Facing back")) != kNotFound) { + mHasFacingMode = true; + mFacingMode = dom::VideoFacingModeEnum::Environment; + } else if (mName.Find(NS_LITERAL_STRING("Facing front")) != kNotFound) { + mHasFacingMode = true; + mFacingMode = dom::VideoFacingModeEnum::User; + } +#endif // ANDROID +#ifdef XP_MACOSX // Kludge to test user-facing cameras on OSX. if (mName.Find(NS_LITERAL_STRING("Face")) != -1) { mHasFacingMode = true; mFacingMode = dom::VideoFacingModeEnum::User; } - +#endif mMediaSource = aSource->GetMediaSource(); }