From: Eunhae Choi Date: Tue, 3 Jul 2018 05:35:14 +0000 (+0900) Subject: [0.6.118] add pts log about pushed data X-Git-Tag: submit/tizen/20180703.081619^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f471e11bff88a521c2a0adead49eed2d629a083;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git [0.6.118] add pts log about pushed data Change-Id: I94940b10bba13153f5361968cc44375c5231844f --- diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index aed58cd..5de62e0 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.117 +Version: 0.6.118 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/include/mm_player_priv.h b/src/include/mm_player_priv.h index e2069a8..64e879b 100644 --- a/src/include/mm_player_priv.h +++ b/src/include/mm_player_priv.h @@ -941,7 +941,9 @@ void __mmplayer_remove_g_source_from_context(GMainContext *context, guint source void _mmplayer_bus_msg_thread_destroy(MMHandleType hplayer); /* util */ -const gchar * __get_state_name(int state); +const gchar* __get_state_name(int state); +const gchar* __get_stream_type_name(int type); + gboolean __mmplayer_can_do_interrupt(mm_player_t *player); gboolean __is_streaming(mm_player_t* player); gboolean __is_rtsp_streaming(mm_player_t* player); diff --git a/src/include/mm_player_utils.h b/src/include/mm_player_utils.h index 0a6fe9f..35bb9e9 100644 --- a/src/include/mm_player_utils.h +++ b/src/include/mm_player_utils.h @@ -255,6 +255,8 @@ LOGD("-- prev %s, current %s, pending %s, target %s --\n", \ #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") +#define MMPLAYER_STREAM_TYPE_GET_NAME(type) __get_stream_type_name(type) + bool util_is_sdp_file(const char *path); int util_exist_file_path(const char *file_path); char** util_get_cookie_list(const char *cookies); diff --git a/src/mm_player_common_priv.c b/src/mm_player_common_priv.c index 96aba6e..64c1a29 100644 --- a/src/mm_player_common_priv.c +++ b/src/mm_player_common_priv.c @@ -397,6 +397,23 @@ __mmplayer_dump_pipeline_state(mm_player_t* player) return FALSE; } +const gchar * +__get_stream_type_name(int type) +{ + switch (type) { + case MM_PLAYER_STREAM_TYPE_AUDIO: + return "AUDIO"; + case MM_PLAYER_STREAM_TYPE_VIDEO: + return "VIDEO"; + case MM_PLAYER_STREAM_TYPE_TEXT: + return "TEXT"; + case MM_PLAYER_STREAM_TYPE_DEFAULT: /* fall through */ + case MM_PLAYER_STREAM_TYPE_MAX: /* fall through */ + default: + return "INVAID"; + } +} + const gchar * __get_state_name(int state) { diff --git a/src/mm_player_es.c b/src/mm_player_es.c index 0474967..e6d6a1b 100644 --- a/src/mm_player_es.c +++ b/src/mm_player_es.c @@ -201,16 +201,16 @@ _mmplayer_set_media_stream_buffer_status_cb(MMHandleType hplayer, if (player->media_stream_buffer_status_cb[type]) { if (!callback) - LOGD("[type:%d] will be clear.\n", type); + LOGD("[type:%s] will be clear", MMPLAYER_STREAM_TYPE_GET_NAME(type)); else - LOGD("[type:%d] will be overwritten.\n", type); + LOGD("[type:%s] will be overwritten", MMPLAYER_STREAM_TYPE_GET_NAME(type)); } player->media_stream_buffer_status_cb[type] = callback; player->buffer_cb_user_param[type] = user_param; - LOGD("player handle %p, type %d, callback %p\n", player, type, - player->media_stream_buffer_status_cb[type]); + LOGD("player handle %p, type %s, callback %p", + player, MMPLAYER_STREAM_TYPE_GET_NAME(type), player->media_stream_buffer_status_cb[type]); MMPLAYER_MEDIA_STREAM_CALLBACK_UNLOCK(player); MMPLAYER_FLEAVE(); @@ -234,16 +234,16 @@ _mmplayer_set_media_stream_seek_data_cb(MMHandleType hplayer, if (player->media_stream_seek_data_cb[type]) { if (!callback) - LOGD("[type:%d] will be clear.\n", type); + LOGD("[type:%s] will be clear", MMPLAYER_STREAM_TYPE_GET_NAME(type)); else - LOGD("[type:%d] will be overwritten.\n", type); + LOGD("[type:%s] will be overwritten", MMPLAYER_STREAM_TYPE_GET_NAME(type)); } player->media_stream_seek_data_cb[type] = callback; player->seek_cb_user_param[type] = user_param; - LOGD("player handle %p, type %d, callback %p\n", player, type, - player->media_stream_seek_data_cb[type]); + LOGD("player handle %p, type %s, callback %p", + player, MMPLAYER_STREAM_TYPE_GET_NAME(type), player->media_stream_seek_data_cb[type]); MMPLAYER_MEDIA_STREAM_CALLBACK_UNLOCK(player); MMPLAYER_FLEAVE(); @@ -292,10 +292,10 @@ _mmplayer_set_media_stream_max_size(MMHandleType hplayer, MMPlayerStreamType typ return MM_ERROR_INVALID_ARGUMENT; } - LOGD("type %d, max_size %llu\n", type, max_size); + LOGD("type:%s, max_size %llu", MMPLAYER_STREAM_TYPE_GET_NAME(type), max_size); if ((element = __mmplayer_get_source_element(player, type))) { - LOGD("update max_size of %s\n", GST_ELEMENT_NAME(element)); + LOGD("update max_size of %s", GST_ELEMENT_NAME(element)); g_object_set(G_OBJECT(element), "max-bytes", max_size, NULL); } @@ -337,10 +337,10 @@ _mmplayer_set_media_stream_min_percent(MMHandleType hplayer, MMPlayerStreamType return MM_ERROR_INVALID_ARGUMENT; } - LOGD("type %d, min_per %u\n", type, min_percent); + LOGD("type:%s, min_per %u", MMPLAYER_STREAM_TYPE_GET_NAME(type), min_percent); if ((element = __mmplayer_get_source_element(player, type))) { - LOGD("update min_per of %s\n", GST_ELEMENT_NAME(element)); + LOGD("update min_per of %s", GST_ELEMENT_NAME(element)); g_object_set(G_OBJECT(element), "min-percent", min_percent, NULL); } @@ -383,14 +383,15 @@ __mmplayer_check_buffer_level(mm_player_t *player, GstElement* element, MMPlayer g_object_get(G_OBJECT(element), "max-bytes", &max_bytes, NULL); if (max_bytes == 0) { - LOGW("buffer max size is zero."); + LOGW("buffer max size is zero"); return MM_ERROR_NONE; } g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); if (max_bytes <= current_level_bytes) { - LOGE("no available buffer space. type %d, max %"G_GUINT64_FORMAT", curr %"G_GUINT64_FORMAT, type, max_bytes, current_level_bytes); + LOGE("no available buffer space, type: %s, max %"G_GUINT64_FORMAT", curr %"G_GUINT64_FORMAT, + MMPLAYER_STREAM_TYPE_GET_NAME(type), max_bytes, current_level_bytes); return MM_ERROR_PLAYER_BUFFER_SPACE; } @@ -403,8 +404,8 @@ __mmplayer_check_buffer_level(mm_player_t *player, GstElement* element, MMPlayer current_level_per = (guint)(gst_util_guint64_to_gdouble(current_level_bytes)/gst_util_guint64_to_gdouble(max_bytes)*100); - LOGD("type %d, min_per %u, curr_per %u max %"G_GUINT64_FORMAT" cur %"G_GUINT64_FORMAT, - type, player->media_stream_buffer_min_percent[type], + LOGD("type: %s, min_per %u, curr_per %u max %"G_GUINT64_FORMAT" cur %"G_GUINT64_FORMAT, + MMPLAYER_STREAM_TYPE_GET_NAME(type), player->media_stream_buffer_min_percent[type], current_level_per, player->media_stream_buffer_max_size[type], current_level_bytes); @@ -543,7 +544,15 @@ _mmplayer_submit_packet(MMHandleType hplayer, media_packet_h packet) goto ERROR; } + if (MMPLAYER_CURRENT_STATE(player) != MM_PLAYER_STATE_PLAYING) { + /* the pushed pts should be lager than current position if it is not in playing state. */ + LOGD("type:%s, curr pos: %"G_GINT64_FORMAT", pushed pts:%"G_GINT64_FORMAT", size:%"G_GUINT64_FORMAT, + MMPLAYER_STREAM_TYPE_GET_NAME(streamtype), player->last_position, (GstClockTime)pts, (guint64)size); + } + gst_app_src_push_buffer(GST_APP_SRC(element), _buffer); + } else { + LOGW("There is no data to push : buf %p, size %"G_GUINT64_FORMAT, buf, (guint64)size); } /* check eos */ @@ -553,7 +562,7 @@ _mmplayer_submit_packet(MMHandleType hplayer, media_packet_h packet) } if (is_eos) { - LOGW("we got eos of stream type(%d)", streamtype); + LOGW("we got eos of stream type(%s)", MMPLAYER_STREAM_TYPE_GET_NAME(streamtype)); g_signal_emit_by_name(element, "end-of-stream", &ret); } diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 0cd5da1..50ef0be 100755 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -13231,7 +13231,7 @@ __gst_appsrc_feed_audio_data(GstElement *element, guint size, gpointer user_data g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); - LOGI("app-src: feed audio(%llu)\n", current_level_bytes); + LOGI("app-src: feed audio(%llu)", current_level_bytes); MMPLAYER_MEDIA_STREAM_CALLBACK_LOCK(player); if (player->media_stream_buffer_status_cb[type]) @@ -13251,7 +13251,7 @@ __gst_appsrc_feed_video_data(GstElement *element, guint size, gpointer user_data g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); - LOGI("app-src: feed video(%llu)\n", current_level_bytes); + LOGI("app-src: feed video(%llu)", current_level_bytes); MMPLAYER_MEDIA_STREAM_CALLBACK_LOCK(player); if (player->media_stream_buffer_status_cb[type]) @@ -13268,7 +13268,7 @@ __gst_appsrc_feed_subtitle_data(GstElement *element, guint size, gpointer user_d MMPLAYER_RETURN_IF_FAIL(player); - LOGI("app-src: feed subtitle\n"); + LOGI("app-src: feed subtitle"); g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); @@ -13288,7 +13288,7 @@ __gst_appsrc_enough_audio_data(GstElement *element, gpointer user_data) MMPLAYER_RETURN_IF_FAIL(player); - LOGI("app-src: audio buffer is full.\n"); + LOGI("app-src: audio buffer is full"); g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); @@ -13309,7 +13309,7 @@ __gst_appsrc_enough_video_data(GstElement *element, gpointer user_data) MMPLAYER_RETURN_IF_FAIL(player); - LOGI("app-src: video buffer is full.\n"); + LOGI("app-src: video buffer is full"); g_object_get(G_OBJECT(element), "current-level-bytes", ¤t_level_bytes, NULL); @@ -13328,7 +13328,7 @@ __gst_seek_audio_data(GstElement * appsrc, guint64 position, gpointer user_data) MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE); - LOGD("app-src: seek audio data %llu\n", position); + LOGD("app-src: seek audio data %llu", position); MMPLAYER_MEDIA_STREAM_CALLBACK_LOCK(player); if (player->media_stream_seek_data_cb[type]) @@ -13346,7 +13346,7 @@ __gst_seek_video_data(GstElement * appsrc, guint64 position, gpointer user_data) MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE); - LOGD("app-src: seek video data %llu\n", position); + LOGD("app-src: seek video data %llu", position); MMPLAYER_MEDIA_STREAM_CALLBACK_LOCK(player); if (player->media_stream_seek_data_cb[type]) player->media_stream_seek_data_cb[type](type, position, player->seek_cb_user_param[type]); @@ -13363,7 +13363,7 @@ __gst_seek_subtitle_data(GstElement * appsrc, guint64 position, gpointer user_da MMPLAYER_RETURN_VAL_IF_FAIL(player, FALSE); - LOGD("app-src: seek subtitle data\n"); + LOGD("app-src: seek subtitle data"); MMPLAYER_MEDIA_STREAM_CALLBACK_LOCK(player); if (player->media_stream_seek_data_cb[type]) @@ -13662,7 +13662,7 @@ int _mmplayer_set_codec_type(MMHandleType hplayer, MMPlayerStreamType stream_typ break; default: - LOGE("Invalid stream type %d", stream_type); + LOGE("Invalid stream type %s", MMPLAYER_STREAM_TYPE_GET_NAME(stream_type)); return MM_ERROR_COMMON_INVALID_ARGUMENT; break; }