Add code to get replay gain information after audio recording
[platform/core/multimedia/libmm-camcorder.git] / src / mm_camcorder_audiorec.c
index f0df3e4..71930c6 100644 (file)
@@ -195,6 +195,11 @@ static int __mmcamcorder_create_audiop_with_encodebin(MMHandleType handle)
        srcpad = gst_element_get_static_pad(sc->encode_element[_MMCAMCORDER_ENCSINK_AENC].gst, "src");
        MMCAMCORDER_ADD_BUFFER_PROBE(srcpad, _MMCAMCORDER_HANDLER_AUDIOREC,
                __mmcamcorder_audio_dataprobe_record, hcamcorder);
+
+       /* for replay gain tag */
+       MMCAMCORDER_ADD_EVENT_PROBE(srcpad, _MMCAMCORDER_HANDLER_AUDIOREC,
+               __mmcamcorder_eventprobe_monitor, hcamcorder);
+
        gst_object_unref(srcpad);
        srcpad = NULL;
 
@@ -433,7 +438,7 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
                                        /* MSDOS_SUPER_MAGIC : 0x4d44 */
                                        if (file_system_type == MSDOS_SUPER_MAGIC &&
                                            (info->max_size == 0 || info->max_size > FAT32_FILE_SYSTEM_MAX_SIZE)) {
-                                               _mmcam_dbg_warn("FAT32 and too large max[%"G_GUINT64_FORMAT"], set max as %"G_GUINT64_FORMAT,
+                                               _mmcam_dbg_warn("FAT32 and too large max[%"G_GUINT64_FORMAT"], set max as %lu",
                                                        info->max_size, FAT32_FILE_SYSTEM_MAX_SIZE);
                                                info->max_size = FAT32_FILE_SYSTEM_MAX_SIZE;
                                        } else {
@@ -509,11 +514,10 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
                if (ret != MM_ERROR_NONE)
                        goto _ERR_CAMCORDER_AUDIO_COMMAND;
 
-               if (info->bMuxing) {
+               if (info->bMuxing)
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", FALSE);
-               } else {
+               else
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AQUE].gst, "empty-buffers", FALSE);
-               }
 
                _mmcamcorder_gst_set_state(handle, sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, GST_STATE_NULL);
 
@@ -661,11 +665,10 @@ int _mmcamcorder_audio_handle_eos(MMHandleType handle)
 
        _mmcamcorder_send_message(handle, &msg);
 
-       if (info->bMuxing) {
+       if (info->bMuxing)
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", FALSE);
-       } else {
+       else
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AQUE].gst, "empty-buffers", FALSE);
-       }
 
        _mmcamcorder_gst_set_state(handle, pipeline, GST_STATE_NULL);
 
@@ -934,11 +937,10 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                        _mmcam_dbg_warn("Free Space : [%" G_GUINT64_FORMAT "], file size : [%" G_GUINT64_FORMAT "]",
                                free_space, audioinfo->filesize);
 
-                       if (audioinfo->bMuxing) {
+                       if (audioinfo->bMuxing)
                                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", TRUE);
-                       } else {
+                       else
                                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AQUE].gst, "empty-buffers", TRUE);
-                       }
 
                        sc->isMaxsizePausing = TRUE;
                        msg.id = MM_MESSAGE_CAMCORDER_NO_FREE_SPACE;
@@ -975,11 +977,10 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                        audioinfo->max_size, audioinfo->filesize, trailer_size);
 
                /* just same as pause status. After blocking two queue, this function will not call again. */
-               if (audioinfo->bMuxing) {
+               if (audioinfo->bMuxing)
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", TRUE);
-               } else {
+               else
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AQUE].gst, "empty-buffers", TRUE);
-               }
 
                msg.id = MM_MESSAGE_CAMCORDER_RECORDING_STATUS;
                msg.param.recording_status.elapsed = (unsigned long long)rec_pipe_time;
@@ -987,7 +988,7 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                msg.param.recording_status.remained_time = 0;
                _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg);
 
-               _mmcam_dbg_warn("Last filesize sent by message : %d", audioinfo->filesize + trailer_size);
+               _mmcam_dbg_warn("Last filesize sent by message : %"G_GUINT64_FORMAT, audioinfo->filesize + trailer_size);
 
                sc->isMaxsizePausing = TRUE;
                msg.id = MM_MESSAGE_CAMCORDER_MAX_SIZE;
@@ -1002,11 +1003,10 @@ static GstPadProbeReturn __mmcamcorder_audio_dataprobe_record(GstPad *pad, GstPa
                _mmcam_dbg_warn("Current time : [%" G_GUINT64_FORMAT "], Maximum time : [%" G_GUINT64_FORMAT "]", \
                        rec_pipe_time, audioinfo->max_time);
 
-               if (audioinfo->bMuxing) {
+               if (audioinfo->bMuxing)
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", TRUE);
-               } else {
+               else
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AQUE].gst, "empty-buffers", TRUE);
-               }
 
                sc->isMaxtimePausing = TRUE;
                msg.id = MM_MESSAGE_CAMCORDER_TIME_LIMIT;