[0.6.118] add pts log about pushed data 66/183166/2 accepted/tizen/unified/20180705.172654 submit/tizen/20180703.081619
authorEunhae Choi <eunhae1.choi@samsung.com>
Tue, 3 Jul 2018 05:35:14 +0000 (14:35 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Tue, 3 Jul 2018 05:37:17 +0000 (14:37 +0900)
Change-Id: I94940b10bba13153f5361968cc44375c5231844f

packaging/libmm-player.spec
src/include/mm_player_priv.h
src/include/mm_player_utils.h
src/mm_player_common_priv.c
src/mm_player_es.c
src/mm_player_priv.c

index aed58cd..5de62e0 100644 (file)
@@ -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
index e2069a8..64e879b 100644 (file)
@@ -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);
index 0a6fe9f..35bb9e9 100644 (file)
@@ -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);
index 96aba6e..64c1a29 100644 (file)
@@ -398,6 +398,23 @@ __mmplayer_dump_pipeline_state(mm_player_t* player)
 }
 
 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)
 {
        switch (state) {
index 0474967..e6d6a1b 100644 (file)
@@ -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", &current_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);
        }
 
index 0cd5da1..50ef0be 100755 (executable)
@@ -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", &current_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", &current_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", &current_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", &current_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", &current_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;
        }