summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorchangbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-04 00:34:45 +0000
committerchangbin.shao@intel.com <changbin.shao@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-04 00:34:45 +0000
commitc413ddcbd759ddeca0d17e05e6e2166de0505486 (patch)
tree0d872c9c0771bd0d6193826f540ff41a73ab75f3 /media
parentde1c79497381ede8638df4953abcc7c6d0304ad2 (diff)
downloadchromium_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.cc10
-rw-r--r--media/base/media_log.h2
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);