Title: [237278] trunk
Revision
237278
Author
[email protected]
Date
2018-10-18 19:48:59 -0700 (Thu, 18 Oct 2018)

Log Message

[Media] Use nanoseconds as MaximumTimeScale
https://bugs.webkit.org/show_bug.cgi?id=190631

Source/WTF:

1e9 is a much more useful timescale than the previous one 2^31-1.
Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
common among some formats like WebM and frameworks like GStreamer
where base 10 timescale is common... and it's those big timescales the
ones that are usually scaled up to MaximumTimeScale.

Reviewed by Jer Noble.

* wtf/MediaTime.cpp:

Tools:

Rebased MediaTime tests covering timescales over the maximum.

Reviewed by Jer Noble.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (237277 => 237278)


--- trunk/Source/WTF/ChangeLog	2018-10-19 00:55:08 UTC (rev 237277)
+++ trunk/Source/WTF/ChangeLog	2018-10-19 02:48:59 UTC (rev 237278)
@@ -1,3 +1,18 @@
+2018-10-18  Alicia Boya García  <[email protected]>
+
+        [Media] Use nanoseconds as MaximumTimeScale
+        https://bugs.webkit.org/show_bug.cgi?id=190631
+
+        1e9 is a much more useful timescale than the previous one 2^31-1.
+        Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
+        common among some formats like WebM and frameworks like GStreamer
+        where base 10 timescale is common... and it's those big timescales the
+        ones that are usually scaled up to MaximumTimeScale.
+
+        Reviewed by Jer Noble.
+
+        * wtf/MediaTime.cpp:
+
 2018-10-18  Alexey Proskuryakov  <[email protected]>
 
         Remove PLATFORM(IOS) for now

Modified: trunk/Source/WTF/wtf/MediaTime.cpp (237277 => 237278)


--- trunk/Source/WTF/wtf/MediaTime.cpp	2018-10-19 00:55:08 UTC (rev 237277)
+++ trunk/Source/WTF/wtf/MediaTime.cpp	2018-10-19 02:48:59 UTC (rev 237278)
@@ -61,7 +61,7 @@
     return (0 < val) - (val < 0);
 }
 
-const uint32_t MediaTime::MaximumTimeScale = 0x7fffffffL;
+const uint32_t MediaTime::MaximumTimeScale = 1000000000;
 
 MediaTime::MediaTime()
     : m_timeValue(0)

Modified: trunk/Tools/ChangeLog (237277 => 237278)


--- trunk/Tools/ChangeLog	2018-10-19 00:55:08 UTC (rev 237277)
+++ trunk/Tools/ChangeLog	2018-10-19 02:48:59 UTC (rev 237278)
@@ -1,3 +1,15 @@
+2018-10-18  Alicia Boya García  <[email protected]>
+
+        [Media] Use nanoseconds as MaximumTimeScale
+        https://bugs.webkit.org/show_bug.cgi?id=190631
+
+        Rebased MediaTime tests covering timescales over the maximum.
+
+        Reviewed by Jer Noble.
+
+        * TestWebKitAPI/Tests/WTF/MediaTime.cpp:
+        (TestWebKitAPI::TEST):
+
 2018-10-18  Dean Johnson  <[email protected]>
 
         clean-webkit pulls in many unnecessary dependencies in webkitpy

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp (237277 => 237278)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2018-10-19 00:55:08 UTC (rev 237277)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2018-10-19 02:48:59 UTC (rev 237278)
@@ -113,7 +113,7 @@
     EXPECT_EQ(MediaTime::indefiniteTime() + MediaTime(1, 1), MediaTime::indefiniteTime());
     EXPECT_EQ(MediaTime(1, 1) + MediaTime(1, 1), MediaTime(2, 1));
     EXPECT_EQ(MediaTime(1, 2) + MediaTime(1, 3), MediaTime(5, 6));
-    EXPECT_EQ(MediaTime(1, numeric_limits<int32_t>::max()-1) + MediaTime(1, numeric_limits<int32_t>::max()-2), MediaTime(2, numeric_limits<int32_t>::max()));
+    EXPECT_EQ(MediaTime(1, MediaTime::MaximumTimeScale - 1) + MediaTime(1, MediaTime::MaximumTimeScale - 2), MediaTime(2, MediaTime::MaximumTimeScale));
 
     // Subtraction Operators
     EXPECT_EQ(MediaTime::positiveInfiniteTime() - MediaTime::positiveInfiniteTime(), MediaTime::invalidTime());
@@ -134,7 +134,7 @@
     EXPECT_EQ(MediaTime::indefiniteTime() - MediaTime(1, 1), MediaTime::indefiniteTime());
     EXPECT_EQ(MediaTime(3, 1) - MediaTime(2, 1), MediaTime(1, 1));
     EXPECT_EQ(MediaTime(1, 2) - MediaTime(1, 3), MediaTime(1, 6));
-    EXPECT_EQ(MediaTime(2, numeric_limits<int32_t>::max()-1) - MediaTime(1, numeric_limits<int32_t>::max()-2), MediaTime(1, numeric_limits<int32_t>::max()));
+    EXPECT_EQ(MediaTime(2, MediaTime::MaximumTimeScale - 1) - MediaTime(1, MediaTime::MaximumTimeScale - 2), MediaTime(1, MediaTime::MaximumTimeScale));
 
     // Multiplication Operators
     EXPECT_EQ(MediaTime::positiveInfiniteTime(), MediaTime::positiveInfiniteTime() * 2);
@@ -299,9 +299,9 @@
     int64_t maxInt32 = numeric_limits<int32_t>::max();
     EXPECT_EQ(MediaTime(maxInt32 * 2, 1).toTimeScale(2).timeValue(), maxInt32 * 4);
     int64_t bigInt = 1LL << 62;
-    EXPECT_EQ(MediaTime(bigInt, 1U << 31).toTimeScale(1U << 30).timeValue(), bigInt / 2);
-    EXPECT_EQ(MediaTime(bigInt + 1, 1U << 31).toTimeScale(1U << 30, MediaTime::RoundingFlags::TowardZero).timeValue(), bigInt / 2);
-    EXPECT_EQ(MediaTime(bigInt + 1, 1U << 31).toTimeScale(1U << 30).hasBeenRounded(), true);
+    EXPECT_EQ(MediaTime(bigInt, 1U << 31).toTimeScale(1U << 29).timeValue(), bigInt / 4);
+    EXPECT_EQ(MediaTime(bigInt + 1, 1U << 31).toTimeScale(1U << 29, MediaTime::RoundingFlags::TowardZero).timeValue(), bigInt / 4);
+    EXPECT_EQ(MediaTime(bigInt + 1, 1U << 31).toTimeScale(1U << 29).hasBeenRounded(), true);
     EXPECT_EQ(MediaTime(bigInt - 2, MediaTime::MaximumTimeScale).toTimeScale(MediaTime::MaximumTimeScale - 1).hasBeenRounded(), true);
     EXPECT_EQ(MediaTime(bigInt, 1).toTimeScale(MediaTime::MaximumTimeScale), MediaTime::positiveInfiniteTime());
     EXPECT_EQ(MediaTime(-bigInt, 1).toTimeScale(MediaTime::MaximumTimeScale), MediaTime::negativeInfiniteTime());
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to