Bug 232712

Summary: [MSE][GStreamer] Use full nanosecond precision timestamps
Product: WebKit Reporter: Alicia Boya García <aboya>
Component: WebKitGTKAssignee: Alicia Boya García <aboya>
Status: NEW ---    
Severity: Normal CC: bugs-noreply, calvaris, cgarcia, eric.carlson, ews-watchlist, glenn, gustavo, jer.noble, menard, philipj, philn, pnormand, sergio, vjaquez
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch calvaris: review+

Description Alicia Boya García 2021-11-04 08:00:07 PDT
This patch modifies MediaSampleGStreamer to use full nanosecond
precision instead of microsecond precision.

This fixes media/media-source/media-mp4-h264-sequence-mode.html
Comment 1 Alicia Boya García 2021-11-04 08:12:57 PDT
Created attachment 443304 [details]
Patch
Comment 2 Alicia Boya García 2021-11-12 07:10:07 PST
Comment on attachment 443304 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=443304&action=review

> Source/WebCore/ChangeLog:11
> +        This fixes media/media-source/media-mp4-h264-sequence-mode.html

The fix may be accidental, since removing h264 parse from the pipeline broke the test again. In both cases the failure is from a minute discrepancy in timestamps.
Comment 3 Philippe Normand 2022-04-29 03:49:29 PDT
What's the status of this patch? It was reviewed but never merged.
Comment 4 Philippe Normand 2022-04-29 08:54:16 PDT
Maybe the test was updated since then, but with this patch (rebased), it still fails:

--- /app/webkit/WebKitBuild/Release/layout-test-results/media/media-source/media-mp4-h264-sequence-mode-expected.txt
+++ /app/webkit/WebKitBuild/Release/layout-test-results/media/media-source/media-mp4-h264-sequence-mode-actual.txt
@@ -10,13 +10,13 @@
 EVENT(update)
 EXPECTED (sourceBuffer.timestampOffset == '0') OK
 EXPECTED (sourceBuffer.buffered.length == '1') OK
-EXPECTED (sourceBuffer.buffered.start(0) == '1') OK
-EXPECTED (sourceBuffer.buffered.end(0) == '2') OK
+EXPECTED (sourceBuffer.buffered.start(0) == '1'), OBSERVED '1.041666666' FAIL
+EXPECTED (sourceBuffer.buffered.end(0) == '2'), OBSERVED '2.041666666' FAIL
 RUN(sourceBuffer.mode="sequence")
 RUN(sourceBuffer.appendBuffer(loader.mediaSegment(1)))
 EVENT(update)
 EXPECTED (sourceBuffer.timestampOffset == '1') OK
 EXPECTED (sourceBuffer.buffered.length == '1') OK
-EXPECTED (sourceBuffer.buffered.end(0) == '3') OK
+EXPECTED (sourceBuffer.buffered.end(0) == '3'), OBSERVED '3.041666666' FAIL
 END OF TEST
Comment 5 Philippe Normand 2022-04-29 08:58:55 PDT
With current ToT:

--- /app/webkit/WebKitBuild/Release/layout-test-results/media/media-source/media-mp4-h264-sequence-mode-expected.txt
+++ /app/webkit/WebKitBuild/Release/layout-test-results/media/media-source/media-mp4-h264-sequence-mode-actual.txt
@@ -10,13 +10,13 @@
 EVENT(update)
 EXPECTED (sourceBuffer.timestampOffset == '0') OK
 EXPECTED (sourceBuffer.buffered.length == '1') OK
-EXPECTED (sourceBuffer.buffered.start(0) == '1') OK
-EXPECTED (sourceBuffer.buffered.end(0) == '2') OK
+EXPECTED (sourceBuffer.buffered.start(0) == '1'), OBSERVED '1.041666' FAIL
+EXPECTED (sourceBuffer.buffered.end(0) == '2'), OBSERVED '2.041666' FAIL
 RUN(sourceBuffer.mode="sequence")
 RUN(sourceBuffer.appendBuffer(loader.mediaSegment(1)))
 EVENT(update)
 EXPECTED (sourceBuffer.timestampOffset == '1') OK
 EXPECTED (sourceBuffer.buffered.length == '1') OK
-EXPECTED (sourceBuffer.buffered.end(0) == '3') OK
+EXPECTED (sourceBuffer.buffered.end(0) == '3'), OBSERVED '3.041666' FAIL
 END OF TEST
Comment 6 Philippe Normand 2022-08-16 11:56:41 PDT
(In reply to Philippe Normand from comment #3)
> What's the status of this patch? It was reviewed but never merged.

Ping Alicia?
Comment 7 Alicia Boya García 2022-08-19 05:01:59 PDT
(In reply to Philippe Normand from comment #6)
> (In reply to Philippe Normand from comment #3)
> > What's the status of this patch? It was reviewed but never merged.
> 
> Ping Alicia?

I am aware of it, just had my attention on other things. My biggest problem with this patch was tests regressing in convoluted ways that should hopefully have been fixed by previous patches. Nowadays it would need a rebase and re-test.