<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>213699</bug_id>
          
          <creation_ts>2020-06-28 08:45:29 -0700</creation_ts>
          <short_desc>[GStreamer] ⛱ MediaRecorder implementation</short_desc>
          <delta_ts>2026-02-05 10:32:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=238774</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=295985</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236558</dependson>
          <blocked>296928</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboya</cc>
    
    <cc>dpino</cc>
    
    <cc>fujii</cc>
    
    <cc>lmoura</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666875</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-28 08:45:29 -0700</bug_when>
    <thetext>Implement Source/WebCore/platform/mediarecorder/MediaRecorderPrivate.h for GTK/WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666876</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-06-28 08:47:25 -0700</bug_when>
    <thetext>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 ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845076</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-02-23 03:44:31 -0800</bug_when>
    <thetext>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&apos;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 ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930259</commentid>
    <comment_count>3</comment_count>
    <who name="Diego Pino">dpino</who>
    <bug_when>2023-02-01 13:58:00 -0800</bug_when>
    <thetext>http/wpt/mediarecorder/mute-tracks.html is now a flaky crash (but crashing most of the times):

https://results.webkit.org/?suite=layout-tests&amp;test=http%2Fwpt%2Fmediarecorder%2Fmute-tracks.html&amp;platform=GTK&amp;platform=WPE&amp;platform=mac&amp;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 &apos;in_info-&gt;fps_n == out_info-&gt;fps_n&apos; 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=&lt;optimized out&gt;, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f71abcb91f3 in __pthread_kill_internal (signo=6, threadid=&lt;optimized out&gt;) 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=&lt;optimized out&gt;, file=0x7f7128197738 &quot;../gst/videorate/gstvideorate.c&quot;, line=&lt;optimized out&gt;, func=&lt;optimized out&gt;, message=&lt;optimized out&gt;) at ../glib/gtestutils.c:3253
#5  0x00007f71ac43c1a7 in g_assertion_message_expr (domain=domain@entry=0x0, file=file@entry=0x7f7128197738 &quot;../gst/videorate/gstvideorate.c&quot;, line=line@entry=741, func=func@entry=0x7f7128198330 &lt;__func__.6&gt; &quot;gst_video_rate_push_buffer&quot;, expr=expr@entry=0x7f71281979d8 &quot;GST_BUFFER_DURATION (outbuf) != 0&quot;) 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=&lt;optimized out&gt;, 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=&lt;optimized out&gt;, parent=0x55751e5648f0 [GstObject|videorate15], buffer=&lt;optimized out&gt;) 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=&lt;optimized out&gt;, parent=0x55751e568100 [GstObject|videoconvert47], buffer=&lt;optimized out&gt;) 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=&lt;optimized out&gt;, parent=0x55751e567c20 [GstObject|videoscale31], buffer=&lt;optimized out&gt;) 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=&lt;optimized out&gt;, parent=0x55751e564480 [GstObject|videoconvert46], buffer=&lt;optimized out&gt;) 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=&lt;optimized out&gt;, 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=&lt;optimized out&gt;) 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=&lt;optimized out&gt;) at ../glib/gthreadpool.c:350
#34 0x00007f71ac448722 in g_thread_proxy (data=0x7f6f80001de0) at ../glib/gthread.c:827
#35 0x00007f71abcb71da in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:442
#36 0x00007f71abd3ff44 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168558</commentid>
    <comment_count>4</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2025-12-30 00:30:45 -0800</bug_when>
    <thetext>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&lt;int&gt; (i=3, size=3) at ../../../Source/ThirdParty/skia/include/private/base/SkAssert.h:152
#1  0x00007fb8cb82b79f in SkTDArray&lt;GrGpuResource*&gt;::operator[] (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/include/private/base/SkTDArray.h:156
#2  0x00007fb8cb82c286 in SkTDPQueue&lt;GrGpuResource*, &amp;GrResourceCache::CompareTimestamp, &amp;GrResourceCache::AccessResourceIndex&gt;::setIndex (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/src/base/SkTDPQueue.h:203
#3  0x00007fb8cb82c641 in SkTDPQueue&lt;GrGpuResource*, &amp;GrResourceCache::CompareTimestamp, &amp;GrResourceCache::AccessResourceIndex&gt;::percolateUpIfNecessary (this=0x562df937d598, index=3) at ../../../Source/ThirdParty/skia/src/base/SkTDPQueue.h:153
#4  0x00007fb8cb82b4a2 in SkTDPQueue&lt;GrGpuResource*, &amp;GrResourceCache::CompareTimestamp, &amp;GrResourceCache::AccessResourceIndex&gt;::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&lt;GrGpuResource&gt;::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrResourceCache.cpp:350
#6  0x00007fb8cb802c28 in GrResourceCache::ResourceAccess::notifyARefCntReachedZero (this=0x7fb8419faee8, resource=0x562dfbbaa730, removedRef=GrIORef&lt;GrGpuResource&gt;::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrResourceCache.h:449
#7  0x00007fb8cb80387a in GrGpuResource::notifyARefCntIsZero (this=0x562dfbbaa730, removedRef=GrIORef&lt;GrGpuResource&gt;::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.cpp:180
#8  0x00007fb8cb796308 in GrIORef&lt;GrGpuResource&gt;::notifyWillBeZero (this=0x562dfbbaa738, removedRef=GrIORef&lt;GrGpuResource&gt;::LastRemovedRef::kMainRef) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.h:102
#9  0x00007fb8cb7947fa in GrIORef&lt;GrGpuResource&gt;::unref (this=0x562dfbbaa738) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrGpuResource.h:65
#10 0x00007fb8cb825404 in SkSafeUnref&lt;GrSurface&gt; (obj=0x562dfbbaa730) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151
#11 0x00007fb8cb8256a6 in sk_sp&lt;GrSurface&gt;::reset (this=0x562dfbb50a50, ptr=0x0) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:316
#12 0x00007fb8cb83bed3 in sk_sp&lt;GrSurface&gt;::operator=(decltype(nullptr)) (this=0x562dfbb50a50) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:260
#13 0x00007fb8cb83d942 in GrTextureProxy::~GrTextureProxy (this=0x562dfbb509e0, __vtt_parm=0x7fb8ccb84048 &lt;VTT for GrTextureRenderTargetProxy+24&gt;, __in_chrg=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureProxy.cpp:110
#14 0x00007fb8cb83f5bf in GrTextureRenderTargetProxy::~GrTextureRenderTargetProxy (this=0x562dfbb509b0, __in_chrg=&lt;optimized out&gt;, __vtt_parm=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h:44
#15 0x00007fb8cb83f624 in GrTextureRenderTargetProxy::~GrTextureRenderTargetProxy (this=0x562dfbb509b0, __in_chrg=&lt;optimized out&gt;, __vtt_parm=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/GrTextureRenderTargetProxy.h:44
#16 0x00007fb8cb797de7 in SkNVRefCnt&lt;GrSurfaceProxy&gt;::unref (this=0x562dfbb50a48) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:181
#17 0x00007fb8cb7962bb in SkSafeUnref&lt;GrSurfaceProxy&gt; (obj=0x562dfbb50a40) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151
#18 0x00007fb8cb794775 in sk_sp&lt;GrSurfaceProxy&gt;::~sk_sp (this=0x562dfbaae390, __in_chrg=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:256
#19 0x00007fb8cb923460 in SkImage_Ganesh::ProxyChooser::~ProxyChooser (this=0x562dfbaae388, __in_chrg=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/image/SkImage_Ganesh.cpp:76
#20 0x00007fb8cb92417e in SkImage_Ganesh::~SkImage_Ganesh (this=0x562dfbaae350, __in_chrg=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/src/gpu/ganesh/image/SkImage_Ganesh.cpp:244
#21 0x00007fb8cb9241aa in SkImage_Ganesh::~SkImage_Ganesh (this=0x562dfbaae350, __in_chrg=&lt;optimized out&gt;) 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&lt;SkImage&gt; (obj=0x562dfbaae350) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:151
#25 0x00007fb8bd9aa84b in sk_sp&lt;SkImage&gt;::~sk_sp (this=0x7fb89c110698, __in_chrg=&lt;optimized out&gt;) at ../../../Source/ThirdParty/skia/include/core/SkRefCnt.h:256
#26 0x00007fb8c993be95 in WebCore::NativeImage::~NativeImage (this=0x7fb89c110680, __in_chrg=&lt;optimized out&gt;) 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=&lt;optimized out&gt;) at ../../../Source/WebCore/platform/graphics/NativeImage.cpp:63
#29 0x00007fb8bd9aabf1 in WTF::ThreadSafeRefCounted&lt;WebCore::NativeImage, (WTF::DestructionThread)0&gt;::deref (this=0x7fb89c110688) at WTF/Headers/wtf/ThreadSafeRefCounted.h:99
#30 0x00007fb8bd9aaa84 in WTF::DefaultRefDerefTraits&lt;WebCore::NativeImage&gt;::derefIfNotNull (ptr=0x7fb89c110680) at WTF/Headers/wtf/Ref.h:64
#31 0x00007fb8be714f97 in WTF::Ref&lt;WebCore::NativeImage, WTF::RawPtrTraits&lt;WebCore::NativeImage&gt;, WTF::DefaultRefDerefTraits&lt;WebCore::NativeImage&gt; &gt;::~Ref (this=0x7fb89c5e4568, __in_chrg=&lt;optimized out&gt;) at WTF/Headers/wtf/Ref.h:85
#32 0x00007fb8c374efe0 in WebCore::CoordinatedPlatformLayerBufferNativeImage::~CoordinatedPlatformLayerBufferNativeImage (this=0x7fb89c5e4540, __in_chrg=&lt;optimized out&gt;) at ../../../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp:91
#33 0x00007fb8c374f00c in WebCore::CoordinatedPlatformLayerBufferNativeImage::~CoordinatedPlatformLayerBufferNativeImage (this=0x7fb89c5e4540, __in_chrg=&lt;optimized out&gt;) at ../../../Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayerBufferNativeImage.cpp:91
#34 0x00007fb8bff9a8bc in std::default_delete&lt;WebCore::CoordinatedPlatformLayerBuffer&gt;::operator() (this=0x7fb89c431620, __ptr=0x7fb89c5e4540) at /usr/include/c++/13/bits/unique_ptr.h:99
#35 0x00007fb8c374b31a in std::__uniq_ptr_impl&lt;WebCore::CoordinatedPlatformLayerBuffer, std::default_delete&lt;WebCore::CoordinatedPlatformLayerBuffer&gt; &gt;::reset (this=0x7fb89c431620, __p=0x7fb89c5e4740) at /usr/include/c++/13/bits/unique_ptr.h:211
#36 0x00007fb8c374a184 in std::__uniq_ptr_impl&lt;WebCore::CoordinatedPlatformLayerBuffer, std::default_delete&lt;WebCore::CoordinatedPlatformLayerBuffer&gt; &gt;::operator= (this=0x7fb89c431620, __u=...) at /usr/include/c++/13/bits/unique_ptr.h:191
#37 0x00007fb8c37456bd in std::__uniq_ptr_data&lt;WebCore::CoordinatedPlatformLayerBuffer, std::default_delete&lt;WebCore::CoordinatedPlatformLayerBuffer&gt;, true, true&gt;::operator= (this=0x7fb89c431620) at /usr/include/c++/13/bits/unique_ptr.h:243
#38 0x00007fb8c37456eb in std::unique_ptr&lt;WebCore::CoordinatedPlatformLayerBuffer, std::default_delete&lt;WebCore::CoordinatedPlatformLayerBuffer&gt; &gt;::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&lt;WebKit::ThreadedCompositor&gt;(WTF::Ref&lt;WTF::RunLoop, WTF::RawPtrTraits&lt;WTF::RunLoop&gt;, WTF::DefaultRefDerefTraits&lt;WTF::RunLoop&gt; &gt;&amp;&amp;, 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&lt;WTF::RunLoop::Timer::Timer&lt;WebKit::ThreadedCompositor&gt;(WTF::Ref&lt;WTF::RunLoop, WTF::RawPtrTraits&lt;WTF::RunLoop&gt;, WTF::DefaultRefDerefTraits&lt;WTF::RunLoop&gt; &gt;&amp;&amp;, WTF::ASCIILiteral, WebKit::ThreadedCompositor*, void (WebKit::ThreadedCompositor::*)())::{lambda()#1}, void&gt;::call() (this=0x7fb89c0d65b0) at WTF/Headers/wtf/Function.h:59
#44 0x00007fb8bd94a2ed in WTF::Function&lt;void ()&gt;::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 &lt;_FUN(gpointer)&gt;, 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&lt;WTF::RunLoop::create(WTF::ASCIILiteral, WTF::ThreadType, WTF::Thread::QOS)::&lt;lambda()&gt;, void&gt;::call(void) (this=0x7fb89c0fad80) at ../../../Source/WTF/wtf/Function.h:59
#57 0x00007fb8bd94a2ed in WTF::Function&lt;void ()&gt;::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=&lt;optimized out&gt;) at ./nptl/pthread_create.c:447
#61 0x00007fb8adf17c6c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2178463</commentid>
    <comment_count>5</comment_count>
    <who name="Alicia Boya García">aboya</who>
    <bug_when>2026-02-05 10:32:00 -0800</bug_when>
    <thetext>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 ]</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>