From: Eunhye Choi Date: Wed, 15 Jan 2020 10:00:59 +0000 (+0900) Subject: Merge tizen branch into tizen_5.5_devel branch X-Git-Tag: submit/tizen/20200413.123659~1^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F85%2F222485%2F1;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git Merge tizen branch into tizen_5.5_devel branch Change-Id: I18e233cf60daa33b41d3266f72658ad3f864b80e --- a71e2867e5cc0608ef792f2f33d96f4c07757689 diff --cc src/include/mm_player_ini.h index 43d9eb1,b75744b..d92f132 --- a/src/include/mm_player_ini.h +++ b/src/include/mm_player_ini.h @@@ -172,7 -171,10 +173,11 @@@ typedef struct #define DEFAULT_NUM_OF_VIDEO_BO 10 #define DEFAULT_TIMEOUT_OF_VIDEO_BO 10 /* sec */ #define DEFAULT_AUDIO_OFFLOAD_SINK "" +#define DEFAULT_USE_URIDECODEBIN3 FALSE + #define DEFAULT_SUPPORT_AUDIO_EFFECT FALSE /* with HW audio codec */ + #define DEFAULT_SUPPORT_PCM_EXPORTING FALSE /* with HW audio codec */ + #define DEFAULT_SUPPORT_PITCH_CONTROL FALSE /* with HW audio codec */ + #define DEFAULT_SUPPORT_REPLAYGAIN_CONTROL FALSE /* with HW audio codec */ /* http streaming */ #define DEFAULT_HTTPSRC "souphttpsrc" diff --cc src/include/mm_player_priv.h index b87ba77,25c944c..7d01910 --- a/src/include/mm_player_priv.h +++ b/src/include/mm_player_priv.h @@@ -884,13 -889,8 +890,14 @@@ int _mmplayer_gst_element_add_bucket_to int _mmplayer_gst_element_link_bucket(GList *element_bucket); void _mmplayer_typefind_have_type(GstElement *tf, guint probability, GstCaps *caps, gpointer data); int _mmplayer_parse_profile(const char *uri, void *param, mmplayer_parse_profile_t *data); - + int _mmplayer_set_client_pid(MMHandleType hplayer, int pid); + void _mmplayer_set_reconfigure_state(mmplayer_t *player, gboolean state); +void _mmplayer_gst_decode_pad_removed(GstElement *elem, GstPad *new_pad, gpointer data); +void _mmplayer_gst_decode_no_more_pads(GstElement *elem, gpointer data); +void _mmplayer_gst_decode_drained(GstElement *bin, gpointer data); +void _mmplayer_gst_decode_unknown_type(GstElement *elem, GstPad *pad, GstCaps *caps, gpointer data); +gboolean _mmplayer_gst_decode_autoplug_continue(GstElement *bin, GstPad *pad, GstCaps *caps, gpointer data); +void _mmplayer_pipeline_complete(GstElement *decodebin, gpointer data); #ifdef __cplusplus } diff --cc src/mm_player_ini.c index ecdd1d4,d4b2d72..fb552c0 --- a/src/mm_player_ini.c +++ b/src/mm_player_ini.c @@@ -152,10 -133,17 +133,18 @@@ mm_player_ini_load(mmplayer_ini_t *ini ini->pcm_buffer_size = iniparser_getint(dict, "general:pcm buffer size", DEFAULT_PCM_BUFFER_SIZE); ini->num_of_video_bo = iniparser_getint(dict, "general:video bo max", DEFAULT_NUM_OF_VIDEO_BO); ini->video_bo_timeout = iniparser_getint(dict, "general:video bo timeout", DEFAULT_TIMEOUT_OF_VIDEO_BO); + ini->use_uridecodebin3 = iniparser_getboolean(dict, "general:use uridecodebin3", DEFAULT_USE_URIDECODEBIN3); + ini->support_audio_effect = iniparser_getboolean(dict, "general:support audio effect", DEFAULT_SUPPORT_AUDIO_EFFECT); + ini->support_pcm_exporting = iniparser_getboolean(dict, "general:support pcm exporting", DEFAULT_SUPPORT_PCM_EXPORTING); + ini->support_pitch_control = iniparser_getboolean(dict, "general:use pitch control", DEFAULT_SUPPORT_PITCH_CONTROL); + ini->support_replaygain_control = iniparser_getboolean(dict, "general:use replaygain control", DEFAULT_SUPPORT_REPLAYGAIN_CONTROL); MMPLAYER_INI_GET_STRING(dict, ini->audioresampler_element, "general:audio resampler element", DEFAULT_AUDIORESAMPLER); - MMPLAYER_INI_GET_STRING(dict, ini->audiocodec_element_hw, "general:audio codec element hw", DEFAULT_CODEC_HW); + MMPLAYER_INI_GET_STRING(dict, ini->audiocodec_element_hw, "general:audio codec element hw", DEFAULT_EMPTY_VALUE); + MMPLAYER_INI_GET_STRING(dict, ini->audiocodec_default_type, "general:audio codec default type", DEFAULT_EMPTY_VALUE); + MMPLAYER_INI_GET_STRING(dict, ini->videocodec_element_hw, "general:video codec element hw", DEFAULT_EMPTY_VALUE); + MMPLAYER_INI_GET_STRING(dict, ini->videocodec_default_type, "general:video codec default type", DEFAULT_EMPTY_VALUE); + MMPLAYER_INI_GET_STRING(dict, ini->audiosink_element, "general:audiosink element", DEFAULT_AUDIOSINK); MMPLAYER_INI_GET_STRING(dict, ini->audio_offload_sink_element, "general:audio offload sink element", DEFAULT_AUDIO_OFFLOAD_SINK); @@@ -220,18 -204,25 +205,26 @@@ ini->pcm_buffer_size = DEFAULT_PCM_BUFFER_SIZE; ini->num_of_video_bo = DEFAULT_NUM_OF_VIDEO_BO; ini->video_bo_timeout = DEFAULT_TIMEOUT_OF_VIDEO_BO; + ini->use_uridecodebin3 = DEFAULT_USE_URIDECODEBIN3; + ini->support_audio_effect = DEFAULT_SUPPORT_AUDIO_EFFECT; + ini->support_pcm_exporting = DEFAULT_SUPPORT_PCM_EXPORTING; + ini->support_pitch_control = DEFAULT_SUPPORT_PITCH_CONTROL; + ini->support_replaygain_control = DEFAULT_SUPPORT_REPLAYGAIN_CONTROL; strncpy(ini->audioresampler_element, DEFAULT_AUDIORESAMPLER, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->audiocodec_element_hw, DEFAULT_EMPTY_VALUE, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->audiocodec_default_type, DEFAULT_EMPTY_VALUE, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->videocodec_element_hw, DEFAULT_EMPTY_VALUE, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->videocodec_default_type, DEFAULT_EMPTY_VALUE, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->audiosink_element, DEFAULT_AUDIOSINK, PLAYER_INI_MAX_STRLEN - 1); strncpy(ini->audio_offload_sink_element, DEFAULT_AUDIO_OFFLOAD_SINK, PLAYER_INI_MAX_STRLEN - 1); - strncpy(ini->audiocodec_element_hw, DEFAULT_CODEC_HW, PLAYER_INI_MAX_STRLEN - 1); - strncpy(ini->videocodec_element_hw, DEFAULT_CODEC_HW, PLAYER_INI_MAX_STRLEN - 1); strncpy(ini->videoconverter_element, DEFAULT_VIDEO_CONVERTER, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->videosink_element_overlay, DEFAULT_VIDEOSINK_OVERLAY, PLAYER_INI_MAX_STRLEN - 1); + strncpy(ini->videosink_element_fake, DEFAULT_VIDEOSINK_FAKE, PLAYER_INI_MAX_STRLEN - 1); - __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_EMPTY_VALUE, KEYWORD_A_SW_CODEC); + __get_element_list(ini, DEFAULT_EMPTY_VALUE, KEYWORD_V_SW_CODEC); __get_element_list(ini, DEFAULT_A_OFFLOAD_DEVICE_TYPE, KEYWORD_A_OFFLOAD_DEVICE_TYPE); __get_element_list(ini, DEFAULT_EMPTY_VALUE, KEYWORD_A_OFFLOAD_MEDIA_FORMAT); __get_element_list(ini, DEFAULT_EMPTY_VALUE, KEYWORD_MEDIA_STREAM_IN_FORMAT); diff --cc src/mm_player_priv.c index 866126f,ef7ad05..63465de --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@@ -5932,8 -5978,12 +5971,12 @@@ _mmplayer_gst_make_decodebin(mmplayer_ /* This signal is emitted whenever decodebin finds a new stream. It is emitted before looking for any elements that can handle that stream.*/ _mmplayer_add_signal_connection(player, G_OBJECT(decodebin), MM_PLAYER_SIGNAL_TYPE_AUTOPLUG, "autoplug-continue", - G_CALLBACK(__mmplayer_gst_decode_autoplug_continue), (gpointer)player); + G_CALLBACK(_mmplayer_gst_decode_autoplug_continue), (gpointer)player); + if (player->need_video_dec_sorting || player->need_audio_dec_sorting) + _mmplayer_add_signal_connection(player, G_OBJECT(decodebin), MM_PLAYER_SIGNAL_TYPE_AUTOPLUG, "autoplug-sort", + G_CALLBACK(_mmplayer_gst_decode_autoplug_sort), (gpointer)player); + /* This signal is emitted whenever decodebin finds a new stream. It is emitted before looking for any elements that can handle that stream.*/ _mmplayer_add_signal_connection(player, G_OBJECT(decodebin), MM_PLAYER_SIGNAL_TYPE_AUTOPLUG, "autoplug-select",