Camera: Clean up warnings and set -Werror

- Also fix error logging template inconsistency
- Also add a few error handling cases into camera2 NDK
  to deal with previously-ignored error codes

Bug: 27149500
Change-Id: I8f1f4c72252dd48d652f24b595b642199f20c327
diff --git a/camera/Android.mk b/camera/Android.mk
index b0df7c4..1a3382f 100644
--- a/camera/Android.mk
+++ b/camera/Android.mk
@@ -73,6 +73,8 @@
 	system/media/camera/include \
 	frameworks/av/include/camera
 
+LOCAL_CFLAGS += -Werror -Wall -Wextra
+
 LOCAL_MODULE:= libcamera_client
 
 include $(BUILD_SHARED_LIBRARY)
diff --git a/camera/CameraBase.cpp b/camera/CameraBase.cpp
index 9aa0b4e..15d7715 100644
--- a/camera/CameraBase.cpp
+++ b/camera/CameraBase.cpp
@@ -118,7 +118,6 @@
     ALOGV("%s: connect", __FUNCTION__);
     sp<TCam> c = new TCam(cameraId);
     sp<TCamCallbacks> cl = c;
-    status_t status = NO_ERROR;
     const sp<::android::hardware::ICameraService>& cs = getCameraService();
 
     binder::Status ret;
diff --git a/camera/CameraParameters2.cpp b/camera/CameraParameters2.cpp
index 378afeb..c29233c 100644
--- a/camera/CameraParameters2.cpp
+++ b/camera/CameraParameters2.cpp
@@ -351,7 +351,7 @@
 
 void CameraParameters2::dump() const
 {
-    ALOGD("dump: mMap.size = %d", mMap.size());
+    ALOGD("dump: mMap.size = %zu", mMap.size());
     for (size_t i = 0; i < mMap.size(); i++) {
         String8 k, v;
         k = mMap.keyAt(i);
diff --git a/camera/VendorTagDescriptor.cpp b/camera/VendorTagDescriptor.cpp
index de69a5b..5538da9 100644
--- a/camera/VendorTagDescriptor.cpp
+++ b/camera/VendorTagDescriptor.cpp
@@ -59,7 +59,7 @@
 
 VendorTagDescriptor::VendorTagDescriptor() :
         mTagCount(0),
-        mVendorOps({nullptr}) {
+        mVendorOps() {
 }
 
 VendorTagDescriptor::VendorTagDescriptor(const VendorTagDescriptor& src) {
diff --git a/camera/camera2/OutputConfiguration.cpp b/camera/camera2/OutputConfiguration.cpp
index 2c2c90b..3247d0d 100644
--- a/camera/camera2/OutputConfiguration.cpp
+++ b/camera/camera2/OutputConfiguration.cpp
@@ -80,8 +80,8 @@
     mRotation = rotation;
     mSurfaceSetID = setID;
 
-    ALOGV("%s: OutputConfiguration: bp = %p, name = %s", __FUNCTION__,
-          mGbp.get(), String8(surfaceShim.name).string());
+    ALOGV("%s: OutputConfiguration: bp = %p, name = %s, rotation = %d, setId = %d", __FUNCTION__,
+            mGbp.get(), String8(surfaceShim.name).string(), mRotation, mSurfaceSetID);
 
     return err;
 }
diff --git a/camera/cameraserver/Android.mk b/camera/cameraserver/Android.mk
index 0207505..7e36c5e 100644
--- a/camera/cameraserver/Android.mk
+++ b/camera/cameraserver/Android.mk
@@ -29,6 +29,8 @@
 LOCAL_MODULE:= cameraserver
 LOCAL_32_BIT_ONLY := true
 
+LOCAL_CFLAGS += -Wall -Wextra -Werror -Wno-unused-parameter
+
 LOCAL_INIT_RC := cameraserver.rc
 
 include $(BUILD_EXECUTABLE)
diff --git a/camera/ndk/Android.mk b/camera/ndk/Android.mk
index e43bb2c..ebd473d 100644
--- a/camera/ndk/Android.mk
+++ b/camera/ndk/Android.mk
@@ -38,6 +38,7 @@
     frameworks/av/include/ndk
 
 LOCAL_CFLAGS += -fvisibility=hidden -D EXPORT='__attribute__ ((visibility ("default")))'
+LOCAL_CFLAGS += -Wall -Wextra -Werror
 
 LOCAL_SHARED_LIBRARIES := \
     libbinder \
diff --git a/camera/ndk/impl/ACameraDevice.cpp b/camera/ndk/impl/ACameraDevice.cpp
index 1ab6af8..880befe 100644
--- a/camera/ndk/impl/ACameraDevice.cpp
+++ b/camera/ndk/impl/ACameraDevice.cpp
@@ -64,10 +64,15 @@
     // Setup looper thread to perfrom device callbacks to app
     mCbLooper = new ALooper;
     mCbLooper->setName("C2N-dev-looper");
-    status_t ret = mCbLooper->start(
+    status_t err = mCbLooper->start(
             /*runOnCallingThread*/false,
             /*canCallJava*/       true,
             PRIORITY_DEFAULT);
+    if (err != OK) {
+        ALOGE("%s: Unable to start camera device callback looper: %s (%d)",
+                __FUNCTION__, strerror(-err), err);
+        setCameraDeviceErrorLocked(ACAMERA_ERROR_CAMERA_DEVICE);
+    }
     mHandler = new CallbackHandler();
     mCbLooper->registerHandler(mHandler);
 
@@ -162,8 +167,6 @@
     ACameraCaptureSession* newSession = new ACameraCaptureSession(
             mNextSessionId++, outputs, callbacks, this);
 
-    bool configureSucceeded = (ret == ACAMERA_OK);
-
     // set new session as current session
     newSession->incStrong((void *) ACameraDevice_createCaptureSession);
     mCurrentSession = newSession;
@@ -419,7 +422,7 @@
     }
     int value;
     int err = (*anw->query)(anw, NATIVE_WINDOW_CONCRETE_TYPE, &value);
-    if (value != NATIVE_WINDOW_SURFACE) {
+    if (err != OK || value != NATIVE_WINDOW_SURFACE) {
         ALOGE("Error: ANativeWindow is not backed by Surface!");
         return ACAMERA_ERROR_INVALID_PARAMETER;
     }
@@ -437,7 +440,7 @@
     }
     int value;
     int err = (*anw->query)(anw, NATIVE_WINDOW_CONCRETE_TYPE, &value);
-    if (value != NATIVE_WINDOW_SURFACE) {
+    if (err != OK || value != NATIVE_WINDOW_SURFACE) {
         ALOGE("Error: ANativeWindow is not backed by Surface!");
         return ACAMERA_ERROR_INVALID_PARAMETER;
     }
@@ -453,7 +456,6 @@
         outputs = &emptyOutput;
     }
 
-    bool success = false;
     camera_status_t ret = checkCameraClosedOrErrorLocked();
     if (ret != ACAMERA_OK) {
         return ret;
@@ -1126,7 +1128,6 @@
     }
 
     int sequenceId = resultExtras.requestId;
-    int64_t frameNumber = resultExtras.frameNumber;
     int32_t burstId = resultExtras.burstId;
 
     auto it = dev->mSequenceCallbackMap.find(sequenceId);
diff --git a/camera/ndk/impl/ACameraManager.cpp b/camera/ndk/impl/ACameraManager.cpp
index 6fa0864..24d5282 100644
--- a/camera/ndk/impl/ACameraManager.cpp
+++ b/camera/ndk/impl/ACameraManager.cpp
@@ -94,10 +94,16 @@
         if (mCbLooper == nullptr) {
             mCbLooper = new ALooper;
             mCbLooper->setName("C2N-mgr-looper");
-            status_t ret = mCbLooper->start(
+            status_t err = mCbLooper->start(
                     /*runOnCallingThread*/false,
                     /*canCallJava*/       true,
                     PRIORITY_DEFAULT);
+            if (err != OK) {
+                ALOGE("%s: Unable to start camera service listener looper: %s (%d)",
+                        __FUNCTION__, strerror(-err), err);
+                mCbLooper.clear();
+                return nullptr;
+            }
             if (mHandler == nullptr) {
                 mHandler = new CallbackHandler();
             }
diff --git a/camera/tests/Android.mk b/camera/tests/Android.mk
index cde26dd..8019999 100644
--- a/camera/tests/Android.mk
+++ b/camera/tests/Android.mk
@@ -36,7 +36,7 @@
 	system/media/camera/tests \
 	frameworks/av/services/camera/libcameraservice \
 
-LOCAL_CFLAGS += -Wall -Wextra
+LOCAL_CFLAGS += -Wall -Wextra -Werror
 
 LOCAL_MODULE:= camera_client_test
 LOCAL_MODULE_TAGS := tests