1. Remove "label" for mm_camcorder_testsuite 09/44009/1
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 16 Jul 2015 06:53:45 +0000 (15:53 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 16 Jul 2015 06:53:45 +0000 (15:53 +0900)
2. Enable shutter sound when encodebin is used for capture (ex:emulator)

Change-Id: Ia49979a2895741a13adeb13d2c5e45c588b48a02
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
libmm-camcorder.manifest
src/include/mm_camcorder_internal.h
src/mm_camcorder_gstcommon.c
src/mm_camcorder_stillshot.c
src/mm_camcorder_util.c

index 1852d08..692624d 100644 (file)
@@ -3,6 +3,6 @@
                <domain name="_" />
        </request>
        <assign>
-               <filesystem path="/usr/bin/mm_camcorder_testsuite" label="_" exec_label="none" />
+               <filesystem path="/usr/bin/mm_camcorder_testsuite" exec_label="none" />
        </assign>
 </manifest>
index 671eb59..41dcf9e 100644 (file)
@@ -510,6 +510,7 @@ typedef enum {
 typedef enum {
        _MMCAMCORDER_TASK_THREAD_STATE_NONE,
        _MMCAMCORDER_TASK_THREAD_STATE_SOUND_PLAY_START,
+       _MMCAMCORDER_TASK_THREAD_STATE_SOUND_SOLO_PLAY_START,
        _MMCAMCORDER_TASK_THREAD_STATE_ENCODE_PIPE_CREATE,
        _MMCAMCORDER_TASK_THREAD_STATE_EXIT,
 } _MMCamcorderTaskThreadState;
index 845e970..b00f6a9 100644 (file)
@@ -1708,6 +1708,14 @@ static GstPadProbeReturn __mmcamcorder_video_dataprobe_push_buffer_to_record(Gst
                        }
                } else {
                        if(sc->info_video->is_firstframe) {
+                               /* for image capture with encodebin(ex:emulator) */
+                               if (sc->bencbin_capture && sc->info_image->capturing) {
+                                       pthread_mutex_lock(&(hcamcorder->task_thread_lock));
+                                       _mmcam_dbg_log("send signal for sound play");
+                                       hcamcorder->task_thread_state = _MMCAMCORDER_TASK_THREAD_STATE_SOUND_SOLO_PLAY_START;
+                                       pthread_cond_signal(&(hcamcorder->task_thread_cond));
+                                       pthread_mutex_unlock(&(hcamcorder->task_thread_lock));
+                               }
                                sc->info_video->is_firstframe = FALSE;
                                sc->info_video->base_video_ts = GST_BUFFER_PTS(buffer);
                        }
index 4f0e081..fb5fb8c 100644 (file)
@@ -509,6 +509,9 @@ int _mmcamcorder_image_cmd_capture(MMHandleType handle)
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst,"signal-handoffs", TRUE);
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", FALSE);
 
+               /* Prepare for the shutter sound when it's the bencbin mode capture */
+               sc->info_video->is_firstframe = TRUE;
+
                /* set push encoding buffer as TRUE */
                sc->info_video->push_encoding_buffer = PUSH_ENCODING_BUFFER_INIT;
 
index 2f1740e..0bdd3de 100644 (file)
@@ -1770,6 +1770,10 @@ void *_mmcamcorder_util_task_thread_func(void *data)
                        _mmcamcorder_sound_play((MMHandleType)hcamcorder, _MMCAMCORDER_SAMPLE_SOUND_NAME_CAPTURE, FALSE);
                        hcamcorder->task_thread_state = _MMCAMCORDER_TASK_THREAD_STATE_NONE;
                        break;
+               case _MMCAMCORDER_TASK_THREAD_STATE_SOUND_SOLO_PLAY_START:
+                       _mmcamcorder_sound_solo_play((MMHandleType)hcamcorder, _MMCAMCORDER_FILEPATH_CAPTURE_SND, FALSE);
+                       hcamcorder->task_thread_state = _MMCAMCORDER_TASK_THREAD_STATE_NONE;
+                       break;
                case _MMCAMCORDER_TASK_THREAD_STATE_ENCODE_PIPE_CREATE:
                        ret = _mmcamcorder_video_prepare_record((MMHandleType)hcamcorder);