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);
_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;
/* 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;
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);
{
guint64 trailer_size = 0;
guint64 rec_pipe_time = 0;
- unsigned int remained_time = 0;
+ unsigned long long remained_time = 0;
GstClockTime b_time;
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;
_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);
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)
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) {
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);