Merge "Camera3: Match input stream size to larget output size"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index c7ced08..140a686 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -63,3 +63,4 @@
 # Reduce IMS logging
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
+$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/build.prop)
diff --git a/camera/QCamera/HAL2/core/src/QCameraHWI_Metatags.cpp b/camera/QCamera/HAL2/core/src/QCameraHWI_Metatags.cpp
index 8160459..679cda4 100644
--- a/camera/QCamera/HAL2/core/src/QCameraHWI_Metatags.cpp
+++ b/camera/QCamera/HAL2/core/src/QCameraHWI_Metatags.cpp
@@ -175,21 +175,6 @@
             ANDROID_LENS_FACING_BACK : ANDROID_LENS_FACING_FRONT;
     ADD_OR_SIZE(ANDROID_LENS_FACING, &lensFacing, 1);
 
-    float lensPosition[3];
-    if (mFacingBack) {
-        // Back-facing camera is center-top on device
-        lensPosition[0] = 0;
-        lensPosition[1] = 20;
-        lensPosition[2] = -5;
-    } else {
-        // Front-facing camera is center-right on device
-        lensPosition[0] = 20;
-        lensPosition[1] = 20;
-        lensPosition[2] = 0;
-    }
-    ADD_OR_SIZE(ANDROID_LENS_POSITION, lensPosition, sizeof(lensPosition)/
-            sizeof(float));
-
 #if 0
     // android.sensor
 
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index aae104b..88e7f06 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -4177,10 +4177,6 @@
                       (uint8_t*)gCamCapability[cameraId]->optical_stab_modes,
                       gCamCapability[cameraId]->optical_stab_modes_count);
 
-    staticInfo.update(ANDROID_LENS_POSITION,
-                      gCamCapability[cameraId]->lens_position,
-                      sizeof(gCamCapability[cameraId]->lens_position)/ sizeof(float));
-
     int32_t lens_shading_map_size[] = {gCamCapability[cameraId]->lens_shading_map_size.width,
                                        gCamCapability[cameraId]->lens_shading_map_size.height};
     staticInfo.update(ANDROID_LENS_INFO_SHADING_MAP_SIZE,
@@ -4720,13 +4716,6 @@
                       &max_latency,
                       1);
 
-    float optical_axis_angle[2];
-    optical_axis_angle[0] = 0; //need to verify
-    optical_axis_angle[1] = 0; //need to verify
-    staticInfo.update(ANDROID_LENS_OPTICAL_AXIS_ANGLE,
-                      optical_axis_angle,
-                      2);
-
     uint8_t available_hot_pixel_modes[] = {ANDROID_HOT_PIXEL_MODE_FAST};
     staticInfo.update(ANDROID_HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES,
                       available_hot_pixel_modes,
@@ -4901,7 +4890,7 @@
        ANDROID_LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION,
        ANDROID_LENS_INFO_HYPERFOCAL_DISTANCE, ANDROID_LENS_INFO_MINIMUM_FOCUS_DISTANCE,
        ANDROID_LENS_INFO_SHADING_MAP_SIZE, ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION,
-       ANDROID_LENS_FACING, ANDROID_LENS_OPTICAL_AXIS_ANGLE,ANDROID_LENS_POSITION,
+       ANDROID_LENS_FACING,
        ANDROID_REQUEST_MAX_NUM_OUTPUT_STREAMS, ANDROID_REQUEST_MAX_NUM_INPUT_STREAMS,
        ANDROID_REQUEST_PIPELINE_MAX_DEPTH, ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
        ANDROID_REQUEST_AVAILABLE_REQUEST_KEYS, ANDROID_REQUEST_AVAILABLE_RESULT_KEYS,
diff --git a/device.mk b/device.mk
index 80b7622..d6a76e4 100644
--- a/device.mk
+++ b/device.mk
@@ -359,3 +359,7 @@
 # Copy the qcril.db file from qcril to system. Useful to get the radio tech family for the camped operator
 PRODUCT_COPY_FILES += \
     device/moto/shamu/qcril.db:system/etc/ril/qcril.db
+
+# Reduce client buffer size for fast audio output tracks
+PRODUCT_PROPERTY_OVERRIDES += \
+    af.fast_track_multiplier=1
diff --git a/init.shamu.rc b/init.shamu.rc
index 6bebb32..3513760 100644
--- a/init.shamu.rc
+++ b/init.shamu.rc
@@ -381,6 +381,16 @@
 on property:sys.ims.QMI_DAEMON_STATUS=1
     start imsdatadaemon
 
+service ims_rtp_daemon /system/bin/ims_rtp_daemon
+    class main
+    user root
+    socket ims_rtpd stream 0660 system radio
+    group system radio inet log
+    disabled
+
+on property:sys.ims.DATA_DAEMON_STATUS=1
+   start ims_rtp_daemon
+
 service sensors /system/bin/sensors.qcom
     class core
     user root
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 55189de..ff385d2 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -87,6 +87,7 @@
 #Add context for IMS Socket node
 /dev/socket/ims_qmid            u:object_r:ims_socket:s0
 /dev/socket/ims_datad           u:object_r:ims_socket:s0
+/dev/socket/ims_rtpd            u:object_r:ims_socket:s0
 
 # Shared memory log
 /dev/smem_log                   u:object_r:shared_log_device:s0
@@ -168,6 +169,7 @@
 
 /system/bin/imsdatadaemon                       u:object_r:ims_exec:s0
 /system/bin/imsqmidaemon                        u:object_r:ims_exec:s0
+/system/bin/ims_rtp_daemon                      u:object_r:ims_exec:s0
 
 /dev/socket/cnd  u:object_r:cnd_socket:s0
 /system/bin/cnd  u:object_r:cnd_exec:s0
diff --git a/sepolicy/ims.te b/sepolicy/ims.te
index a9f4a35..cf84be2 100644
--- a/sepolicy/ims.te
+++ b/sepolicy/ims.te
@@ -13,6 +13,12 @@
 # Allow ims to communicate with netd.
 allow ims netd_socket:sock_file write;
 
+# Allow ims to communicate with cnd.
+allow ims cnd_socket:sock_file write;
+
+# Allow ims to communicate with cnd.
+allow ims cnd:unix_stream_socket connectto;
+
 # Needed to let ims daemon drop unneeded capabilities and to allow access to
 # net_bind
 allow ims self:capability { setpcap setuid net_bind_service };
@@ -43,6 +49,7 @@
 
 # Allow ims to tell init to start the ims data service via property=sys.ims.QMI_DAEMON_STATUS
 allow ims qcom_ims_prop:property_service set;
+allow ims ims_socket:sock_file write;
 
 allow ims wpa_socket:sock_file create_file_perms;
 allow ims wpa_socket:dir rw_dir_perms;