<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>
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;
}
} 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);
}
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;
_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);