From: Venugopal S M Date: Wed, 25 Feb 2015 18:54:57 +0000 (+0530) Subject: [MM] Buffered data indication is incorrect for Media Element. X-Git-Tag: submit/tizen/20201118.160233~1166 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=245a171e57f86e450881a473248b2c243798942b;p=platform%2Fframework%2Fweb%2Fchromium-efl.git [MM] Buffered data indication is incorrect for Media Element. Gstreamer 1.x gives buffered range in percentage in seven digits along with precision. This large number caused overflow of progress bar. Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=11544 Reviewed by: SeungSeop Park, Sharath Kamath Change-Id: I75111ee4dc4b426e8928332ee5837b33b87437cf Signed-off-by: Venugopal S M --- diff --git a/tizen_src/impl/media/base/tizen/media_player_bridge_gstreamer.cc b/tizen_src/impl/media/base/tizen/media_player_bridge_gstreamer.cc index d717c03..055e3f0 100644 --- a/tizen_src/impl/media/base/tizen/media_player_bridge_gstreamer.cc +++ b/tizen_src/impl/media/base/tizen/media_player_bridge_gstreamer.cc @@ -739,14 +739,26 @@ void MediaPlayerBridgeGstreamer::GetBufferedTimeRanges() { gint64 start = 0, stop = 0; gst_query_parse_nth_buffering_range(query, range, &start, &stop); media::MediaPlayerTizen::TimeRanges b_range; + +#if GST_VERSION_MAJOR == 1 + if ((start == 0 || is_end_reached_) && + stop == GST_FORMAT_PERCENT_MAX) + StopBufferingUpdateTimer(); + + b_range.start = start * duration_; + b_range.end = stop * duration_; +#else // Stop the Timer on Buffer completion if(start == 0 && stop == 100) StopBufferingUpdateTimer(); + // Parsed value is in percentage. Converted into time range b_range.start = static_cast(start) * duration_ / 100 * base::Time::kMicrosecondsPerSecond; b_range.end = static_cast(stop) * duration_ / 100 * base::Time::kMicrosecondsPerSecond; +#endif + buffer_range.push_back(b_range); } manager()->OnBufferUpdate(GetPlayerId(), buffer_range);