[0.2.100] use attr for buffering criteria 52/198752/3 accepted/tizen/unified/20190131.061537 submit/tizen/20190130.081127
authorEunhae Choi <eunhae1.choi@samsung.com>
Tue, 29 Jan 2019 07:00:35 +0000 (16:00 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Wed, 30 Jan 2019 03:48:53 +0000 (12:48 +0900)
Change-Id: I3ea637d1e8b7377f230e0aca53b979324dd9f2e5

legacy/include/legacy_player.h
legacy/src/legacy_player.c
muse/src/muse_player.c
packaging/mmsvc-player.spec

index 3a1e30c..7351451 100644 (file)
@@ -2096,8 +2096,8 @@ int legacy_player_set_audio_only(player_h player, bool audio_only);
 int legacy_player_is_audio_only(player_h player, bool *paudio_only);
 
 /* Set/Get the streaming buffering time */
-int legacy_player_set_streaming_buffering_time(player_h player, int buffer_ms, int rebuffer_ms);
-int legacy_player_get_streaming_buffering_time(player_h player, int *buffer_ms, int *rebuffer_ms);
+int legacy_player_set_streaming_buffering_time(player_h player, int prebuffer_ms, int rebuffer_ms);
+int legacy_player_get_streaming_buffering_time(player_h player, int *prebuffer_ms, int *rebuffer_ms);
 
 /* 360 video display */
 int legacy_player_360_is_content_spherical(player_h player, bool *is_spherical);
index 7c69e18..53f6fc7 100644 (file)
@@ -30,6 +30,8 @@
 #include "legacy_player.h"
 #include "legacy_player_private.h"
 
+#define MIN_BUFFERING_TIME_MS 0   /* use platform default value */
+
 #define __RELEASEIF_PREPARE_THREAD(thread_id) \
        do { \
                if (thread_id) { \
@@ -2662,37 +2664,49 @@ int legacy_player_is_audio_only(player_h player, bool *paudio_only)
        return PLAYER_ERROR_NONE;
 }
 
-int legacy_player_set_streaming_buffering_time(player_h player, int buffer_ms, int rebuffer_ms)
+int legacy_player_set_streaming_buffering_time(player_h player, int prebuffer_ms, int rebuffer_ms)
 {
        player_s *handle = (player_s *)player;
        int ret = MM_ERROR_NONE;
        PLAYER_INSTANCE_CHECK(player);
        PLAYER_STATE_CHECK(handle, PLAYER_STATE_IDLE);
 
-       ret = mm_player_set_streaming_buffering_time(handle->mm_handle, buffer_ms, rebuffer_ms);
+       LOGD("set buffering time : %d ms, %d ms", prebuffer_ms, rebuffer_ms);
+
+       /* set streaming buffering time */
+       if (prebuffer_ms >= MIN_BUFFERING_TIME_MS)
+               ret = mm_player_set_attribute(handle->mm_handle, NULL, MM_PLAYER_PREBUFFER_MS, prebuffer_ms, (char *)NULL);
+
+       if ((ret == MM_ERROR_NONE) && (rebuffer_ms >= MIN_BUFFERING_TIME_MS))
+               ret = mm_player_set_attribute(handle->mm_handle, NULL, MM_PLAYER_REBUFFER_MS, rebuffer_ms, (char *)NULL);
+
        if (ret != MM_ERROR_NONE)
                return __player_convert_error_code(ret, (char *)__FUNCTION__);
 
        return PLAYER_ERROR_NONE;
 }
 
-int legacy_player_get_streaming_buffering_time(player_h player, int *buffer_ms, int *rebuffer_ms)
+int legacy_player_get_streaming_buffering_time(player_h player, int *prebuffer_ms, int *rebuffer_ms)
 {
        player_s *handle = (player_s *)player;
        int ret = MM_ERROR_NONE;
        PLAYER_INSTANCE_CHECK(player);
-       PLAYER_NULL_ARG_CHECK(buffer_ms);
-       PLAYER_NULL_ARG_CHECK(rebuffer_ms);
+       PLAYER_NULL_ARG_CHECK(prebuffer_ms && rebuffer_ms);
 
        if (!__player_state_validate(handle, PLAYER_STATE_IDLE)) {
                LOGE("PLAYER_ERROR_INVALID_STATE : current state - %d", handle->state);
                return PLAYER_ERROR_INVALID_STATE;
        }
 
-       ret = mm_player_get_streaming_buffering_time(handle->mm_handle, buffer_ms, rebuffer_ms);
+       ret = mm_player_get_streaming_buffering_time(handle->mm_handle, prebuffer_ms, rebuffer_ms);
        if (ret != MM_ERROR_NONE)
                return __player_convert_error_code(ret, (char *)__FUNCTION__);
 
+       LOGD("pre: %d ms, re: %d ms", *prebuffer_ms, *rebuffer_ms);
+
+       if (*prebuffer_ms < MIN_BUFFERING_TIME_MS) *prebuffer_ms = MIN_BUFFERING_TIME_MS;
+       if (*rebuffer_ms < MIN_BUFFERING_TIME_MS) *rebuffer_ms = MIN_BUFFERING_TIME_MS;
+
        return PLAYER_ERROR_NONE;
 }
 
index 1a341c2..b96a498 100644 (file)
@@ -3232,16 +3232,16 @@ int player_disp_set_streaming_buffering_time(muse_module_h module)
        int ret = PLAYER_ERROR_NONE;
        muse_player_api_e api = MUSE_PLAYER_API_SET_STREAMING_BUFFERING_TIME;
        muse_player_handle_s *muse_player = NULL;
-       int buffer_ms = 0, rebuffer_ms = 0;
+       int prebuffer_ms = -1, rebuffer_ms = -1;
        bool ret_val = true;
 
        ret_val = _player_disp_get_param_value(muse_server_module_get_msg(module),
-                                                               MUSE_TYPE_INT, "buffer_ms", (void *)&buffer_ms,
+                                                               MUSE_TYPE_INT, "prebuffer_ms", (void *)&prebuffer_ms,
                                                                MUSE_TYPE_INT, "rebuffer_ms", (void *)&rebuffer_ms,
                                                                INVALID_MUSE_TYPE_VALUE);
        if (ret_val) {
                muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
-               ret = legacy_player_set_streaming_buffering_time(muse_player->player_handle, buffer_ms, rebuffer_ms);
+               ret = legacy_player_set_streaming_buffering_time(muse_player->player_handle, prebuffer_ms, rebuffer_ms);
        } else {
                ret = PLAYER_ERROR_INVALID_OPERATION; /* FIXME: mismatch with API return type */
        }
@@ -3255,14 +3255,14 @@ int player_disp_get_streaming_buffering_time(muse_module_h module)
        int ret = PLAYER_ERROR_NONE;
        muse_player_api_e api = MUSE_PLAYER_API_GET_STREAMING_BUFFERING_TIME;
        muse_player_handle_s *muse_player = NULL;
-       int buffering_time = 0, rebuffering_time = 0;
+       int prebuffer_ms = 0, rebuffer_ms = 0;
 
        muse_player = (muse_player_handle_s *)muse_server_ipc_get_handle(module);
 
-       ret = legacy_player_get_streaming_buffering_time(muse_player->player_handle, &buffering_time, &rebuffering_time);
+       ret = legacy_player_get_streaming_buffering_time(muse_player->player_handle, &prebuffer_ms, &rebuffer_ms);
        if (ret == PLAYER_ERROR_NONE)
                PLAYER_RETURN_MSG(api, ret, module,
-                       MUSE_TYPE_INT, "buffering_time", buffering_time, MUSE_TYPE_INT, "rebuffering_time", rebuffering_time);
+                       MUSE_TYPE_INT, "prebuffer_ms", prebuffer_ms, MUSE_TYPE_INT, "rebuffer_ms", rebuffer_ms);
        else
                PLAYER_RETURN_MSG(api, ret, module);
 
index e0068bc..e4fe5aa 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-player
 Summary:    A Media Player module for muse server
-Version:    0.2.99
+Version:    0.2.100
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0