Camera NDK library: capture session implementation

Bug: 23012001
Change-Id: I3fd93205dcf1b9ed5a947cb944919eb531f219fc
diff --git a/include/camera/ndk/NdkCameraDevice.h b/include/camera/ndk/NdkCameraDevice.h
index 6eb0707..2008a68 100644
--- a/include/camera/ndk/NdkCameraDevice.h
+++ b/include/camera/ndk/NdkCameraDevice.h
@@ -44,8 +44,8 @@
 
 typedef struct ACameraDevice_StateCallbacks {
     void*                             context;
-    ACameraDevice_StateCallback       onDisconnected;
-    ACameraDevice_ErrorStateCallback  onError;
+    ACameraDevice_StateCallback       onDisconnected; // Device is unusable after this callback
+    ACameraDevice_ErrorStateCallback  onError;        // Device is unusable after this callback
 } ACameraDevice_stateCallbacks;
 
 /**
@@ -93,10 +93,17 @@
 camera_status_t ACaptureSessionOutputContainer_remove(
         ACaptureSessionOutputContainer*, const ACaptureSessionOutput*);
 
+/*
+ * Create a new capture session.
+ * If there is a preexisting session, the previous session will be closed automatically.
+ * However, app still needs to call ACameraCaptureSession_close on previous session.
+ * Otherwise the resources hold by previous session won't be freed
+ */
 camera_status_t ACameraDevice_createCaptureSession(
         ACameraDevice*,
         const ACaptureSessionOutputContainer*       outputs,
-        const ACameraCaptureSession_stateCallbacks* callbacks);
+        const ACameraCaptureSession_stateCallbacks* callbacks,
+        /*out*/ACameraCaptureSession** session);
 
 #ifdef __cplusplus
 } // extern "C"