camera: Fix the fps issue during video recording in MMS.

Add change to fix fixed fps in setPreviewFrameRate.

Change-Id: I9f582c61ef962326cca27b0264db8bd3c2caee8c
diff --git a/camera/QCameraHWI_Parm.cpp b/camera/QCameraHWI_Parm.cpp
index 509e6bd..42b6924 100755
--- a/camera/QCameraHWI_Parm.cpp
+++ b/camera/QCameraHWI_Parm.cpp
@@ -2324,14 +2324,30 @@
 
 status_t QCameraHardwareInterface::setPreviewFrameRate(const QCameraParameters& params)
 {
-    ALOGI("%s: E",__func__);
+    ALOGI("%s",__func__);
     status_t rc = NO_ERROR;
+    rc = cam_config_is_parm_supported(mCameraId, MM_CAMERA_PARM_FPS);
+    if(!rc) {
+       ALOGE("MM_CAMERA_PARM_FPS is not supported for this sensor");
+       return NO_ERROR;
+    }
+    uint16_t previousFps = (uint16_t)mParameters.getPreviewFrameRate();
     uint16_t fps = (uint16_t)params.getPreviewFrameRate();
-    ALOGV("%s: requested preview frame rate  is %d", __func__, fps);
+    ALOGV("requested preview frame rate  is %u", fps);
 
-    mParameters.setPreviewFrameRate(fps);
-    ALOGE("%s: X",__func__);
-    return NO_ERROR;
+    if(mInitialized && (fps == previousFps)){
+        ALOGV("No change is FPS Value %d",fps );
+        return NO_ERROR;
+    }
+
+    if(MINIMUM_FPS <= fps && fps <=MAXIMUM_FPS){
+        mParameters.setPreviewFrameRate(fps);
+        bool ret = native_set_parms(MM_CAMERA_PARM_FPS,
+                sizeof(fps), (void *)&fps);
+        return ret ? NO_ERROR : UNKNOWN_ERROR;
+    }
+
+    return BAD_VALUE;
 }
 
 status_t QCameraHardwareInterface::setPreviewFrameRateMode(const QCameraParameters& params) {