X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmm_player_streaming.c;h=1da6f4d33f466589b8b554f6a853e0ef3cc68823;hb=fb1e5053cb408365b2c5037d183e125e6a195350;hp=f759e0864256528c3ad969cfc3ffc6b6d3d83eaf;hpb=494966c47470ecf5e863d3ee1c844aba6df09bbc;p=platform%2Fcore%2Fmultimedia%2Flibmm-player.git diff --git a/src/mm_player_streaming.c b/src/mm_player_streaming.c index f759e08..1da6f4d 100644 --- a/src/mm_player_streaming.c +++ b/src/mm_player_streaming.c @@ -45,8 +45,7 @@ typedef struct { gdouble percent_time; } streaming_buffer_info_t; -static void streaming_check_buffer_percent(gdouble in_low, gdouble in_high, gdouble *out_low, gdouble *out_high); -static void streaming_set_buffer_percent(mm_player_streaming_t* streamer, BufferType type, gdouble low_percent, gdouble high_percent_byte, gdouble high_percent_time); +static void streaming_set_buffer_percent(mm_player_streaming_t* streamer, BufferType type, gdouble high_percent_byte, gdouble high_percent_time); static void streaming_set_queue2_queue_type(mm_player_streaming_t* streamer, MuxedBufferType type, gchar * file_path, guint64 content_size); static void streaming_set_buffer_size(mm_player_streaming_t* streamer, BufferType type, guint buffering_bytes, gint buffering_time); static void streaming_update_buffering_status(mm_player_streaming_t* streamer, GstMessage *buffering_msg, gint64 position); @@ -98,7 +97,6 @@ streaming_buffer_initialize(streaming_buffer_t* buffer_handle, gboolean buffer_i buffer_handle->buffering_bytes = DEFAULT_BUFFER_SIZE_BYTES; buffer_handle->buffering_time = DEFAULT_BUFFERING_TIME; - buffer_handle->buffer_low_percent = DEFAULT_BUFFER_LOW_PERCENT; buffer_handle->buffer_high_percent = DEFAULT_BUFFER_HIGH_PERCENT; buffer_handle->is_live = FALSE; @@ -223,43 +221,11 @@ void __mm_player_streaming_set_content_bitrate(mm_player_streaming_t* streamer, } static void -streaming_check_buffer_percent(gdouble in_low, gdouble in_high, gdouble *out_low, gdouble *out_high) -{ - gdouble buffer_low_percent = DEFAULT_BUFFER_LOW_PERCENT; - gdouble buffer_high_percent = DEFAULT_BUFFER_HIGH_PERCENT; - - MMPLAYER_FENTER(); - - MMPLAYER_RETURN_IF_FAIL(out_low && out_high); - - if (in_low <= MIN_BUFFER_PERCENT || in_low >= MAX_BUFFER_PERCENT) - LOGW("buffer low percent is out of range. use defaut value."); - else - buffer_low_percent = in_low; - - if (in_high <= MIN_BUFFER_PERCENT || in_high >= MAX_BUFFER_PERCENT) - LOGW("buffer high percent is out of range. use defaut value."); - else - buffer_high_percent = in_high; - - if (buffer_high_percent <= buffer_low_percent) - buffer_high_percent = buffer_low_percent + 1.0; - - LOGD("set buffer percent to %2.3f ~ %2.3f.", buffer_low_percent, buffer_high_percent); - - *out_low = buffer_low_percent; - *out_high = buffer_high_percent; -} - -static void streaming_set_buffer_percent(mm_player_streaming_t* streamer, BufferType type, - gdouble low_percent, gdouble high_percent_byte, gdouble high_percent_time) { - gdouble confirmed_low = DEFAULT_BUFFER_LOW_PERCENT; - gdouble confirmed_high = DEFAULT_BUFFER_HIGH_PERCENT; gdouble high_percent = 0.0; streaming_buffer_t* buffer_handle = NULL; @@ -287,22 +253,18 @@ streaming_set_buffer_percent(mm_player_streaming_t* streamer, else high_percent = MAX(high_percent_time, high_percent_byte); - streaming_check_buffer_percent(low_percent, high_percent, &confirmed_low, &confirmed_high); + if (high_percent <= MIN_BUFFER_PERCENT || high_percent >= MAX_BUFFER_PERCENT) + high_percent = DEFAULT_BUFFER_HIGH_PERCENT; /* if use-buffering is disabled, this settings do not have any meaning. */ - LOGD("target buffer elem : %s (%2.3f ~ %2.3f)", - GST_ELEMENT_NAME(buffer_handle->buffer), confirmed_low, confirmed_high); - - if ((confirmed_low == DEFAULT_BUFFER_LOW_PERCENT) || - (buffer_handle->buffer_low_percent != confirmed_low)) - g_object_set(G_OBJECT(buffer_handle->buffer), "low-percent", (gint)confirmed_low, NULL); + LOGD("target buffer elem : %s (~ %2.3f)", + GST_ELEMENT_NAME(buffer_handle->buffer), high_percent); - if ((confirmed_high == DEFAULT_BUFFER_HIGH_PERCENT) || - (buffer_handle->buffer_high_percent != confirmed_high)) - g_object_set(G_OBJECT(buffer_handle->buffer), "high-percent", (gint)confirmed_high, NULL); + if ((high_percent == DEFAULT_BUFFER_HIGH_PERCENT) || + (buffer_handle->buffer_high_percent != high_percent)) + g_object_set(G_OBJECT(buffer_handle->buffer), "high-percent", (gint)high_percent, NULL); - buffer_handle->buffer_low_percent = confirmed_low; - buffer_handle->buffer_high_percent = confirmed_high; + buffer_handle->buffer_high_percent = high_percent; MMPLAYER_FLEAVE(); return; @@ -445,8 +407,6 @@ void __mm_player_streaming_set_queue2(mm_player_streaming_t* streamer, gboolean use_buffering, guint buffering_bytes, gint buffering_time, - gdouble low_percent, - gdouble high_percent, MuxedBufferType type, gchar* file_path, guint64 content_size) @@ -480,7 +440,7 @@ void __mm_player_streaming_set_queue2(mm_player_streaming_t* streamer, /* initial setting */ streaming_set_buffer_size(streamer, BUFFER_TYPE_MUXED, buffering_bytes, buffering_time); - streaming_set_buffer_percent(streamer, BUFFER_TYPE_MUXED, low_percent, high_percent, 0); + streaming_set_buffer_percent(streamer, BUFFER_TYPE_MUXED, DEFAULT_BUFFER_HIGH_PERCENT, 0); if (type < MUXED_BUFFER_TYPE_MAX) streaming_set_queue2_queue_type(streamer, type, file_path, content_size); @@ -502,7 +462,6 @@ void __mm_player_streaming_sync_property(mm_player_streaming_t* streamer, GstEle g_object_set(G_OBJECT(decodebin), "max-size-bytes", buffer_handle->buffering_bytes, "max-size-time", (guint64)(buffer_handle->buffering_time * GST_MSECOND), - "low-percent", (gint)buffer_handle->buffer_low_percent, "high-percent", (gint)buffer_handle->buffer_high_percent, NULL); } @@ -511,11 +470,10 @@ void __mm_player_streaming_sync_property(mm_player_streaming_t* streamer, GstEle void __mm_player_streaming_set_multiqueue(mm_player_streaming_t* streamer, GstElement* buffer, - gint buffering_time, - gdouble low_percent, - gdouble high_percent) + gint buffering_time) { streaming_buffer_t* buffer_handle = NULL; + gdouble high_percent = 0.0; MMPLAYER_FENTER(); MMPLAYER_RETURN_IF_FAIL(streamer && buffer); @@ -540,7 +498,7 @@ void __mm_player_streaming_set_multiqueue(mm_player_streaming_t* streamer, /* initial setting */ streaming_set_buffer_size(streamer, BUFFER_TYPE_DEMUXED, GET_MAX_BUFFER_BYTES(streamer), GET_MAX_BUFFER_TIME(streamer)); - streaming_set_buffer_percent(streamer, BUFFER_TYPE_DEMUXED, low_percent, 0, high_percent); + streaming_set_buffer_percent(streamer, BUFFER_TYPE_DEMUXED, 0, high_percent); streamer->need_sync = TRUE; @@ -772,8 +730,6 @@ streaming_update_buffer_setting(mm_player_streaming_t* streamer, streaming_content_info_t content_info; streaming_bitrate_info_t bitrate_info; - gdouble low_percent = 0.0; - MMPLAYER_FENTER(); MMPLAYER_RETURN_IF_FAIL(streamer); @@ -804,9 +760,6 @@ streaming_update_buffer_setting(mm_player_streaming_t* streamer, buffering_mode, bitrate_info.byte_in_rate, bitrate_info.byte_out_rate, bitrate_info.buffer_criteria, bitrate_info.time_rate); - /* calculate buffer low/high percent */ - low_percent = DEFAULT_BUFFER_LOW_PERCENT; - if (buffering_mode == MM_PLAYER_BUFFERING_MODE_FIXED) { /******************** * (1) fixed mode * @@ -857,7 +810,7 @@ streaming_update_buffer_setting(mm_player_streaming_t* streamer, streaming_set_buffer_size(streamer, streamer->streaming_buffer_type, buffer_info.buffering_bytes, buffer_info.buffering_time); } - streaming_set_buffer_percent(streamer, streamer->streaming_buffer_type, low_percent, buffer_info.percent_byte, buffer_info.percent_time); + streaming_set_buffer_percent(streamer, streamer->streaming_buffer_type, buffer_info.percent_byte, buffer_info.percent_time); LOGD("buffer setting: size %d, time %d, per %f\n", GET_CURRENT_BUFFERING_BYTE(buffer_handle),