diff options
author | changbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-04 00:34:45 +0000 |
---|---|---|
committer | changbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-04 00:34:45 +0000 |
commit | c413ddcbd759ddeca0d17e05e6e2166de0505486 (patch) | |
tree | 0d872c9c0771bd0d6193826f540ff41a73ab75f3 /media | |
parent | de1c79497381ede8638df4953abcc7c6d0304ad2 (diff) | |
download | chromium_src-c413ddcbd759ddeca0d17e05e6e2166de0505486.zip chromium_src-c413ddcbd759ddeca0d17e05e6e2166de0505486.tar.gz chromium_src-c413ddcbd759ddeca0d17e05e6e2166de0505486.tar.bz2 |
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
Diffstat (limited to 'media')
-rw-r--r-- | media/base/media_log.cc | 10 | ||||
-rw-r--r-- | media/base/media_log.h | 2 |
2 files changed, 7 insertions, 5 deletions
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<MediaLogEvent> MediaLog::CreateVideoSizeSetEvent( } scoped_ptr<MediaLogEvent> MediaLog::CreateBufferedExtentsChangedEvent( - size_t start, size_t current, size_t end) { + int64 start, int64 current, int64 end) { scoped_ptr<MediaLogEvent> 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(); } diff --git a/media/base/media_log.h b/media/base/media_log.h index e776ef6..191de33 100644 --- a/media/base/media_log.h +++ b/media/base/media_log.h @@ -64,7 +64,7 @@ class MEDIA_EXPORT MediaLog : public base::RefCountedThreadSafe<MediaLog> { scoped_ptr<MediaLogEvent> CreateVideoSizeSetEvent( size_t width, size_t height); scoped_ptr<MediaLogEvent> CreateBufferedExtentsChangedEvent( - size_t start, size_t current, size_t end); + int64 start, int64 current, int64 end); scoped_ptr<MediaLogEvent> CreateMediaSourceErrorEvent( const std::string& error); |