Bug 308588
| Summary: | http/wpt/mediarecorder/MediaRecorder-matroska-AV-audio-video-dataavailable.html is a permanent failure on Mac Pro intel | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Jean-Yves Avenard [:jya] <jean-yves.avenard> |
| Component: | Media | Assignee: | Jean-Yves Avenard [:jya] <jean-yves.avenard> |
| Status: | RESOLVED DUPLICATE | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=297674 | ||
Jean-Yves Avenard [:jya]
```
--- /Volumes/Data/worker/macOS-Sequoia-Release-WK2-Intel-Tests-EWS/build/layout-test-results/http/wpt/mediarecorder/MediaRecorder-matroska-AV-audio-video-dataavailable-expected.txt
+++ /Volumes/Data/worker/macOS-Sequoia-Release-WK2-Intel-Tests-EWS/build/layout-test-results/http/wpt/mediarecorder/MediaRecorder-matroska-AV-audio-video-dataavailable-actual.txt
@@ -1,5 +1,7 @@
-PASS MediaRecorder can successfully record the video for an audio-video stream into a matroska file
+Harness Error (FAIL), message = Error: assert_unreached: recording didn't finish on time Reached unreachable code
+FAIL MediaRecorder can successfully record the video for an audio-video stream into a matroska file assert_approx_equals: Red channel of the pixel at (20, 20) expected 20 +/- 50 but got 229
+
```
for some reasons on MacPro and iMac Pro, encoding h264 fails (but works with vp9 or vp8)
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/171114202>
Jean-Yves Avenard [:jya]
Adding logging to determine what going on, you can see that the VideoEncoder::encode promise is resolved when using an H264 encoder well before a frame has been returned.
```
22:05:19.880 68157 Queuing 2 frames for encoding, total frames to be enqueued:2
22:05:19.880 68157 Encoding: frame:0.000000 needKeyframe:1
22:05:19.880 68157 Encoding: frame:0.000001 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.058049 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.066757 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.069659 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.087074 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.101587 needKeyframe:0
22:05:19.880 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.880 68157 Encoding: frame:0.121904 needKeyframe:0
22:05:19.881 68157 MediaRecorderPrivateEncoder::FlushPendingData upTo:0.165442
22:05:19.881 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.881 68157 Encoding: frame:0.136417 needKeyframe:0
22:05:19.881 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.881 68157 Encoding: frame:0.153832 needKeyframe:0
22:05:19.881 68157 frame:0.000000 encoded in: 170.146290 success:1
22:05:19.881 68157 frame:0.000001 encoded in: 28.323144 success:1
22:05:19.881 68157 Queuing 1 frames for encoding, total frames to be enqueued:1
22:05:19.881 68157 Encoding: frame:0.168344 needKeyframe:0
22:05:19.881 68157 frame:0.058049 encoded in: 20.977593 success:1
22:05:19.881 68157 frame:0.066757 encoded in: 20.198881 success:1
22:05:19.881 68157 frame:0.069659 encoded in: 19.721935 success:1
22:05:19.881 68157 frame:0.087074 encoded in: 19.450410 success:1
22:05:19.881 68157 frame:0.101587 encoded in: 5.902721 success:1
22:05:19.881 68157 frame:0.121904 encoded in: 4.249359 success:1
22:05:19.881 68157 All frames prior currentTime:0.165442 encoded
```
even though all frames were properly enqueued ; the FlushPendingData promise has been resolved, which indicates that the `VideoEncoder::EncodePromise` is not correctly resolved (way too early).
As this MacPro takes over 180ms to encode the first frame and we are asking for 200ms segments, it's missing the expected frames.
Jean-Yves Avenard [:jya]
This issue was already lodged as bug 297674
*** This bug has been marked as a duplicate of bug 297674 ***