[webcodecs] Implement transfer semantics for VideoFrame #27772
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This CL adds paths for modules to implement transfer semantics:
ExtractTransferables() is split into the outer loop (stays in
SerializedScriptValue) and the inner per-object processing which
moves into V8ScriptValueSerializer. Modules can add implementations
to V8ScriptValueSerializerForModules.
Transferables gains a generic TransferList map modelled after
SerializedScriptValue::Attachment. The TransferList API includes a
method for finalizing transfers, which is called from
V8ScriptValueSerializer::FinalizeTransfer().
Using these APIs, transfer of VideoFrames is then implemented
straightforwardly.
Bug: 1178038
Change-Id: Iafdc02b368d09cdb04c6e48ef187a4733b14c0f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2719085
Commit-Queue: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Cr-Commit-Position: refs/heads/master@{#873099}