WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
240113
Allow MediaPlayerPrivateMediaStreamAVFObjC to avoid pixel conformers if IOSurfaces are not allowed
https://bugs.webkit.org/show_bug.cgi?id=240113
Summary
Allow MediaPlayerPrivateMediaStreamAVFObjC to avoid pixel conformers if IOSur...
youenn fablet
Reported
2022-05-05 01:32:13 PDT
Allow MediaPlayerPrivateMediaStreamAVFObjC to avoid pixel conformers if IOSurfaces are not allowed
Attachments
Patch
(28.78 KB, patch)
2022-05-05 02:09 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(29.04 KB, patch)
2022-05-05 02:42 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(29.08 KB, patch)
2022-05-05 02:52 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(29.01 KB, patch)
2022-05-05 04:23 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch for landing
(29.09 KB, patch)
2022-05-05 09:34 PDT
,
youenn fablet
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch for landing
(29.35 KB, patch)
2022-05-05 10:36 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch for landing
(32.15 KB, patch)
2022-05-06 02:10 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
youenn fablet
Comment 1
2022-05-05 02:06:06 PDT
<
rdar://92629845
>
youenn fablet
Comment 2
2022-05-05 02:09:21 PDT
Created
attachment 458862
[details]
Patch
youenn fablet
Comment 3
2022-05-05 02:42:28 PDT
Created
attachment 458863
[details]
Patch
youenn fablet
Comment 4
2022-05-05 02:52:44 PDT
Created
attachment 458864
[details]
Patch
youenn fablet
Comment 5
2022-05-05 04:23:52 PDT
Created
attachment 458865
[details]
Patch
Eric Carlson
Comment 6
2022-05-05 05:42:43 PDT
Comment on
attachment 458865
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=458865&action=review
r=me once the bots are happy
> Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:142 > + m_connection->send(Messages::RemoteVideoFrameObjectHeapProxyProcessor::NewConvertedVideoFrameBuffer { { } }, 0);
It looks like SharedVideoFrameReader doesn't log errors, so it might be worth logging an error here to help debug unexpected failures.
> Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:149 > + m_connection->send(Messages::RemoteVideoFrameObjectHeapProxyProcessor::NewConvertedVideoFrameBuffer { { } }, 0);
Ditto, PixelBufferConformerCV also doesn't log failures.
> Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.mm:32 > +
Nit: unneeded white space
youenn fablet
Comment 7
2022-05-05 05:51:52 PDT
> It looks like SharedVideoFrameReader doesn't log errors, so it might be > worth logging an error here to help debug unexpected failures.
Let's fix this in
https://bugs.webkit.org/show_bug.cgi?id=236066
, I just uploaded a patch.
youenn fablet
Comment 8
2022-05-05 05:53:17 PDT
> > Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:149 > > + m_connection->send(Messages::RemoteVideoFrameObjectHeapProxyProcessor::NewConvertedVideoFrameBuffer { { } }, 0); > > Ditto, PixelBufferConformerCV also doesn't log failures.
Will add logging for this one.
Simon Fraser (smfr)
Comment 9
2022-05-05 08:47:48 PDT
Comment on
attachment 458865
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=458865&action=review
> Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:145 > + connection.send(Messages::RemoteVideoFrameObjectHeap::ConvertBuffer { WTFMove(*buffer) }, 0); > + m_conversionSemaphore.wait();
Why this and not just a sync message? Sync IPC has logic to avoid deadlocking, but this doesn't.
youenn fablet
Comment 10
2022-05-05 09:34:07 PDT
Created
attachment 458882
[details]
Patch for landing
youenn fablet
Comment 11
2022-05-05 10:36:58 PDT
Created
attachment 458888
[details]
Patch for landing
youenn fablet
Comment 12
2022-05-05 11:22:57 PDT
(In reply to Simon Fraser (smfr) from
comment #9
)
> Comment on
attachment 458865
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=458865&action=review
> > > Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:145 > > + connection.send(Messages::RemoteVideoFrameObjectHeap::ConvertBuffer { WTFMove(*buffer) }, 0); > > + m_conversionSemaphore.wait(); > > Why this and not just a sync message? Sync IPC has logic to avoid > deadlocking, but this doesn't.
We send a message from main thread but we receive the answer from a work queue.
youenn fablet
Comment 13
2022-05-06 02:10:46 PDT
Created
attachment 458941
[details]
Patch for landing
youenn fablet
Comment 14
2022-05-06 02:31:22 PDT
(In reply to youenn fablet from
comment #12
)
> (In reply to Simon Fraser (smfr) from
comment #9
) > > Comment on
attachment 458865
[details]
> > Patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=458865&action=review
> > > > > Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:145 > > > + connection.send(Messages::RemoteVideoFrameObjectHeap::ConvertBuffer { WTFMove(*buffer) }, 0); > > > + m_conversionSemaphore.wait(); > > > > Why this and not just a sync message? Sync IPC has logic to avoid > > deadlocking, but this doesn't. > > We send a message from main thread but we receive the answer from a work > queue.
Thinking more about it, this will create a deadlock in case of GPUProcess crash, so we might need to use sync IPC, though I am unsure how sync IPC and work queue message receivers do things consistently. I'll file a bug to keep track of this.
youenn fablet
Comment 15
2022-05-06 02:32:24 PDT
I filed
https://bugs.webkit.org/show_bug.cgi?id=240161
.
EWS
Comment 16
2022-05-06 02:53:49 PDT
Committed
r293886
(
250344@main
): <
https://commits.webkit.org/250344@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 458941
[details]
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug