Fixed NPE inside org.webrtc.Camera1Session.create

On some devices `android.hardware.Camera.open` returns null
instead of raising exception. It causes `NPE` inside
`Camera1Session.create` when method `setPreviewTexture` is
invoked on local variable `camera`, which is `null`.

Bug: webrtc:8658
Change-Id: Ic65b4aef2c0b8b65735a9db02433b536bfe92ddd
Reviewed-on: https://webrtc-review.googlesource.com/33620
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21352}
diff --git a/AUTHORS b/AUTHORS
index 121838f..abf8b5b 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -55,6 +55,7 @@
 Victor Costan <costan@gmail.com>
 Xiaohong Xu <freemine@yeah.net>
 Xiaolei Yu <dreifachstein@gmail.com>
+Yura Yaroshevich <yura.yaroshevich@gmail.com>
 Hans Knoechel <hans@hans-knoechel.de>
 Korniltsev Anatoly <korniltsev.anatoly@gmail.com>
 
diff --git a/sdk/android/src/java/org/webrtc/Camera1Session.java b/sdk/android/src/java/org/webrtc/Camera1Session.java
index 61a51c9..c27b4fc 100644
--- a/sdk/android/src/java/org/webrtc/Camera1Session.java
+++ b/sdk/android/src/java/org/webrtc/Camera1Session.java
@@ -69,6 +69,12 @@
       return;
     }
 
+    if (camera == null) {
+      callback.onFailure(FailureType.ERROR,
+          "android.hardware.Camera.open returned null for camera id = " + cameraId);
+      return;
+    }
+
     try {
       camera.setPreviewTexture(surfaceTextureHelper.getSurfaceTexture());
     } catch (IOException e) {