Bug 213699

Summary: [GStreamer] ⛱ MediaRecorder implementation
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: PlatformAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: aboya, dpino, fujii.hironori, lmoura
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=238774
https://bugs.webkit.org/show_bug.cgi?id=295985
Bug Depends on: 236558    
Bug Blocks: 296928    

Philippe Normand
Reported 2020-06-28 08:45:29 PDT
Implement Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h for GTK/WPE.
Attachments
Philippe Normand
Comment 1 2020-06-28 08:47:25 PDT
Demo: https://addpipe.com/media-recorder-api-demo/ Layout tests: # MediaRecorder is not currently implemented http/wpt/mediarecorder [ Skip ] imported/w3c/web-platform-tests/mediacapture-record [ Skip ]
Philippe Normand
Comment 2 2022-02-23 03:44:31 PST
After landing the basic backend, the remaining failures are: webkit.org/b/213699 http/wpt/mediarecorder/mimeType.html [ Failure ] webkit.org/b/213699 http/wpt/mediarecorder/mute-tracks.html [ Failure ] webkit.org/b/213699 http/wpt/mediarecorder/video-rotation.html [ Failure ] webkit.org/b/213699 imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-mimetype.html [ Timeout ] webkit.org/b/213699 imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-no-sink.https.html [ Failure ] webkit.org/b/213699 imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https.html [ Failure ] webkit.org/b/213699 http/wpt/mediarecorder/set-srcObject-MediaStream-Blob.html [ Pass Failure ] # Our WebRTC encoder doesn't support high h.264 profile yet. webkit.org/b/213699 http/wpt/mediarecorder/MediaRecorder-video-h264-profiles.html [ Failure ] # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1017 webkit.org/b/213699 imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html [ Pass Crash ]
Diego Pino
Comment 3 2023-02-01 13:58:00 PST
http/wpt/mediarecorder/mute-tracks.html is now a flaky crash (but crashing most of the times): https://results.webkit.org/?suite=layout-tests&test=http%2Fwpt%2Fmediarecorder%2Fmute-tracks.html&platform=GTK&platform=WPE&platform=mac&platform=win The test is a flaky crash in other platforms too. The test is also crashing in WPE Debug but the bot is not generating a stack trace, only stderr. https://build.webkit.org/results/WPE-Linux-64-bit-Debug-Tests/259642@main%20(4377)/http/wpt/mediarecorder/mute-tracks-crash-log.txt ``` STDERR: STDERR: (WPEWebProcess:175549): GStreamer-Video-CRITICAL **: 19:31:04.279: gst_video_converter_new_with_pool: assertion 'in_info->fps_n == out_info->fps_n' failed STDERR: WPEWebProcess terminated (pid 175549) for reason: crash STDERR: LEAK: 44 WebPageProxy ``` Stack trace from WPE Release: ``` Thread 1 (Thread 0x7f71097fa640 (LWP 29642)): #0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44 #1 0x00007f71abcb91f3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78 #2 0x00007f71abc6700e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #3 0x00007f71abc507fc in __GI_abort () at abort.c:79 #4 0x00007f71ac3e0b43 in g_assertion_message (domain=<optimized out>, file=0x7f7128197738 "../gst/videorate/gstvideorate.c", line=<optimized out>, func=<optimized out>, message=<optimized out>) at ../glib/gtestutils.c:3253 #5 0x00007f71ac43c1a7 in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x7f7128197738 "../gst/videorate/gstvideorate.c", line=line@entry=741, func=func@entry=0x7f7128198330 <__func__.6> "gst_video_rate_push_buffer", expr=expr@entry=0x7f71281979d8 "GST_BUFFER_DURATION (outbuf) != 0") at ../glib/gtestutils.c:3 #6 0x00007f7128192838 in gst_video_rate_push_buffer (videorate=videorate@entry=0x55751e5648f0 [GstVideoRate|videorate15], outbuf=0x7f6fc4015ea0 [None], duplicate=duplicate@entry=0, next_intime=next_intime@entry=97242462 [0:00:00.097242462], invalid_duration=invalid_duration@entry=0) at ../gst/videorate/gstvideorate.c:741 #7 0x00007f7128192a80 in gst_video_rate_flush_prev (videorate=videorate@entry=0x55751e5648f0 [GstVideoRate|videorate15], duplicate=duplicate@entry=0, next_intime=next_intime@entry=97242462 [0:00:00.097242462], invalid_duration=invalid_duration@entry=0) at ../gst/videorate/gstvideorate.c:777 #8 0x00007f7128194804 in gst_video_rate_transform_ip (trans=<optimized out>, buffer=0x7f6fb0051b40 [None]) at ../gst/videorate/gstvideorate.c:1902 #9 0x00007f71a922e31a in default_generate_output (trans=0x55751e5648f0 [GstBaseTransform|videorate15], outbuf=0x7f71097f9130) at ../libs/gst/base/gstbasetransform.c:2197 #10 0x00007f71a923c246 in gst_base_transform_chain (pad=<optimized out>, parent=0x55751e5648f0 [GstObject|videorate15], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2355 #11 0x00007f71ac212775 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55751e417870 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4463 #12 0x00007f71ac216114 in gst_pad_push_data (pad=pad@entry=0x55751e416f30 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4739 #13 0x00007f71ac2164de in gst_pad_push (pad=0x55751e416f30 [GstPad|src], buffer=0x7f6fb0051b40 [None]) at ../gst/gstpad.c:4858 #14 0x00007f71a923c31b in gst_base_transform_chain (pad=<optimized out>, parent=0x55751e568100 [GstObject|videoconvert47], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2391 #15 0x00007f71ac212775 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55751e3c5900 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4463 #16 0x00007f71ac216114 in gst_pad_push_data (pad=pad@entry=0x55751e3c56b0 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4739 #17 0x00007f71ac2164de in gst_pad_push (pad=0x55751e3c56b0 [GstPad|src], buffer=0x7f6fb0051b40 [None]) at ../gst/gstpad.c:4858 #18 0x00007f71a923c31b in gst_base_transform_chain (pad=<optimized out>, parent=0x55751e567c20 [GstObject|videoscale31], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2391 #19 0x00007f71ac212775 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55751e3c5da0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4463 #20 0x00007f71ac216114 in gst_pad_push_data (pad=pad@entry=0x55751e3c5b50 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f6fb0051b40) at ../gst/gstpad.c:4739 #21 0x00007f71ac2164de in gst_pad_push (pad=0x55751e3c5b50 [GstPad|src], buffer=0x7f6fb0051b40 [None]) at ../gst/gstpad.c:4858 #22 0x00007f71a923c31b in gst_base_transform_chain (pad=<optimized out>, parent=0x55751e564480 [GstObject|videoconvert46], buffer=<optimized out>) at ../libs/gst/base/gstbasetransform.c:2391 #23 0x00007f71ac212775 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55751e3c4b20 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f6fc40117e0) at ../gst/gstpad.c:4463 #24 0x00007f71ac216114 in gst_pad_push_data (pad=pad@entry=0x55751e3f49a0 [GstPad|encodingsrc], type=type@entry=4112, data=data@entry=0x7f6fc40117e0) at ../gst/gstpad.c:4739 #25 0x00007f71ac2164de in gst_pad_push (pad=pad@entry=0x55751e3f49a0 [GstPad|encodingsrc], buffer=buffer@entry=0x7f6fc40117e0 [None]) at ../gst/gstpad.c:4858 #26 0x00007f713c01b995 in gst_stream_splitter_chain (pad=<optimized out>, parent=0x55751e658550 [GstObject|streamsplitter32], buf=0x7f6fc40117e0 [None]) at ../gst/encoding/gststreamsplitter.c:141 #27 0x00007f71ac212775 in gst_pad_chain_data_unchecked (pad=pad@entry=0x55751e2f28d0 [GstPad|sink], type=type@entry=4112, data=data@entry=0x7f6fc40117e0) at ../gst/gstpad.c:4463 #28 0x00007f71ac216114 in gst_pad_push_data (pad=pad@entry=0x55751e3cf760 [GstPad|src], type=type@entry=4112, data=data@entry=0x7f6fc40117e0) at ../gst/gstpad.c:4739 #29 0x00007f71ac2164de in gst_pad_push (pad=0x55751e3cf760 [GstPad|src], buffer=buffer@entry=0x7f6fc40117e0 [None]) at ../gst/gstpad.c:4858 #30 0x00007f71480985ec in gst_queue_push_one (queue=0x55751e343b00 [GstQueue|queue68]) at ../plugins/elements/gstqueue.c:1388 #31 gst_queue_loop (pad=<optimized out>) at ../plugins/elements/gstqueue.c:1541 #32 0x00007f71ac23ed41 in gst_task_func (task=0x7f6fc400c5f0 [GstTask|queue68:src]) at ../gst/gsttask.c:384 #33 0x00007f71ac44b692 in g_thread_pool_thread_proxy (data=<optimized out>) at ../glib/gthreadpool.c:350 #34 0x00007f71ac448722 in g_thread_proxy (data=0x7f6f80001de0) at ../glib/gthread.c:827 #35 0x00007f71abcb71da in start_thread (arg=<optimized out>) at pthread_create.c:442 #36 0x00007f71abd3ff44 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100 ```
Fujii Hironori
Comment 4 2025-12-30 00:30:45 PST
http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html is still randomly crashing. https://build.webkit.org/results/WPE-Linux-64-bit-Debug-Tests/304895@main%20(13546)/http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-crash-log.txt Thread 1 (Thread 0x7fb8419fc6c0 (LWP 2241657)): #0 sk_collection_check_bounds<int> (i=3, size=3) at ../../../Source/ThirdParty/skia/include/private/base/SkAssert.h:152 #1 0x00007fb8cb82b79f in SkTDArray<GrGpuResource*>::operator[] (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/include/private/base/SkTDArray.h:156 #2 0x00007fb8cb82c286 in SkTDPQueue<GrGpuResource*, &GrResourceCache::CompareTimestamp, &GrResourceCache::AccessResourceIndex>::setIndex (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/src/base/SkTDPQueue.h:203 #3 0x00007fb8cb82c641 in SkTDPQueue<GrGpuResource*, &GrResourceCache::CompareTimestamp, &GrResourceCache::AccessResourceIndex>::percolateUpIfNecessary (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/src/base/SkTDPQueue.h:153 #4 0x00007fb8cb82b4a2 in SkTDPQueue<GrGpuResource*, &GrResourceCache::CompareTimestamp, &GrResourceCache::AccessResourceIndex>::insert (this=0x562df937d598, entry=0x562dfbbaa730) at ../../../Source/ThirdParty/skia/src/base/SkTDPQueue.h:74 #5 0x00007fb8cb829b28 in GrResourceCache::notifyARefCntReachedZero (this=0x562df937d580, resource=0x562dfbbaa730, removedRef=GrIORef<GrGpuResource>::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrResourceCache.cpp:350 #6 0x00007fb8cb802c28 in GrResourceCache::ResourceAccess::notifyARefCntReachedZero (this=0x7fb8419faee8, resource=0x562dfbbaa730, removedRef=GrIORef<GrGpuResource>::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrResourceCache.h:449 #7 0x00007fb8cb80387a in GrGpuResource::notifyARefCntIsZero (this=0x562dfbbaa730, removedRef=GrIORef<GrGpuResource>::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.cpp:180 #8 0x00007fb8cb796308 in GrIORef<GrGpuResource>::notifyWillBeZero (this=0x562dfbbaa738, removedRef=GrIORef<GrGpuResource>::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.h:102 #9 0x00007fb8cb7947fa in GrIORef<GrGpuResource>::unref (this=0x562dfbbaa738) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.h:65 #10 0x00007fb8cb825404 in SkSafeUnref<GrSurface> (obj=0x562dfbbaa730) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151 #11 0x00007fb8cb8256a6 in sk_sp<GrSurface>::reset (this=0x562dfbb50a50, ptr=0x0) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:316 #12 0x00007fb8cb83bed3 in sk_sp<GrSurface>::operator=(decltype(nullptr)) (this=0x562dfbb50a50) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:260 #13 0x00007fb8cb83d942 in GrTextureProxy::~GrTextureProxy (this=0x562dfbb509e0, __vtt_parm=0x7fb8ccb84048 <VTT for GrTextureRenderTargetProxy+24>, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureProxy.cpp:110 #14 0x00007fb8cb83f5bf in GrTextureRenderTargetProxy::~GrTextureRenderTargetProxy (this=0x562dfbb509b0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h:44 #15 0x00007fb8cb83f624 in GrTextureRenderTargetProxy::~GrTextureRenderTargetProxy (this=0x562dfbb509b0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h:44 #16 0x00007fb8cb797de7 in SkNVRefCnt<GrSurfaceProxy>::unref (this=0x562dfbb50a48) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:181 #17 0x00007fb8cb7962bb in SkSafeUnref<GrSurfaceProxy> (obj=0x562dfbb50a40) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151 #18 0x00007fb8cb794775 in sk_sp<GrSurfaceProxy>::~sk_sp (this=0x562dfbaae390, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:256 #19 0x00007fb8cb923460 in SkImage_Ganesh::ProxyChooser::~ProxyChooser (this=0x562dfbaae388, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/image/SkImage_Ganesh.cpp:76 #20 0x00007fb8cb92417e in SkImage_Ganesh::~SkImage_Ganesh (this=0x562dfbaae350, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/image/SkImage_Ganesh.cpp:244 #21 0x00007fb8cb9241aa in SkImage_Ganesh::~SkImage_Ganesh (this=0x562dfbaae350, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/image/SkImage_Ganesh.cpp:244 #22 0x00007fb8cb49520a in SkRefCntBase::internal_dispose (this=0x562dfbaae350) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:99 #23 0x00007fb8bd9aa734 in SkRefCntBase::unref (this=0x562dfbaae350) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:78 #24 0x00007fb8bd9aa981 in SkSafeUnref<SkImage> (obj=0x562dfbaae350) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151 #25 0x00007fb8bd9aa84b in sk_sp<SkImage>::~sk_sp (this=0x7fb89c110698, __in_chrg=<optimized out>) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:256 #26 0x00007fb8c993be95 in WebCore::NativeImage::~NativeImage (this=0x7fb89c110680, __in_chrg=<optimized out>) at ../../../Source/WebCore/platform/graphics/NativeImage.cpp:63 #27 0x00007fb8c993b5a7 in WebCore::NativeImage::operator delete (object=0x7fb89c110680, size=80) at WebCore/PrivateHeaders/WebCore/NativeImage.h:50 #28 0x00007fb8c993bef3 in WebCore::NativeImage::~NativeImage (this=0x7fb89c110680, __in_chrg=<optimized out>) at ../../../Source/WebCore/platform/graphics/NativeImage.cpp:63 #29 0x00007fb8bd9aabf1 in WTF::ThreadSafeRefCounted<WebCore::NativeImage, (WTF::DestructionThread)0>::deref (this=0x7fb89c110688) at WTF/Headers/wtf/ThreadSafeRefCounted.h:99 #30 0x00007fb8bd9aaa84 in WTF::DefaultRefDerefTraits<WebCore::NativeImage>::derefIfNotNull (ptr=0x7fb89c110680) at WTF/Headers/wtf/Ref.h:64 #31 0x00007fb8be714f97 in WTF::Ref<WebCore::NativeImage, WTF::RawPtrTraits<WebCore::NativeImage>, WTF::DefaultRefDerefTraits<WebCore::NativeImage> >::~Ref (this=0x7fb89c5e4568, __in_chrg=<optimized out>) at WTF/Headers/wtf/Ref.h:85 #32 0x00007fb8c374efe0 in WebCore::CoordinatedPlatformLayerBufferNativeImage::~CoordinatedPlatformLayerBufferNativeImage (this=0x7fb89c5e4540, __in_chrg=<optimized out>) at ../../../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp:91 #33 0x00007fb8c374f00c in WebCore::CoordinatedPlatformLayerBufferNativeImage::~CoordinatedPlatformLayerBufferNativeImage (this=0x7fb89c5e4540, __in_chrg=<optimized out>) at ../../../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp:91 #34 0x00007fb8bff9a8bc in std::default_delete<WebCore::CoordinatedPlatformLayerBuffer>::operator() (this=0x7fb89c431620, __ptr=0x7fb89c5e4540) at /usr/include/c++/13/bits/unique_ptr.h:99 #35 0x00007fb8c374b31a in std::__uniq_ptr_impl<WebCore::CoordinatedPlatformLayerBuffer, std::default_delete<WebCore::CoordinatedPlatformLayerBuffer> >::reset (this=0x7fb89c431620, __p=0x7fb89c5e4740) at /usr/include/c++/13/bits/unique_ptr.h:211 #36 0x00007fb8c374a184 in std::__uniq_ptr_impl<WebCore::CoordinatedPlatformLayerBuffer, std::default_delete<WebCore::CoordinatedPlatformLayerBuffer> >::operator= (this=0x7fb89c431620, __u=...) at /usr/include/c++/13/bits/unique_ptr.h:191 #37 0x00007fb8c37456bd in std::__uniq_ptr_data<WebCore::CoordinatedPlatformLayerBuffer, std::default_delete<WebCore::CoordinatedPlatformLayerBuffer>, true, true>::operator= (this=0x7fb89c431620) at /usr/include/c++/13/bits/unique_ptr.h:243 #38 0x00007fb8c37456eb in std::unique_ptr<WebCore::CoordinatedPlatformLayerBuffer, std::default_delete<WebCore::CoordinatedPlatformLayerBuffer> >::operator= (this=0x7fb89c431620) at /usr/include/c++/13/bits/unique_ptr.h:414 #39 0x00007fb8c3749674 in WebCore::CoordinatedPlatformLayer::flushCompositingState (this=0x7fb89c4313d0, reasons=..., textureMapper=...) at ../../../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:1082 #40 0x00007fb8c06225eb in WebKit::ThreadedCompositor::flushCompositingState (this=0x7fb89c0a04a0, reasons=...) at ../../../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:258 #41 0x00007fb8c06237dd in WebKit::ThreadedCompositor::renderLayerTree (this=0x7fb89c0a04a0) at ../../../Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCompositor.cpp:399 #42 0x00007fb8c0629d03 in WTF::RunLoop::Timer::Timer<WebKit::ThreadedCompositor>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebKit::ThreadedCompositor*, void (WebKit::ThreadedCompositor::*)())::{lambda()#1}::operator()() const (__closure=0x7fb89c0d65b8) at WTF/Headers/wtf/RunLoop.h:210 #43 0x00007fb8c064382e in WTF::Detail::CallableWrapper<WTF::RunLoop::Timer::Timer<WebKit::ThreadedCompositor>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebKit::ThreadedCompositor*, void (WebKit::ThreadedCompositor::*)())::{lambda()#1}, void>::call() (this=0x7fb89c0d65b0) at WTF/Headers/wtf/Function.h:59 #44 0x00007fb8bd94a2ed in WTF::Function<void ()>::operator()() const (this=0x7fb89c0a0550) at WTF/Headers/wtf/Function.h:103 #45 0x00007fb8bd948f00 in WTF::RunLoop::Timer::fired (this=0x7fb89c0a0518) at WTF/Headers/wtf/RunLoop.h:262 #46 0x00007fb8c33a3c8b in operator() (__closure=0x0, userData=0x7fb89c0a0518) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:327 #47 0x00007fb8c33a3ccf in _FUN () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:331 #48 0x00007fb8c33a2854 in operator() (__closure=0x0, source=0x562df956cac0, callback=0x7fb8c33a3cae <_FUN(gpointer)>, userData=0x7fb89c0a0518) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:115 #49 0x00007fb8c33a28c1 in _FUN () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:118 #50 0x00007fb8ace7c49e in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #51 0x00007fb8ace7c710 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0 #52 0x00007fb8c33a3245 in WTF::RunLoop::runGLibMainLoopIteration (this=0x7fb89c108110, mayBlock=WTF::RunLoop::MayBlock::Yes) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:190 #53 0x00007fb8c33a32b4 in WTF::RunLoop::runGLibMainLoop (this=0x7fb89c108110) at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:199 #54 0x00007fb8c33a337c in WTF::RunLoop::run () at ../../../Source/WTF/wtf/glib/RunLoopGLib.cpp:212 #55 0x00007fb8c31ba42a in operator() (__closure=0x7fb89c0fad88) at ../../../Source/WTF/wtf/RunLoop.cpp:111 #56 0x00007fb8c31be5b2 in WTF::Detail::CallableWrapper<WTF::RunLoop::create(WTF::ASCIILiteral, WTF::ThreadType, WTF::Thread::QOS)::<lambda()>, void>::call(void) (this=0x7fb89c0fad80) at ../../../Source/WTF/wtf/Function.h:59 #57 0x00007fb8bd94a2ed in WTF::Function<void ()>::operator()() const (this=0x7fb8419fbb38) at WTF/Headers/wtf/Function.h:103 #58 0x00007fb8c32d6b9f in WTF::Thread::entryPoint (newThreadContext=0x7fb89c0388a0) at ../../../Source/WTF/wtf/Threading.cpp:260 #59 0x00007fb8c33baf95 in WTF::wtfThreadEntryPoint (context=0x7fb89c0388a0) at ../../../Source/WTF/wtf/posix/ThreadingPOSIX.cpp:245 #60 0x00007fb8ade8aaa4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447 #61 0x00007fb8adf17c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
Alicia Boya García
Comment 5 2026-02-05 10:32:00 PST
http/wpt/mediarecorder/video-rotation.html is flaky, but FWIW that is the case in macOS and iOS according to expectations, so it could also be a cross-platform issue: --- /sdk/webkit/layout-test-results/http/wpt/mediarecorder/video-rotation-expected.txt +++ /sdk/webkit/layout-test-results/http/wpt/mediarecorder/video-rotation-actual.txt @@ -1,4 +1,4 @@ -PASS Record a rotated video +FAIL Record a rotated video assert_equals: recorded video width expected 480 but got 640 platform/ios/TestExpectations 6581:http/wpt/mediarecorder/video-rotation.html [ Pass Failure ] platform/mac-wk2/TestExpectations 379:http/wpt/mediarecorder/video-rotation.html [ Pass Failure Timeout ]
Note You need to log in before you can comment on or make changes to this bug.