[MM] Buffered data indication is incorrect for Media Element.
authorVenugopal S M <sm.venugopal@samsung.com>
Wed, 25 Feb 2015 18:54:57 +0000 (00:24 +0530)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
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 <sm.venugopal@samsung.com>
tizen_src/impl/media/base/tizen/media_player_bridge_gstreamer.cc

index d717c03..055e3f0 100644 (file)
@@ -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<double>(start) * duration_ / 100
           * base::Time::kMicrosecondsPerSecond;
       b_range.end = static_cast<double>(stop) * duration_ / 100
           * base::Time::kMicrosecondsPerSecond;
+#endif
+
       buffer_range.push_back(b_range);
     }
     manager()->OnBufferUpdate(GetPlayerId(), buffer_range);