summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEunhae Choi <eunhae1.choi@samsung.com>2017-06-01 19:07:41 +0900
committerEunhae Choi <eunhae1.choi@samsung.com>2017-06-01 20:25:19 +0900
commit5f4c8bc0b8fda94a5e60d296062077598b51e676 (patch)
tree1834dd0a01b7285a55d9e894b2abf4b754a039ee
parentc4ccbbffa757eba2c6309107c781bf2b291d9ed1 (diff)
downloadlibmm-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.spec2
-rw-r--r--src/mm_player_common_priv.c60
-rw-r--r--src/mm_player_priv.c5
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",