Update code to check free space
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder_audiorec.c
index 4bb2253..fdf2a64 100644 (file)
@@ -351,7 +351,6 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
        int err = 0;
        int size=0;
        guint64 free_space = 0;
-       guint64 free_space_exceptsystem = 0;
        char *dir_name = NULL;
        char *err_attr_name = NULL;
 
@@ -439,18 +438,9 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
                        /* 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 */
@@ -666,7 +656,7 @@ int _mmcamcorder_audio_handle_eos(MMHandleType handle)
        report->recording_filename = strdup(info->filename);
        msg.param.data= report;
 
-       _mmcamcroder_send_message(handle, &msg);
+       _mmcamcorder_send_message(handle, &msg);
 
        if (info->bMuxing) {
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", FALSE);
@@ -789,7 +779,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_voicerecorder(GstPad *pad
 
        msg.id = MM_MESSAGE_CAMCORDER_CURRENT_VOLUME;
        msg.param.rec_volume_dB = curdcb;
-       _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+       _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
        /* CALL audio stream callback */
        if ((hcamcorder->astream_cb) && buffer && mapinfo.data && mapinfo.size > 0)
@@ -892,10 +882,16 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
        /* 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");*/
@@ -912,7 +908,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                                } else {
                                        msg.param.code = MM_ERROR_FILE_READ;
                                }
-                               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+                               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
                        } else {
                                sc->ferror_count++;
                        }
@@ -934,7 +930,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
 
                                sc->isMaxsizePausing = TRUE;
                                msg.id = MM_MESSAGE_CAMCORDER_NO_FREE_SPACE;
-                               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+                               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
                                return GST_PAD_PROBE_DROP; /* skip this buffer */
                        }
@@ -979,13 +975,13 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                msg.param.recording_status.elapsed = (unsigned long long)rec_pipe_time;
                msg.param.recording_status.filesize = (unsigned long long)((audioinfo->filesize + trailer_size) >> 10);
                msg.param.recording_status.remained_time = 0;
-               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
                _mmcam_dbg_warn("Last filesize sent by message : %d", audioinfo->filesize + trailer_size);
 
                sc->isMaxsizePausing = TRUE;
                msg.id = MM_MESSAGE_CAMCORDER_MAX_SIZE;
-               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
                /* skip this buffer */
                return GST_PAD_PROBE_DROP;
@@ -1004,7 +1000,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
 
                sc->isMaxtimePausing = TRUE;
                msg.id = MM_MESSAGE_CAMCORDER_TIME_LIMIT;
-               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
                /* skip this buffer */
                return GST_PAD_PROBE_DROP;
@@ -1018,7 +1014,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                msg.param.recording_status.elapsed = (unsigned long long)rec_pipe_time;
                msg.param.recording_status.filesize = (unsigned long long)((audioinfo->filesize + trailer_size) >> 10);
                msg.param.recording_status.remained_time = remained_time;
-               _mmcamcroder_send_message((MMHandleType)hcamcorder, &msg);
+               _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
                return GST_PAD_PROBE_OK;
        } else {
@@ -1076,7 +1072,7 @@ static gboolean __mmcamcorder_audio_add_metadata_info_m4a(MMHandleType handle)
                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);
@@ -1100,7 +1096,7 @@ static gboolean __mmcamcorder_audio_add_metadata_info_m4a(MMHandleType handle)
                        goto fail;
                }
 
-               udta_pos = ftell(f);
+               udta_pos = ftello(f);
                if (udta_pos < 0) {
                        goto ftell_fail;
                }
@@ -1126,7 +1122,7 @@ static gboolean __mmcamcorder_audio_add_metadata_info_m4a(MMHandleType handle)
                        }
                }
 
-               current_pos = ftell(f);
+               current_pos = ftello(f);
                if (current_pos < 0) {
                        goto ftell_fail;
                }
@@ -1147,7 +1143,7 @@ static gboolean __mmcamcorder_audio_add_metadata_info_m4a(MMHandleType handle)
 
        /* 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)) {
@@ -1157,7 +1153,7 @@ static gboolean __mmcamcorder_audio_add_metadata_info_m4a(MMHandleType handle)
                        goto fail;
                }
 
-               moov_pos = ftell(f);
+               moov_pos = ftello(f);
                if (moov_pos < 0) {
                        goto ftell_fail;
                }