Name: libmm-streamrecorder
Summary: Media Stream Recorder library
-Version: 0.0.2
+Version: 0.0.3
Release: 0
Group: Multimedia/Other
License: Apache-2.0
mmf_return_val_if_fail(item, FALSE);
hstreamrecorder = MMF_STREAMRECORDER(item->handle);
- mmf_return_val_if_fail(hstreamrecorder, FALSE);
+ if(hstreamrecorder == NULL) {
+ _mmstreamrec_dbg_warn("msg id:0x%x, item:%p, handle is NULL", item->id, item);
+ goto MSG_CALLBACK_DONE;
+ }
/* _mmstreamrec_dbg_log("msg id:%x, msg_cb:%p, msg_data:%p, item:%p", item->id, hstreamrecorder->msg_cb, hstreamrecorder->msg_data, item); */
_MMSTREAMRECORDER_LOCK_MESSAGE_CALLBACK(hstreamrecorder);
if (hstreamrecorder->msg_data)
hstreamrecorder->msg_data = g_list_remove(hstreamrecorder->msg_data, item);
- free(item);
- item = NULL;
_MMSTREAMRECORDER_UNLOCK((MMHandleType) hstreamrecorder);
+
+MSG_CALLBACK_DONE:
+ /* release allocated memory */
+ if (item->id == MM_MESSAGE_STREAMRECORDER_VIDEO_CAPTURED ||
+ item->id == MM_MESSAGE_STREAMRECORDER_AUDIO_CAPTURED) {
+ MMStreamRecordingReport *report = (MMStreamRecordingReport *)item->param.data;
+ if (report) {
+ SAFE_FREE(report->recording_filename);
+ item->param.data = NULL;
+ }
+ SAFE_FREE(report);
+ }
+ SAFE_FREE(item);
+
/* For not being called again */
return FALSE;
}
mmf_streamrecorder_t *streamrecorder = MMF_STREAMRECORDER(handle);
_MMStreamRecorderMsgItem msg;
- mmf_return_val_if_fail(streamrecorder, MM_ERROR_STREAMRECORDER_INVALID_ARGUMENT);
+ mmf_return_if_fail(streamrecorder);
/*_mmstreamrec_dbg_log("");*/
else
info->max_time = ((guint64) imax_time) * 1000; /* to millisecond */
- finfo->filename = strdup(temp_filename);
+ finfo->filename = g_strdup(temp_filename);
if (!finfo->filename) {
_mmstreamrec_dbg_err("strdup was failed");
return err;
/* Send recording report to application */
msg.id = MM_MESSAGE_STREAMRECORDER_VIDEO_CAPTURED;
- report = (MMStreamRecordingReport *) malloc(sizeof(MMStreamRecordingReport));
+ report = (MMStreamRecordingReport *) g_malloc(sizeof(MMStreamRecordingReport));
if (!report) {
_mmstreamrec_dbg_err("Recording report fail(%s). Out of memory.", finfo->filename);
} else {
- report->recording_filename = strdup(finfo->filename);
+ report->recording_filename = g_strdup(finfo->filename);
msg.param.data = report;
msg.param.code = 1;
_mmstreamrecorder_send_message((MMHandleType) hstreamrecorder, &msg);
goto _ERR_STREAMRECORDER_AUDIO_COMMAND;
}
- finfo->filename = strdup(temp_filename);
+ finfo->filename = g_strdup(temp_filename);
if (!finfo->filename) {
_mmstreamrec_dbg_err("STRDUP was failed");
goto _ERR_STREAMRECORDER_AUDIO_COMMAND;
/* Send recording report message to application */
msg.id = MM_MESSAGE_STREAMRECORDER_AUDIO_CAPTURED;
- report = (MMStreamRecordingReport *) malloc(sizeof(MMStreamRecordingReport));
+ report = (MMStreamRecordingReport *) g_malloc(sizeof(MMStreamRecordingReport));
if (!report) {
_mmstreamrec_dbg_err("Recording report fail(%s). Out of memory.", finfo->filename);
return FALSE;
_mmstreamrecorder_audio_add_metadata_info_m4a(handle);
/* END TAG HERE */
- report->recording_filename = strdup(finfo->filename);
+ report->recording_filename = g_strdup(finfo->filename);
msg.param.data = report;
_mmstreamrecorder_send_message(handle, &msg);