From 31ed49f9966083d31cf34d6448452059983f6870 Mon Sep 17 00:00:00 2001 From: Eunhae Choi Date: Wed, 18 Oct 2017 20:14:00 +0900 Subject: [PATCH] [0.6.75] fix buffering time calc issue Change-Id: Id1a1d1d7ff434d2215b103882cc7ef22cf77d763 --- packaging/libmm-player.spec | 2 +- src/mm_player_priv.c | 2 +- src/mm_player_streaming.c | 19 +++++++++++-------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packaging/libmm-player.spec b/packaging/libmm-player.spec index d7ac5fd..3895f5b 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.74 +Version: 0.6.75 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_player_priv.c b/src/mm_player_priv.c index 5f88ba9..d9bd890 100644 --- a/src/mm_player_priv.c +++ b/src/mm_player_priv.c @@ -1798,7 +1798,7 @@ __mmplayer_gst_extract_tag_from_msg(mm_player_t* player, GstMessage* msg) #define MMPLAYER_UPDATE_TAG_STRING(gsttag, attribute, playertag) \ if (gst_tag_list_get_string(tag_list, gsttag, &string)) {\ if (string != NULL) { \ - SECURE_LOGD("%d update tag string : %s\n", strlen(string), string); \ + SECURE_LOGD("update tag string : %s\n", string); \ if (strlen(string) > MM_MAX_STRING_LENGTH) { \ char *new_string = malloc(MM_MAX_STRING_LENGTH); \ strncpy(new_string, string, MM_MAX_STRING_LENGTH-1); \ diff --git a/src/mm_player_streaming.c b/src/mm_player_streaming.c index c343ce6..2e3071f 100644 --- a/src/mm_player_streaming.c +++ b/src/mm_player_streaming.c @@ -382,8 +382,9 @@ streaming_set_queue2_queue_type(mm_player_streaming_t* streamer, muxed_buffer_ty g_object_set(G_OBJECT(buffer_handle->buffer), "temp-template", file_buffer_name, NULL); } - } else + } else { buffer_size = (guint64)((streamer->ring_buffer_size > 0) ? (streamer->ring_buffer_size) : DEFAULT_RING_BUFFER_SIZE); + } LOGW("[Queue2] set ring buffer size: %lld\n", buffer_size); g_object_set(G_OBJECT(buffer_handle->buffer), "ring-buffer-max-size", buffer_size, NULL); @@ -594,8 +595,9 @@ streaming_get_current_bitrate_info(mm_player_streaming_t* streamer, if (gst_element_query((streamer->buffer_handle[BUFFER_TYPE_MUXED].buffer), query)) gst_query_parse_buffering_stats(query, &mode, &in_rate, &out_rate, &buffering_left); gst_query_unref(query); - } else + } else { gst_message_parse_buffering_stats(buffering_msg, &mode, &in_rate, &out_rate, &buffering_left); + } LOGD("Streaming Info : in %d, out %d, left %lld\n", in_rate, out_rate, buffering_left); @@ -621,8 +623,9 @@ streaming_get_current_bitrate_info(mm_player_streaming_t* streamer, out_rate = GET_BYTE_FROM_BIT(MAX(streamer->buffer_avg_bitrate, estimated_content_bitrate)); LOGD("(avg)content_max_byte_rate %d, byte_out_rate %d\n", buffer_criteria, out_rate); - } else + } else { LOGW("There is no content bitrate information\n"); + } if ((in_rate > 0) && (out_rate > 0)) buffer_buffering_time = (gint)(out_rate / in_rate)*1000; @@ -659,7 +662,7 @@ streaming_handle_fixed_buffering_mode(mm_player_streaming_t* streamer, LOGD("buffering time: %d ms, out rate: %d\n", buffering_time, byte_out_rate); if ((buffering_time > 0) && (byte_out_rate > 0)) { - buffering_bytes = GET_NEW_BUFFERING_BYTE(byte_out_rate * buffering_time); + buffering_bytes = (guint)GET_NEW_BUFFERING_BYTE((gdouble)(byte_out_rate * buffering_time)/1000); } else { if (buffering_time <= 0) buffering_time = GET_CURRENT_BUFFERING_TIME(buffer_handle); @@ -671,8 +674,7 @@ streaming_handle_fixed_buffering_mode(mm_player_streaming_t* streamer, GET_PERCENT(buffering_time, GET_CURRENT_BUFFERING_TIME(buffer_handle), buffer_handle->buffer_high_percent, per_time); GET_PERCENT(buffering_bytes, GET_CURRENT_BUFFERING_BYTE(buffer_handle), buffer_handle->buffer_high_percent, per_byte); - LOGD("bytes %d, time %d, per_byte %f, per_time %f\n", - buffering_bytes, buffering_time, per_byte, per_time); + LOGD("bytes %d, time %d, per_byte %f, per_time %f\n", buffering_bytes, buffering_time, per_byte, per_time); (*buffer_info).buffering_bytes = buffering_bytes; (*buffer_info).buffering_time = buffering_time; @@ -737,8 +739,9 @@ streaming_handle_adaptive_buffering_mode(mm_player_streaming_t* streamer, /* if the buffer is filled under 50%, MSL use the original default buffering time. if not, MSL use just 2 sec as a default buffering time. (to reduce initial buffering time) */ default_buffering_time = streamer->default_val.buffering_time - ((gdouble)streamer->buffering_percent/50)*1000; - } else + } else { default_buffering_time = streamer->default_val.buffering_time; + } if (buffer_buffering_time < default_buffering_time) { LOGD("adjusted time: %d -> %d ms\n", buffer_buffering_time, default_buffering_time); @@ -759,7 +762,7 @@ streaming_handle_adaptive_buffering_mode(mm_player_streaming_t* streamer, GET_PERCENT(buffering_bytes, GET_CURRENT_BUFFERING_BYTE(buffer_handle), buffer_handle->buffer_high_percent, per_byte); GET_PERCENT(buffer_buffering_time, GET_CURRENT_BUFFERING_TIME(buffer_handle), buffer_handle->buffer_high_percent, per_time); - LOGD("monitor %d, bytes %d, time %f, per_byte %f, per_time %f\n", + LOGD("monitor %d, bytes %d, time %d, per_byte %f, per_time %f\n", streamer->default_val.buffering_monitor, buffering_bytes, buffer_buffering_time, per_byte, per_time); -- 2.7.4