Add new field to frame meta for lux index
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder_videorec.c
index dbebd72..d582711 100644 (file)
@@ -434,9 +434,6 @@ int _mmcamcorder_remove_encode_pipeline(MMHandleType handle)
        GstPad *reqpad = NULL;
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
        _MMCamcorderSubContext *sc = NULL;
-#ifdef _MMCAMCORDER_MM_RM_SUPPORT
-       int ret = MM_ERROR_NONE;
-#endif /* _MMCAMCORDER_MM_RM_SUPPORT */
 
        mmf_return_val_if_fail(hcamcorder, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
 
@@ -475,30 +472,6 @@ int _mmcamcorder_remove_encode_pipeline(MMHandleType handle)
                        _MMCAMCORDER_ENCODE_MAIN_PIPE, _MMCAMCORDER_ENCSINK_SINK); */
 
                MMCAM_LOG_WARNING("Encoder pipeline removed");
-
-#ifdef _MMCAMCORDER_MM_RM_SUPPORT
-               _MMCAMCORDER_LOCK_RESOURCE(hcamcorder);
-
-               MMCAM_LOG_WARNING("lock resource - cb calling %d", hcamcorder->is_release_cb_calling);
-
-               if (hcamcorder->is_release_cb_calling == FALSE) {
-                       /* release resource */
-                       ret = mm_resource_manager_mark_for_release(hcamcorder->resource_manager,
-                                       hcamcorder->video_encoder_resource);
-                       if (ret == MM_RESOURCE_MANAGER_ERROR_NONE)
-                               hcamcorder->video_encoder_resource = NULL;
-
-                       MMCAM_LOG_WARNING("mark resource for release 0x%x", ret);
-
-                       ret = mm_resource_manager_commit(hcamcorder->resource_manager);
-
-                       MMCAM_LOG_WARNING("commit resource release 0x%x", ret);
-               }
-
-               _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
-
-               MMCAM_LOG_WARNING("unlock resource");
-#endif /* _MMCAMCORDER_MM_RM_SUPPORT */
        }
 
        return MM_ERROR_NONE;
@@ -610,37 +583,6 @@ int _mmcamcorder_video_command(MMHandleType handle, int command)
                        /* Recording */
                        MMCAM_LOG_INFO("Record Start - dual stream %d", info->support_dual_stream);
 
-#ifdef _MMCAMCORDER_MM_RM_SUPPORT
-                       _MMCAMCORDER_LOCK_RESOURCE(hcamcorder);
-
-                       /* prepare resource manager for H/W encoder */
-                       if (hcamcorder->video_encoder_resource == NULL) {
-                               ret = mm_resource_manager_mark_for_acquire(hcamcorder->resource_manager,
-                                               MM_RESOURCE_MANAGER_RES_TYPE_VIDEO_ENCODER,
-                                               MM_RESOURCE_MANAGER_RES_VOLUME_FULL,
-                                               &hcamcorder->video_encoder_resource);
-                               if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) {
-                                       MMCAM_LOG_ERROR("could not prepare for encoder resource");
-                                       ret = MM_ERROR_RESOURCE_INTERNAL;
-                                       _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
-                                       goto _ERR_CAMCORDER_VIDEO_COMMAND;
-                               }
-                       } else {
-                               MMCAM_LOG_INFO("encoder already acquired");
-                       }
-
-                       /* acquire resources */
-                       ret = mm_resource_manager_commit(hcamcorder->resource_manager);
-                       if (ret != MM_RESOURCE_MANAGER_ERROR_NONE) {
-                               MMCAM_LOG_ERROR("could not acquire resources");
-                               ret = MM_ERROR_RESOURCE_INTERNAL;
-                               _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
-                               goto _ERR_CAMCORDER_VIDEO_COMMAND;
-                       }
-
-                       _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
-#endif /* _MMCAMCORDER_MM_RM_SUPPORT */
-
                        /* init record_dual_stream */
                        info->record_dual_stream = FALSE;
 
@@ -1462,7 +1404,12 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_encoded(GstPad *pad, GstP
                return GST_PAD_PROBE_DROP;
        }
 
-       gst_buffer_map(buffer, &mapinfo, GST_MAP_READ);
+       if (!gst_buffer_map(buffer, &mapinfo, GST_MAP_READ)) {
+               MMCAM_LOG_WARNING("map failed : buffer[%p]", buffer);
+               return GST_PAD_PROBE_OK;
+       }
+
+
        buffer_size = mapinfo.size;
        gst_buffer_unmap(buffer, &mapinfo);
 
@@ -1598,7 +1545,7 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_audio_disable(GstPad *pad
 {
        guint64 trailer_size = 0;
        guint64 rec_pipe_time = 0;
-       unsigned int remained_time = 0;
+       unsigned long long remained_time = 0;
 
        GstClockTime b_time;
 
@@ -1657,7 +1604,7 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_audio_disable(GstPad *pad
                long double max_size = (long double)videoinfo->max_size;
                long double current_size = (long double)(videoinfo->filesize + trailer_size);
 
-               remained_time = (unsigned int)((long double)rec_pipe_time * (max_size/current_size)) - rec_pipe_time;
+               remained_time = (unsigned long long)((long double)rec_pipe_time * (max_size/current_size)) - rec_pipe_time;
        }
 
        msg.id = MM_MESSAGE_CAMCORDER_RECORDING_STATUS;
@@ -1699,7 +1646,7 @@ static GstPadProbeReturn __mmcamcorder_audioque_dataprobe(GstPad *pad, GstPadPro
        _MMCamcorderSubContext *sc = NULL;
        mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(u_data);
        _MMCamcorderVideoInfo *videoinfo = NULL;
-       unsigned int remained_time = 0;
+       unsigned long long remained_time = 0;
        GstBuffer *buffer = GST_PAD_PROBE_INFO_BUFFER(info);
 
        mmf_return_val_if_fail(buffer, GST_PAD_PROBE_DROP);
@@ -1791,12 +1738,15 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_audio_mute(GstPad *pad, G
        if (err != MM_ERROR_NONE) {
                MMCAM_LOG_WARNING("Get attrs fail. (%s:%x)", err_name, err);
                SAFE_FREE(err_name);
-               return err;
+               return GST_PAD_PROBE_OK;
        }
 
        memset(&mapinfo, 0x0, sizeof(GstMapInfo));
 
-       gst_buffer_map(buffer, &mapinfo, GST_MAP_READWRITE);
+       if (!gst_buffer_map(buffer, &mapinfo, GST_MAP_READWRITE)) {
+               MMCAM_LOG_WARNING("map failed : buffer[%p]", buffer);
+               return GST_PAD_PROBE_OK;
+       }
 
        /* Set audio stream NULL */
        if (volume == 0.0)
@@ -1806,7 +1756,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_audio_mute(GstPad *pad, G
                GST_TIME_ARGS(GST_BUFFER_PTS(buffer)), hcamcorder->astream_cb, format, channel, mapinfo.size);
 
        /* CALL audio stream callback */
-       if (hcamcorder->astream_cb && buffer && mapinfo.data && mapinfo.size > 0) {
+       if (hcamcorder->astream_cb) {
                MMCamcorderAudioStreamDataType stream;
 
                if (_mmcamcorder_get_state((MMHandleType)hcamcorder) < MM_CAMCORDER_STATE_PREPARE) {
@@ -1818,7 +1768,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_audio_mute(GstPad *pad, G
                stream.data = (void *)mapinfo.data;
                stream.format = format;
                stream.channel = channel;
-               stream.length = mapinfo.size;
+               stream.length = (unsigned int)mapinfo.size;
                stream.timestamp = (unsigned int)(GST_TIME_AS_MSECONDS(GST_BUFFER_PTS(buffer)));
 
                _MMCAMCORDER_LOCK_ASTREAM_CALLBACK(hcamcorder);