#ifdef MM_PLAYER_DEFAULT_INI
static gboolean __generate_default_ini(void);
#endif
-static void __get_element_list(mm_player_ini_t *ini, gchar *str, int keyword_type);
+static void __get_element_list(mmplayer_ini_t *ini, gchar *str, int keyword_type);
static void __mm_player_ini_check_ini_status(void);
} while (0)
int
-mm_player_ini_load(mm_player_ini_t *ini)
+mm_player_ini_load(mmplayer_ini_t *ini)
{
dictionary *dict = NULL;
gint idx = 0;
}
/* get ini values */
- memset(ini, 0, sizeof(mm_player_ini_t));
+ memset(ini, 0, sizeof(mmplayer_ini_t));
if (dict) {
/* if dict is available */
iniparser_getstring(dict, "general:element exclude keyword", DEFAULT_EXCLUDE_KEYWORD), KEYWORD_EXCLUDE);
__get_element_list(ini,
+ iniparser_getstring(dict, "general:audio offload device type", DEFAULT_A_OFFLOAD_DEVICE_TYPE), KEYWORD_A_OFFLOAD);
+
+ __get_element_list(ini,
iniparser_getstring(dict, "general:unsupported codec keyword", DEFAULT_UNSUPPORTED_CODEC_KEYWORD), KEYWORD_UNSUPPORTED_CODEC);
MMPLAYER_INI_GET_STRING(dict, ini->gst_param[0], "general:gstparam1", DEFAULT_GST_PARAM);
__get_element_list(ini, DEFAULT_CODEC_SW, KEYWORD_A_SW_CODEC);
__get_element_list(ini, DEFAULT_CODEC_SW, KEYWORD_V_SW_CODEC);
+ __get_element_list(ini, DEFAULT_A_OFFLOAD_DEVICE_TYPE, KEYWORD_A_OFFLOAD);
__get_element_list(ini, DEFAULT_EXCLUDE_KEYWORD, KEYWORD_EXCLUDE);
__get_element_list(ini, DEFAULT_UNSUPPORTED_CODEC_KEYWORD, KEYWORD_UNSUPPORTED_CODEC);
LOGD("audio resampler element : %s", ini->audioresampler_element);
LOGD("audiosink element : %s", ini->audiosink_element);
LOGD("audio offload sink element : %s", ini->audio_offload_sink_element);
+ for (idx = 0; ini->audio_offload_device_type[idx][0] != '\0'; idx++)
+ LOGD("audio_offload_device_type [%d] : %s", idx, ini->audio_offload_device_type[idx]);
LOGD("generate dot : %d", ini->generate_dot);
LOGD("use system clock(video only) : %d", ini->use_system_clock);
LOGD("live state change timeout(sec) : %d", ini->live_state_change_timeout);
LOGD("dump_element_keyword [%d] : %s", idx, ini->dump_element_keyword[idx]);
for (idx = 0; ini->unsupported_codec_keyword[idx][0] != '\0'; idx++)
- LOGD("unsupported_codec_keyword [%d] : %s", idx, ini->dump_element_keyword[idx]);
+ LOGD("unsupported_codec_keyword [%d] : %s", idx, ini->unsupported_codec_keyword[idx]);
/* http streaming */
LOGD("httpsrc element : %s", ini->httpsrc_element);
}
int
-mm_player_audio_effect_ini_load(mm_player_ini_t *ini)
+mm_player_audio_effect_ini_load(mmplayer_ini_t *ini)
{
dictionary *dict_audioeffect = NULL;
#endif
static void
-__get_element_list(mm_player_ini_t *ini, gchar *str, int keyword_type)
+__get_element_list(mmplayer_ini_t *ini, gchar *str, int keyword_type)
{
gchar **list = NULL;
gchar **walk = NULL;
gint i = 0;
gchar *strtmp = NULL;
+ gchar (*ini_keyword)[PLAYER_INI_MAX_STRLEN] = {NULL, };
if (!str)
return;
/* trimming. it works inplace */
g_strstrip(strtmp);
-
/* split */
list = g_strsplit(strtmp, ",", 10);
/* copy list */
switch (keyword_type) {
case KEYWORD_EXCLUDE:
- {
- for (walk = list; *walk; walk++) {
- strncpy(ini->exclude_element_keyword[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
- g_strstrip(ini->exclude_element_keyword[i]);
- ini->exclude_element_keyword[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
- i++;
- }
- /* mark last item to NULL */
- ini->exclude_element_keyword[i][0] = '\0';
-
+ ini_keyword = ini->exclude_element_keyword;
break;
- }
case KEYWORD_DUMP:
- {
- for (walk = list; *walk; walk++) {
- strncpy(ini->dump_element_keyword[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
- g_strstrip(ini->dump_element_keyword[i]);
- ini->dump_element_keyword[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
- i++;
- }
- /* mark last item to NULL */
- ini->dump_element_keyword[i][0] = '\0';
-
+ ini_keyword = ini->dump_element_keyword;
break;
- }
case KEYWORD_UNSUPPORTED_CODEC:
- {
- for (walk = list; *walk; walk++) {
- strncpy(ini->unsupported_codec_keyword[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
- g_strstrip(ini->unsupported_codec_keyword[i]);
- ini->unsupported_codec_keyword[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
- i++;
- }
- /* mark last item to NULL */
- ini->unsupported_codec_keyword[i][0] = '\0';
+ ini_keyword = ini->unsupported_codec_keyword;
break;
- }
case KEYWORD_V_SW_CODEC:
- {
- for (walk = list; *walk; walk++) {
- strncpy(ini->videocodec_element_sw[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
- g_strstrip(ini->videocodec_element_sw[i]);
- ini->videocodec_element_sw[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
- i++;
- }
- /* mark last item to NULL */
- ini->videocodec_element_sw[i][0] = '\0';
+ ini_keyword = ini->videocodec_element_sw;
break;
- }
case KEYWORD_A_SW_CODEC:
- {
- for (walk = list; *walk; walk++) {
- strncpy(ini->audiocodec_element_sw[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
- g_strstrip(ini->audiocodec_element_sw[i]);
- ini->audiocodec_element_sw[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
- i++;
- }
- /* mark last item to NULL */
- ini->audiocodec_element_sw[i][0] = '\0';
+ ini_keyword = ini->audiocodec_element_sw;
+ break;
+ case KEYWORD_A_OFFLOAD:
+ ini_keyword = ini->audio_offload_device_type;
break;
- }
-
default:
+ goto EXIT;
break;
}
+ for (walk = list; *walk && ini_keyword[i]; walk++) {
+ strncpy(ini_keyword[i], *walk, (PLAYER_INI_MAX_STRLEN - 1));
+ g_strstrip(ini_keyword[i]);
+ ini_keyword[i][PLAYER_INI_MAX_STRLEN -1] = '\0';
+ i++;
+ }
+
+ /* mark last item to NULL */
+ if (ini_keyword[i]) {
+ ini_keyword[i][0] = '\0';
+ } else {
+ LOGE("too many keyword exist in list (%d)", i);
+ if (i > 0)
+ ini_keyword[i-1][0] = '\0';
+ }
+
+EXIT:
g_strfreev(list);
MMPLAYER_FREEIF(strtmp);
}