summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEunhae Choi <eunhae1.choi@samsung.com>2015-10-01 22:45:39 +0900
committerEunhae Choi <eunhae1.choi@samsung.com>2015-10-05 18:57:49 +0900
commit0d9d6e890b97ab0f7e858a8865f296663cc4455a (patch)
tree403e494aa7d1bd1445fec28962016b33a68924c9
parent1699f55eb41bc05ded5c8ca1baa59e47cde02d27 (diff)
downloadlibmm-player-accepted/tizen/wearable/20151008.004706.tar.gz
libmm-player-accepted/tizen/wearable/20151008.004706.tar.bz2
libmm-player-accepted/tizen/wearable/20151008.004706.zip
Change-Id: I237c3c89c4031e4e4526c6fe6aa9d4c5e73a748e
-rw-r--r--src/include/mm_player.h3
-rw-r--r--src/include/mm_player_es.h1
-rw-r--r--src/include/mm_player_priv.h2
-rw-r--r--src/include/mm_player_utils.h2
-rw-r--r--src/server/mm_player_es.c16
-rw-r--r--src/server/mm_player_priv.c47
6 files changed, 43 insertions, 28 deletions
diff --git a/src/include/mm_player.h b/src/include/mm_player.h
index e638116..f57c998 100644
--- a/src/include/mm_player.h
+++ b/src/include/mm_player.h
@@ -2106,7 +2106,6 @@ int mm_player_submit_packet(MMHandleType player, media_packet_h packet);
*
* @endcode
*/
-
int mm_player_set_video_info (MMHandleType player, media_format_h format);
/**mm_player_set_audio_info
@@ -2118,7 +2117,6 @@ int mm_player_set_video_info (MMHandleType player, media_format_h format);
*
* @endcode
*/
-
int mm_player_set_audio_info (MMHandleType player, media_format_h format);
/**mm_player_set_subtitle_info
@@ -2130,7 +2128,6 @@ int mm_player_set_audio_info (MMHandleType player, media_format_h format);
*
* @endcode
*/
-
int mm_player_set_subtitle_info (MMHandleType player, MMPlayerSubtitleStreamInfo *info);
/**
diff --git a/src/include/mm_player_es.h b/src/include/mm_player_es.h
index 977e6b6..7eb8084 100644
--- a/src/include/mm_player_es.h
+++ b/src/include/mm_player_es.h
@@ -37,7 +37,6 @@ extern "C"
/*=======================================================================================
| GLOBAL FUNCTION PROTOTYPES |
========================================================================================*/
-
int _mmplayer_set_video_info (MMHandleType player, media_format_h format);
int _mmplayer_set_audio_info (MMHandleType player, media_format_h format);
diff --git a/src/include/mm_player_priv.h b/src/include/mm_player_priv.h
index be05b94..fde4df0 100644
--- a/src/include/mm_player_priv.h
+++ b/src/include/mm_player_priv.h
@@ -136,7 +136,7 @@ enum MMPlayerUriType {
MM_PLAYER_URI_TYPE_FILE, /**< Player URI type File */
MM_PLAYER_URI_TYPE_URL, /**< Player URI type URL */
MM_PLAYER_URI_TYPE_BUFF, /**< Player URI type Buffer */
- MM_PLAYER_URI_TYPE_ES_BUFF, /**< Player URI type ES Buffer */
+ MM_PLAYER_URI_TYPE_MS_BUFF, /**< Player URI type Media Stream Buffer */
MM_PLAYER_URI_TYPE_HLS, /**< Player URI type http live streaming */
MM_PLAYER_URI_TYPE_SS, /**< Player URI type Smooth streaming */
MM_PLAYER_URI_TYPE_DASH, /**< Player URI type Mpeg Dash */
diff --git a/src/include/mm_player_utils.h b/src/include/mm_player_utils.h
index ba4250b..f67981d 100644
--- a/src/include/mm_player_utils.h
+++ b/src/include/mm_player_utils.h
@@ -222,7 +222,7 @@ LOGD("-- prev %s, current %s, pending %s, target %s --\n", \
#define MMPLAYER_IS_LIVE_STREAMING(x_player) __is_live_streaming(x_player)
#define MMPLAYER_IS_DASH_STREAMING(x_player) __is_dash_streaming(x_player)
#define MMPLAYER_IS_SMOOTH_STREAMING(x_player) __is_smooth_streaming(x_player)
-#define MMPLAYER_IS_ES_BUFF_SRC(x_player) __is_es_buff_src(x_player)
+#define MMPLAYER_IS_MS_BUFF_SRC(x_player) __is_ms_buff_src(x_player)
#define MMPLAYER_URL_HAS_DASH_SUFFIX(x_player) __has_suffix(x_player, "mpd")
#define MMPLAYER_URL_HAS_HLS_SUFFIX(x_player) __has_suffix(x_player, "m3u8")
diff --git a/src/server/mm_player_es.c b/src/server/mm_player_es.c
index 26294b0..6d88a8e 100644
--- a/src/server/mm_player_es.c
+++ b/src/server/mm_player_es.c
@@ -529,6 +529,18 @@ _mmplayer_video_caps_new (MMHandleType hplayer, MMPlayerVideoStreamInfo * video,
return MM_ERROR_NONE;
}
+static void
+_mmplayer_set_uri_type(mm_player_t *player)
+{
+ MMPLAYER_FENTER ();
+
+ player->profile.uri_type = MM_PLAYER_URI_TYPE_MS_BUFF;
+ player->es_player_push_mode = TRUE;
+
+ MMPLAYER_FLEAVE ();
+ return;
+}
+
int
_mmplayer_set_video_info (MMHandleType hplayer, media_format_h format)
{
@@ -540,6 +552,8 @@ _mmplayer_set_video_info (MMHandleType hplayer, media_format_h format)
MMPLAYER_RETURN_VAL_IF_FAIL (player, MM_ERROR_PLAYER_NOT_INITIALIZED);
+ _mmplayer_set_uri_type(player);
+
ret = _parse_media_format (&video, NULL, format);
if(ret != MM_ERROR_NONE)
return ret;
@@ -601,6 +615,8 @@ _mmplayer_set_audio_info (MMHandleType hplayer, media_format_h format)
MMPLAYER_RETURN_VAL_IF_FAIL (hplayer, MM_ERROR_PLAYER_NOT_INITIALIZED);
+ _mmplayer_set_uri_type(player);
+
ret = _parse_media_format (NULL, &audio, format);
if(ret != MM_ERROR_NONE)
return ret;
diff --git a/src/server/mm_player_priv.c b/src/server/mm_player_priv.c
index 2919d32..8d8bc3c 100644
--- a/src/server/mm_player_priv.c
+++ b/src/server/mm_player_priv.c
@@ -230,7 +230,7 @@ static void __mmplayer_add_new_caps(GstPad* pad, GParamSpec* unused, gpointer da
static void __mmplayer_set_unlinked_mime_type(mm_player_t* player, GstCaps *caps);
/* util */
-static gboolean __is_es_buff_src(mm_player_t* player);
+static gboolean __is_ms_buff_src(mm_player_t* player);
static gboolean __has_suffix(mm_player_t * player, const gchar * suffix);
static int __mmplayer_realize_streaming_ext(mm_player_t* player);
@@ -2872,7 +2872,7 @@ __mmplayer_gst_decode_pad_added (GstElement *elem, GstPad *pad, gpointer data)
gint samplerate = 0;
gint channels = 0;
- if (MMPLAYER_IS_ES_BUFF_SRC(player))
+ if (MMPLAYER_IS_MS_BUFF_SRC(player))
{
__mmplayer_gst_decode_callback (elem, pad, player);
return;
@@ -3661,7 +3661,7 @@ __mmplayer_gst_decode_no_more_pads (GstElement *elem, gpointer data)
}
- if (!MMPLAYER_IS_ES_BUFF_SRC(player))
+ if (!MMPLAYER_IS_MS_BUFF_SRC(player))
{
if (text_selector)
{
@@ -7014,9 +7014,9 @@ __mmplayer_gst_create_pipeline(mm_player_t* player) // @
G_CALLBACK(__gst_appsrc_enough_data), player);
}
break;
- case MM_PLAYER_URI_TYPE_ES_BUFF:
+ case MM_PLAYER_URI_TYPE_MS_BUFF:
{
- LOGD("es buff src is selected\n");
+ LOGD("MS buff src is selected\n");
if (player->v_stream_caps)
{
@@ -7240,7 +7240,7 @@ __mmplayer_gst_create_pipeline(mm_player_t* player) // @
NULL,
0);
}
- if (MMPLAYER_IS_ES_BUFF_SRC(player))
+ if (MMPLAYER_IS_MS_BUFF_SRC(player))
{
if (player->v_stream_caps)
{
@@ -7307,7 +7307,7 @@ __mmplayer_gst_create_pipeline(mm_player_t* player) // @
/* create autoplugging element if src element is not a rtsp src */
if ((player->profile.uri_type != MM_PLAYER_URI_TYPE_URL_RTSP) &&
(player->profile.uri_type != MM_PLAYER_URI_TYPE_URL_WFD) &&
- (player->profile.uri_type != MM_PLAYER_URI_TYPE_ES_BUFF))
+ (player->profile.uri_type != MM_PLAYER_URI_TYPE_MS_BUFF))
{
element = NULL;
enum MainElementID elemId = MMPLAYER_M_NUM;
@@ -7387,7 +7387,7 @@ __mmplayer_gst_create_pipeline(mm_player_t* player) // @
/* now we have completed mainbin. take it */
player->pipeline->mainbin = mainbin;
- if (MMPLAYER_IS_ES_BUFF_SRC(player))
+ if (MMPLAYER_IS_MS_BUFF_SRC(player))
{
GstPad *srcpad = NULL;
@@ -8167,7 +8167,7 @@ __gst_set_position(mm_player_t* player, int format, unsigned long position, gboo
&& MMPLAYER_CURRENT_STATE(player) != MM_PLAYER_STATE_PAUSED )
goto PENDING;
- if( !MMPLAYER_IS_ES_BUFF_SRC(player) )
+ if( !MMPLAYER_IS_MS_BUFF_SRC(player) )
{
/* check duration */
/* NOTE : duration cannot be zero except live streaming.
@@ -8209,7 +8209,7 @@ __gst_set_position(mm_player_t* player, int format, unsigned long position, gboo
{
case MM_PLAYER_POS_FORMAT_TIME:
{
- if( !MMPLAYER_IS_ES_BUFF_SRC(player) )
+ if( !MMPLAYER_IS_MS_BUFF_SRC(player) )
{
/* check position is valid or not */
if ( position > dur_msec )
@@ -8635,7 +8635,7 @@ static int __mmfplayer_parse_profile(const char *uri, void *param, MMPlayerParse
if (strlen(path))
{
strcpy(data->uri, uri);
- data->uri_type = MM_PLAYER_URI_TYPE_ES_BUFF;
+ data->uri_type = MM_PLAYER_URI_TYPE_MS_BUFF;
ret = MM_ERROR_NONE;
}
}
@@ -9771,12 +9771,15 @@ _mmplayer_realize(MMHandleType hplayer) // @
mm_attrs_get_string_by_name(attrs, "profile_uri", &uri);
mm_attrs_get_data_by_name(attrs, "profile_user_param", &param);
- ret = __mmfplayer_parse_profile((const char*)uri, param, &player->profile);
-
- if (ret != MM_ERROR_NONE)
+ if (player->profile.uri_type == MM_PLAYER_URI_TYPE_NONE)
{
- LOGE("failed to parse profile\n");
- return ret;
+ ret = __mmfplayer_parse_profile((const char*)uri, param, &player->profile);
+
+ if (ret != MM_ERROR_NONE)
+ {
+ LOGE("failed to parse profile\n");
+ return ret;
+ }
}
/* FIXIT : we can use thouse in player->profile directly */
@@ -9787,7 +9790,7 @@ _mmplayer_realize(MMHandleType hplayer) // @
player->mem_buf.offset = 0;
}
- if (player->profile.uri_type == MM_PLAYER_URI_TYPE_ES_BUFF)
+ if (uri && (strstr(uri, "es_buff://")))
{
if (strstr(uri, "es_buff://push_mode"))
{
@@ -11531,7 +11534,7 @@ __mmplayer_try_to_plug(mm_player_t* player, GstPad *pad, const GstCaps *caps) //
klass = gst_element_factory_get_metadata (GST_ELEMENT_FACTORY(factory), GST_ELEMENT_METADATA_KLASS);
/*parsers are not required in case of external feeder*/
- if (g_strrstr(klass, "Codec/Parser") && MMPLAYER_IS_ES_BUFF_SRC(player))
+ if (g_strrstr(klass, "Codec/Parser") && MMPLAYER_IS_MS_BUFF_SRC(player))
continue;
/* NOTE : msl don't need to use image plugins.
@@ -12772,7 +12775,7 @@ GstCaps* caps, GstElementFactory* factory, gpointer data)
goto DONE;
}
- if ((MMPLAYER_IS_ES_BUFF_SRC(player)) &&
+ if ((MMPLAYER_IS_MS_BUFF_SRC(player)) &&
(g_strrstr(klass, "Codec/Demuxer") || (g_strrstr(klass, "Codec/Parser"))))
{
// TO CHECK : subtitle if needed, add subparse exception.
@@ -14706,7 +14709,7 @@ __gst_send_event_to_sink( mm_player_t* player, GstEvent* event )
}
}
- if( MMPLAYER_IS_ES_BUFF_SRC(player))
+ if( MMPLAYER_IS_MS_BUFF_SRC(player))
{
sinks = g_list_next (sinks);
continue;
@@ -15917,11 +15920,11 @@ int _mmplayer_get_subtitle_silent (MMHandleType hplayer, int* silent)
}
gboolean
-__is_es_buff_src( mm_player_t* player )
+__is_ms_buff_src( mm_player_t* player )
{
MMPLAYER_RETURN_VAL_IF_FAIL ( player, FALSE );
- return ( player->profile.uri_type == MM_PLAYER_URI_TYPE_ES_BUFF) ? TRUE : FALSE;
+ return ( player->profile.uri_type == MM_PLAYER_URI_TYPE_MS_BUFF) ? TRUE : FALSE;
}
gboolean