int cmd = command;
int ret = MM_ERROR_NONE;
int err = 0;
- int size=0;
guint64 free_space = 0;
- guint64 free_space_exceptsystem = 0;
- char *dir_name = NULL;
char *err_attr_name = NULL;
GstElement *pipeline = NULL;
guint imax_size = 0;
guint imax_time = 0;
char *temp_filename = NULL;
+ char *dir_name = NULL;
int file_system_type = 0;
+ int filename_length = 0;
+ int root_directory_length = 0;
if(sc->pipeline_time) {
gst_element_set_start_time(pipeline, sc->pipeline_time);
MMCAM_TARGET_MAX_SIZE, &imax_size,
MMCAM_TARGET_TIME_LIMIT, &imax_time,
MMCAM_FILE_FORMAT, &(info->fileformat),
- MMCAM_TARGET_FILENAME, &temp_filename, &size,
+ MMCAM_TARGET_FILENAME, &temp_filename, &filename_length,
+ MMCAM_ROOT_DIRECTORY, &hcamcorder->root_directory, &root_directory_length,
NULL);
if (ret != MM_ERROR_NONE) {
_mmcam_dbg_warn("failed to get attribute. (%s:%x)", err_attr_name, ret);
goto _ERR_CAMCORDER_AUDIO_COMMAND;
}
- info->filename = strdup(temp_filename);
+ info->filename = g_strdup(temp_filename);
if (!info->filename) {
_mmcam_dbg_err("STRDUP was failed");
goto _ERR_CAMCORDER_AUDIO_COMMAND;
_mmcam_dbg_log("Record start : set file name using attribute - %s\n ",info->filename);
- MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
+ MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
sc->ferror_send = FALSE;
sc->ferror_count = 0;
/* TODO : check free space before recording start */
dir_name = g_path_get_dirname(info->filename);
if (dir_name) {
- err = _mmcamcorder_get_freespace(dir_name, &free_space);
- if(_mmcamcorder_check_file_path(dir_name)) {
- if (_mmcamcorder_get_freespace_except_system(&free_space_exceptsystem) == MM_ERROR_NONE) {
- hcamcorder->system_memory = free_space - free_space_exceptsystem;
- free_space = free_space - hcamcorder->system_memory;
- } else {
- hcamcorder->system_memory = 0;
- }
- }
+ err = _mmcamcorder_get_freespace(dir_name, hcamcorder->root_directory, &free_space);
- _mmcam_dbg_warn("current space - %s [%" G_GUINT64_FORMAT "], system [%" G_GUINT64_FORMAT "]",
- dir_name, free_space, hcamcorder->system_memory);
+ _mmcam_dbg_warn("current space - %s [%" G_GUINT64_FORMAT "]", dir_name, free_space);
if (_mmcamcorder_get_file_system_type(dir_name, &file_system_type) == 0) {
/* MSDOS_SUPER_MAGIC : 0x4d44 */
if (info->filename) {
_mmcam_dbg_log("file delete(%s)", info->filename);
unlink(info->filename);
- g_free(info->filename);
- info->filename = NULL;
+ SAFE_G_FREE(info->filename);
}
break;
}
if (audioSrc) {
- ret = gst_element_send_event(audioSrc, gst_event_new_eos());
+ if (gst_element_send_event(audioSrc, gst_event_new_eos()) == FALSE) {
+ _mmcam_dbg_err("send EOS failed");
+ info->b_commiting = FALSE;
+ ret = MM_ERROR_CAMCORDER_INTERNAL;
+ goto _ERR_CAMCORDER_AUDIO_COMMAND;
+ }
+
+ _mmcam_dbg_log("send EOS done");
+
/* for pause -> commit case */
if (_mmcamcorder_get_state((MMHandleType)hcamcorder) == MM_CAMCORDER_STATE_PAUSED) {
ret = _mmcamcorder_gst_set_state(handle, pipeline, GST_STATE_PLAYING);
goto _ERR_CAMCORDER_AUDIO_COMMAND;
}
}
+ } else {
+ _mmcam_dbg_err("No audio stream source");
+ info->b_commiting = FALSE;
+ ret = MM_ERROR_CAMCORDER_INTERNAL;
+ goto _ERR_CAMCORDER_AUDIO_COMMAND;
}
/* wait until finishing EOS */
/* Send recording report message to application */
msg.id = MM_MESSAGE_CAMCORDER_AUDIO_CAPTURED;
- report = (MMCamRecordingReport*) malloc(sizeof(MMCamRecordingReport));
+ report = (MMCamRecordingReport*) g_malloc(sizeof(MMCamRecordingReport));
if (!report) {
_mmcam_dbg_err("Recording report fail(%s). Out of memory.", info->filename);
return FALSE;
}
/* END TAG HERE */
- report->recording_filename = strdup(info->filename);
+ report->recording_filename = g_strdup(info->filename);
msg.param.data= report;
_mmcamcorder_send_message(handle, &msg);
sc->isMaxsizePausing = FALSE;
sc->isMaxtimePausing = FALSE;
- g_free(info->filename);
- info->filename = NULL;
+ SAFE_G_FREE(info->filename);
_mmcam_dbg_err("_MMCamcorder_CMD_COMMIT : end");
}
if (count > 0) {
- rms = sqrt( square_sum/count );
+ rms = sqrt( (double)square_sum/(double)count );
if (depthByte == 1) {
db = 20 * log10( rms/MAX_AMPLITUDE_MEAN_08BIT );
} else {
/* to minimizing free space check overhead */
count = count % _MMCAMCORDER_FREE_SPACE_CHECK_INTERVAL;
if (count++ == 0) {
- gint free_space_ret = _mmcamcorder_get_freespace(filename, &free_space);
+ char *dir_name = g_path_get_dirname(filename);
+ gint free_space_ret = 0;
- if(_mmcamcorder_check_file_path(filename) && hcamcorder->system_memory) {
- free_space = free_space - hcamcorder->system_memory;
+ if (dir_name) {
+ free_space_ret = _mmcamcorder_get_freespace(dir_name, hcamcorder->root_directory, &free_space);
+ g_free(dir_name);
+ dir_name = NULL;
+ } else {
+ _mmcam_dbg_err("failed to get dir name from [%s]", filename);
+ free_space_ret = -1;
}
/*_mmcam_dbg_log("check free space for recording");*/
gint64 udta_pos = 0;
// supporting audio geo tag for mobile
int gps_enable = 0;
- char *err_name = NULL;
gdouble longitude = 0;
gdouble latitude = 0;
gdouble altitude = 0;
mmf_return_val_if_fail(sc->info_audio, MM_ERROR_CAMCORDER_NOT_INITIALIZED);
info = sc->info_audio;
- mm_camcorder_get_attributes(handle, &err_name,
+ mm_camcorder_get_attributes(handle, NULL,
MMCAM_TAG_GPS_ENABLE, &gps_enable,
NULL);
if (gps_enable) {
- mm_camcorder_get_attributes(handle, &err_name,
+ mm_camcorder_get_attributes(handle, NULL,
MMCAM_TAG_LATITUDE, &latitude,
MMCAM_TAG_LONGITUDE, &longitude,
MMCAM_TAG_ALTITUDE, &altitude,
geo_info.altitude = altitude *10000;
}
- f = fopen(info->filename, "rb+");
+ f = fopen64(info->filename, "rb+");
if (f == NULL) {
strerror_r(errno, err_msg, 128);
_mmcam_dbg_err("file open failed [%s]", err_msg);
- if (err_name) {
- free(err_name);
- err_name = NULL;
- }
return FALSE;
}
goto fail;
}
- udta_pos = ftell(f);
+ udta_pos = ftello(f);
if (udta_pos < 0) {
goto ftell_fail;
}
}
}
- current_pos = ftell(f);
+ current_pos = ftello(f);
if (current_pos < 0) {
goto ftell_fail;
}
/* find moov container.
update moov container size. */
- if((current_pos = ftell(f))<0)
+ if((current_pos = ftello(f))<0)
goto ftell_fail;
if (_mmcamcorder_find_fourcc(f, MMCAM_FOURCC('m','o','o','v'), TRUE)) {
goto fail;
}
- moov_pos = ftell(f);
+ moov_pos = ftello(f);
if (moov_pos < 0) {
goto ftell_fail;
}
}
fclose(f);
- if (err_name) {
- free(err_name);
- err_name = NULL;
- }
+
return TRUE;
fail:
fclose(f);
- if (err_name) {
- free(err_name);
- err_name = NULL;
- }
return FALSE;
ftell_fail:
_mmcam_dbg_err("ftell() returns negative value.");
fclose(f);
- if (err_name) {
- free(err_name);
- err_name = NULL;
- }
return FALSE;
}