diff options
author | Eunhae Choi <eunhae1.choi@samsung.com> | 2017-06-01 19:07:41 +0900 |
---|---|---|
committer | Eunhae Choi <eunhae1.choi@samsung.com> | 2017-06-01 20:25:19 +0900 |
commit | 5f4c8bc0b8fda94a5e60d296062077598b51e676 (patch) | |
tree | 1834dd0a01b7285a55d9e894b2abf4b754a039ee | |
parent | c4ccbbffa757eba2c6309107c781bf2b291d9ed1 (diff) | |
download | libmm-player-5f4c8bc0b8fda94a5e60d296062077598b51e676.tar.gz libmm-player-5f4c8bc0b8fda94a5e60d296062077598b51e676.tar.bz2 libmm-player-5f4c8bc0b8fda94a5e60d296062077598b51e676.zip |
[0.6.51] add subtitle error posting
Change-Id: Ie68bf235b2c8277758871b57fb745afc5eb4bc28
-rw-r--r-- | packaging/libmm-player.spec | 2 | ||||
-rw-r--r-- | src/mm_player_common_priv.c | 60 | ||||
-rw-r--r-- | src/mm_player_priv.c | 5 |
3 files changed, 37 insertions, 30 deletions
diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index d1c7753..a1ea7fe 100644 --- a/packaging/libmm-player.spec +++ b/packaging/libmm-player.spec @@ -1,6 +1,6 @@ Name: libmm-player Summary: Multimedia Framework Player Library -Version: 0.6.50 +Version: 0.6.51 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_player_common_priv.c b/src/mm_player_common_priv.c index 26f83cf..6e1fede 100644 --- a/src/mm_player_common_priv.c +++ b/src/mm_player_common_priv.c @@ -802,6 +802,9 @@ __gst_transform_gsterror(mm_player_t* player, GstMessage * message, GError* erro MMPLAYER_RETURN_VAL_IF_FAIL(message, MM_ERROR_INVALID_ARGUMENT); MMPLAYER_RETURN_VAL_IF_FAIL(message->src, MM_ERROR_INVALID_ARGUMENT); MMPLAYER_RETURN_VAL_IF_FAIL(error, MM_ERROR_INVALID_ARGUMENT); + MMPLAYER_RETURN_VAL_IF_FAIL(player && + player->pipeline && + player->pipeline->mainbin, MM_ERROR_PLAYER_NOT_INITIALIZED); src_element = GST_ELEMENT_CAST(message->src); if (!src_element) @@ -822,39 +825,36 @@ __gst_transform_gsterror(mm_player_t* player, GstMessage * message, GError* erro LOGD("error code=%d, msg=%s, src element=%s, class=%s\n", error->code, error->message, src_element_name, klass); - //<- - { - if (player->pipeline->mainbin[MMPLAYER_M_A_INPUT_SELECTOR].gst) { - int msg_src_pos = 0; - gint active_pad_index = player->selector[MM_PLAYER_TRACK_TYPE_AUDIO].active_pad_index; - LOGD("current active pad index -%d", active_pad_index); - - if (src_element_name) { - int idx = 0; - - if (player->audio_decoders) { - GList *adec = player->audio_decoders; - for (; adec ; adec = g_list_next(adec)) { - gchar *name = adec->data; - - LOGD("found audio decoder name = %s", name); - if (g_strrstr(name, src_element_name)) { - msg_src_pos = idx; - break; - } - idx++; + /* check whether the error is posted from not-activated track or not */ + if (player->pipeline->mainbin[MMPLAYER_M_A_INPUT_SELECTOR].gst) { + int msg_src_pos = 0; + gint active_pad_index = player->selector[MM_PLAYER_TRACK_TYPE_AUDIO].active_pad_index; + LOGD("current active pad index -%d", active_pad_index); + + if (src_element_name) { + int idx = 0; + + if (player->audio_decoders) { + GList *adec = player->audio_decoders; + for (; adec ; adec = g_list_next(adec)) { + gchar *name = adec->data; + + LOGD("found audio decoder name = %s", name); + if (g_strrstr(name, src_element_name)) { + msg_src_pos = idx; + break; } + idx++; } - LOGD("active pad = %d, error src index = %d", active_pad_index, msg_src_pos); } + LOGD("active pad = %d, error src index = %d", active_pad_index, msg_src_pos); + } - if (active_pad_index != msg_src_pos) { - LOGD("skip error because error is posted from no activated track"); - return MM_ERROR_NONE; - } + if (active_pad_index != msg_src_pos) { + LOGD("skip error because error is posted from no activated track"); + return MM_ERROR_NONE; } } - //-> check!! if needed or not switch (error->code) { case GST_STREAM_ERROR_DECODE: @@ -882,7 +882,13 @@ __gst_transform_gsterror(mm_player_t* player, GstMessage * message, GError* erro case GST_STREAM_ERROR_CODEC_NOT_FOUND: case GST_STREAM_ERROR_TYPE_NOT_FOUND: case GST_STREAM_ERROR_WRONG_TYPE: + { + if (src_element == player->pipeline->mainbin[MMPLAYER_M_SUBPARSE].gst) { + LOGE("Not supported subtitle."); + return MM_ERROR_PLAYER_NOT_SUPPORTED_SUBTITLE; + } return MM_ERROR_PLAYER_NOT_SUPPORTED_FORMAT; + } case GST_STREAM_ERROR_FAILED: { diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 68e4118..a79d4ff 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -10892,7 +10892,7 @@ __mmplayer_check_not_supported_codec(mm_player_t* player, const gchar* factory_c if (!g_strrstr(factory_class, "Demuxer")) { if ((g_str_has_prefix(mime, "video")) || (g_str_has_prefix(mime, "image"))) { - LOGD("can support codec=%d, vdec_linked=%d, adec_linked=%d\n", + LOGD("can support codec=0x%X, vdec_linked=%d, adec_linked=%d\n", player->can_support_codec, player->videodec_linked, player->audiodec_linked); /* check that clip have multi tracks or not */ @@ -13540,8 +13540,9 @@ __gst_send_event_to_sink(mm_player_t* player, GstEvent* event) if (MMPLAYER_IS_MS_BUFF_SRC(player)) { sinks = g_list_next(sinks); continue; - } else + } else { break; + } } LOGD("sending event[%s] to sink element [%s] failed. try with next one.\n", |