}
if (200 < cnt) {
SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Wrong request, there's no pcm data");
+ vc_data_clear_tts_data(&tts_data);
return;
}
cnt++;
SLOG(LOG_INFO, TAG_VCC, "[INFO] Finish to wait for new tts data come");
/* resume tts thread */
+ vc_data_clear_tts_data(&tts_data);
continue;
}
- SLOG(LOG_DEBUG, TAG_VCC, "tts streaming callback is called");
- vc_client_use_callback(g_vc);
- callback(tts_data->event, tts_data->data, tts_data->data_size, tts_data->utt_id, user_data);
- vc_client_not_use_callback(g_vc);
+ if (NULL != tts_data) {
+ SLOG(LOG_DEBUG, TAG_VCC, "tts streaming callback is called");
+ vc_client_use_callback(g_vc);
+ callback(tts_data->event, tts_data->data, tts_data->data_size, tts_data->utt_id, user_data);
+ vc_client_not_use_callback(g_vc);
- /* If no tts data and EVENT_FINISH */
- if (0 >= vc_data_get_tts_data_size() && VC_TTS_EVENT_FINISH == tts_data->event) {
- SLOG(LOG_INFO, TAG_VCC, "[INFO] Finish tts");
- break;
+ /* If no tts data and EVENT_FINISH */
+ if (0 >= vc_data_get_tts_data_size() && VC_TTS_EVENT_FINISH == tts_data->event) {
+ SLOG(LOG_INFO, TAG_VCC, "[INFO] Finish tts");
+ free(tts_data);
+ tts_data = NULL;
+ break;
+ }
+ free(tts_data);
+ tts_data = NULL;
}
}
}
pthread_mutex_lock(&g_tts_data_mutex);
- if (!g_tts_data.empty()) {
+ if (NULL != *data) {
SLOG(LOG_DEBUG, TAG_VCC, "[DEBUG] event(%d) data(%p) size(%d)", (*data)->event, (*data)->data, (*data)->data_size);
if (NULL != (*data)->data) {
pthread_mutex_unlock(&g_tts_data_mutex);
return VC_ERROR_NONE;
-}
\ No newline at end of file
+}
* @brief Called when client gets TTS streaming data from vc engine service.
* @since_tizen 4.0
*
+ * @remarks The @a buffer must be released with free() by you when you no longer need it.
+ *
* @param[in] event The TTS event
* @param[in] buffer The TTS streaming data
* @param[in] len The length of the TTS streaming data