From c413ddcbd759ddeca0d17e05e6e2166de0505486 Mon Sep 17 00:00:00 2001 From: "changbin.shao@intel.com" Date: Sat, 4 May 2013 00:34:45 +0000 Subject: Use int64 for media buffer change events and send as double type. Data overflow happens when chrome://media-internals displays some big integers, such as buffer_start, buffer_end. To solve this issue, use int64 type to store and send these media parameters as double type. Review URL: https://chromiumcodereview.appspot.com/14113056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198263 0039d316-1c4b-4281-b951-d872f2087c98 --- media/base/media_log.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'media/base/media_log.cc') diff --git a/media/base/media_log.cc b/media/base/media_log.cc index abd845b..877feff 100644 --- a/media/base/media_log.cc +++ b/media/base/media_log.cc @@ -179,12 +179,14 @@ scoped_ptr MediaLog::CreateVideoSizeSetEvent( } scoped_ptr MediaLog::CreateBufferedExtentsChangedEvent( - size_t start, size_t current, size_t end) { + int64 start, int64 current, int64 end) { scoped_ptr event( CreateEvent(MediaLogEvent::BUFFERED_EXTENTS_CHANGED)); - event->params.SetInteger("buffer_start", start); - event->params.SetInteger("buffer_current", current); - event->params.SetInteger("buffer_end", end); + // These values are headed to JS where there is no int64 so we use a double + // and accept loss of precision above 2^53 bytes (8 Exabytes). + event->params.SetDouble("buffer_start", start); + event->params.SetDouble("buffer_current", current); + event->params.SetDouble("buffer_end", end); return event.Pass(); } -- cgit v1.1