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);
#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) { \
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;
}
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 */
}
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);
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