Diff
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/ChangeLog 2017-06-20 08:43:28 UTC (rev 218571)
@@ -1,3 +1,19 @@
+2017-06-08 Xabier Rodriguez Calvar <calva...@igalia.com>
+
+ MediaTime class has rounding issues in different platforms
+ https://bugs.webkit.org/show_bug.cgi?id=172640
+
+ Reviewed by Jer Noble.
+
+ Update expectations because the MediaTime printing changed, but
+ results are the same.
+
+ * media/media-source/media-source-overlapping-append-expected.txt:
+ * media/media-source/media-source-overlapping-decodetime-expected.txt:
+ * media/media-source/media-source-seek-back-expected.txt:
+ * media/media-source/media-source-sequence-timestamps-expected.txt:
+ * media/media-source/media-source-timeoffset-expected.txt:
+
2017-06-06 Zalan Bujtas <za...@apple.com>
Safari doesn't load newest The Order of the Stick comic.
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-append-expected.txt (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-append-expected.txt 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-append-expected.txt 2017-06-20 08:43:28 UTC (rev 218571)
@@ -7,29 +7,29 @@
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '6') OK
-{PTS({0/1000, 0.000000}), DTS({0/1000, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({1000/1000, 1.000000}), DTS({1000/1000, 1.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({2000/1000, 2.000000}), DTS({2000/1000, 2.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({3000/1000, 3.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({4000/1000, 4.000000}), DTS({4000/1000, 4.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({5000/1000, 5.000000}), DTS({5000/1000, 5.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
+{PTS({0/1000 = 0.000000}), DTS({0/1000 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({1000/1000 = 1.000000}), DTS({1000/1000 = 1.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({2000/1000 = 2.000000}), DTS({2000/1000 = 2.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({3000/1000 = 3.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({4000/1000 = 4.000000}), DTS({4000/1000 = 4.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({5000/1000 = 5.000000}), DTS({5000/1000 = 5.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '6') OK
-{PTS({0/1000, 0.000000}), DTS({0/1000, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(1)}
-{PTS({1000/1000, 1.000000}), DTS({1000/1000, 1.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
-{PTS({2000/1000, 2.000000}), DTS({2000/1000, 2.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
-{PTS({3000/1000, 3.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(1)}
-{PTS({4000/1000, 4.000000}), DTS({4000/1000, 4.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
-{PTS({5000/1000, 5.000000}), DTS({5000/1000, 5.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
+{PTS({0/1000 = 0.000000}), DTS({0/1000 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(1)}
+{PTS({1000/1000 = 1.000000}), DTS({1000/1000 = 1.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
+{PTS({2000/1000 = 2.000000}), DTS({2000/1000 = 2.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
+{PTS({3000/1000 = 3.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(1)}
+{PTS({4000/1000 = 4.000000}), DTS({4000/1000 = 4.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
+{PTS({5000/1000 = 5.000000}), DTS({5000/1000 = 5.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '6') OK
-{PTS({0/1000, 0.000000}), DTS({0/1000, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(2)}
-{PTS({2000/1000, 2.000000}), DTS({1000/1000, 1.000000}), duration({1000/1000, 1.000000}), flags(0), generation(2)}
-{PTS({1000/1000, 1.000000}), DTS({2000/1000, 2.000000}), duration({1000/1000, 1.000000}), flags(0), generation(2)}
-{PTS({3000/1000, 3.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(2)}
-{PTS({5000/1000, 5.000000}), DTS({4000/1000, 4.000000}), duration({1000/1000, 1.000000}), flags(0), generation(2)}
-{PTS({4000/1000, 4.000000}), DTS({5000/1000, 5.000000}), duration({1000/1000, 1.000000}), flags(0), generation(2)}
+{PTS({0/1000 = 0.000000}), DTS({0/1000 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(2)}
+{PTS({2000/1000 = 2.000000}), DTS({1000/1000 = 1.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(2)}
+{PTS({1000/1000 = 1.000000}), DTS({2000/1000 = 2.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(2)}
+{PTS({3000/1000 = 3.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(2)}
+{PTS({5000/1000 = 5.000000}), DTS({4000/1000 = 4.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(2)}
+{PTS({4000/1000 = 4.000000}), DTS({5000/1000 = 5.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(2)}
END OF TEST
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-decodetime-expected.txt (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-decodetime-expected.txt 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-overlapping-decodetime-expected.txt 2017-06-20 08:43:28 UTC (rev 218571)
@@ -9,12 +9,12 @@
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '7') OK
-{PTS({0/1000, 0.000000}), DTS({0/1000, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({1000/1000, 1.000000}), DTS({1000/1000, 1.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({2000/1000, 2.000000}), DTS({2000/1000, 2.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({3000/1000, 3.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({4000/1000, 4.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(1)}
-{PTS({5000/1000, 5.000000}), DTS({4000/1000, 4.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
-{PTS({6000/1000, 6.000000}), DTS({5000/1000, 5.000000}), duration({1000/1000, 1.000000}), flags(0), generation(1)}
+{PTS({0/1000 = 0.000000}), DTS({0/1000 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({1000/1000 = 1.000000}), DTS({1000/1000 = 1.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({2000/1000 = 2.000000}), DTS({2000/1000 = 2.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({3000/1000 = 3.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({4000/1000 = 4.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(1)}
+{PTS({5000/1000 = 5.000000}), DTS({4000/1000 = 4.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
+{PTS({6000/1000 = 6.000000}), DTS({5000/1000 = 5.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(1)}
END OF TEST
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-seek-back-expected.txt (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-seek-back-expected.txt 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-seek-back-expected.txt 2017-06-20 08:43:28 UTC (rev 218571)
@@ -12,6 +12,6 @@
RUN(sourceBuffer.appendBuffer(samples))
EVENT(seeked)
EXPECTED (enqueuedSamples.length == '1') OK
-{PTS({0/1000, 0.000000}), DTS({0/1000, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
+{PTS({0/1000 = 0.000000}), DTS({0/1000 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
END OF TEST
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-sequence-timestamps-expected.txt (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-sequence-timestamps-expected.txt 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-sequence-timestamps-expected.txt 2017-06-20 08:43:28 UTC (rev 218571)
@@ -7,11 +7,11 @@
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '6') OK
-{PTS({0/1, 0.000000}), DTS({0/1, 0.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({1000/1000, 1.000000}), DTS({1000/1000, 1.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({2000/1000, 2.000000}), DTS({2000/1000, 2.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({3000/1000, 3.000000}), DTS({3000/1000, 3.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({4000/1000, 4.000000}), DTS({4000/1000, 4.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({5000/1000, 5.000000}), DTS({5000/1000, 5.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
+{PTS({0/1 = 0.000000}), DTS({0/1 = 0.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({1000/1000 = 1.000000}), DTS({1000/1000 = 1.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({2000/1000 = 2.000000}), DTS({2000/1000 = 2.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({3000/1000 = 3.000000}), DTS({3000/1000 = 3.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({4000/1000 = 4.000000}), DTS({4000/1000 = 4.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({5000/1000 = 5.000000}), DTS({5000/1000 = 5.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
END OF TEST
Modified: releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-timeoffset-expected.txt (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-timeoffset-expected.txt 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/LayoutTests/media/media-source/media-source-timeoffset-expected.txt 2017-06-20 08:43:28 UTC (rev 218571)
@@ -8,11 +8,11 @@
RUN(sourceBuffer.appendBuffer(samples))
EVENT(updateend)
EXPECTED (bufferedSamples.length == '6') OK
-{PTS({100000000/10000000, 10.000000}), DTS({100000000/10000000, 10.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({110000000/10000000, 11.000000}), DTS({110000000/10000000, 11.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({120000000/10000000, 12.000000}), DTS({120000000/10000000, 12.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({130000000/10000000, 13.000000}), DTS({130000000/10000000, 13.000000}), duration({1000/1000, 1.000000}), flags(1), generation(0)}
-{PTS({140000000/10000000, 14.000000}), DTS({140000000/10000000, 14.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
-{PTS({150000000/10000000, 15.000000}), DTS({150000000/10000000, 15.000000}), duration({1000/1000, 1.000000}), flags(0), generation(0)}
+{PTS({100000000/10000000 = 10.000000}), DTS({100000000/10000000 = 10.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({110000000/10000000 = 11.000000}), DTS({110000000/10000000 = 11.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({120000000/10000000 = 12.000000}), DTS({120000000/10000000 = 12.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({130000000/10000000 = 13.000000}), DTS({130000000/10000000 = 13.000000}), duration({1000/1000 = 1.000000}), flags(1), generation(0)}
+{PTS({140000000/10000000 = 14.000000}), DTS({140000000/10000000 = 14.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
+{PTS({150000000/10000000 = 15.000000}), DTS({150000000/10000000 = 15.000000}), duration({1000/1000 = 1.000000}), flags(0), generation(0)}
END OF TEST
Modified: releases/WebKitGTK/webkit-2.16/Source/WTF/ChangeLog (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/Source/WTF/ChangeLog 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/Source/WTF/ChangeLog 2017-06-20 08:43:28 UTC (rev 218571)
@@ -1,3 +1,27 @@
+2017-06-08 Xabier Rodriguez Calvar <calva...@igalia.com>
+
+ MediaTime class has rounding issues in different platforms
+ https://bugs.webkit.org/show_bug.cgi?id=172640
+
+ Reviewed by Jer Noble.
+
+ The way a timescale is set when creating a MediaTime from a double
+ can create rounding issues in different platforms because in some
+ rounding is made and in others, it truncates. This way we ensure a
+ common behavior.
+
+ Dumping MediaTimes is also confusing and by the output you don't
+ know if it's containing a double or a fraction. Now, if it
+ contains a double, it only prints the double because printing the
+ fraction is misleading (it currently prints the double read as an
+ integer) and if it contains a fraction it shows the fraction and
+ its double representation separated by an = instead of a ,.
+
+ * wtf/MediaTime.cpp:
+ (WTF::MediaTime::createWithDouble): When creating MediaTime from
+ double, we round instead of leaving it to the cast operation.
+ (WTF::MediaTime::dump):
+
2017-04-21 Konstantin Tokarev <annu...@yandex.ru>
[cmake] WTF target should not have wtf and subdirectries in public interface
Modified: releases/WebKitGTK/webkit-2.16/Source/WTF/wtf/MediaTime.cpp (218570 => 218571)
--- releases/WebKitGTK/webkit-2.16/Source/WTF/wtf/MediaTime.cpp 2017-06-20 08:41:13 UTC (rev 218570)
+++ releases/WebKitGTK/webkit-2.16/Source/WTF/wtf/MediaTime.cpp 2017-06-20 08:43:28 UTC (rev 218571)
@@ -145,7 +145,7 @@
while (doubleTime * timeScale > std::numeric_limits<int64_t>::max())
timeScale /= 2;
- return MediaTime(static_cast<int64_t>(doubleTime * timeScale), timeScale, Valid);
+ return MediaTime(static_cast<int64_t>(std::round(doubleTime * timeScale)), timeScale, Valid);
}
float MediaTime::toFloat() const
@@ -494,9 +494,12 @@
m_timeScale = timeScale;
}
-void MediaTime::dump(PrintStream &out) const
+void MediaTime::dump(PrintStream& out) const
{
- out.print("{", m_timeValue, "/", m_timeScale, ", ", toDouble(), "}");
+ out.print("{");
+ if (!hasDoubleValue())
+ out.print(m_timeValue, "/", m_timeScale, " = ");
+ out.print(toDouble(), "}");
}
MediaTime abs(const MediaTime& rhs)