[webkit-changes] [WebKit/WebKit] 2231e0: Make WebCodecs isConfigSupported more accurate by ...

youennf noreply at github.com
Wed Oct 19 00:37:00 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2231e02d13486d2d164b219751b6316ef9502b30
      https://github.com/WebKit/WebKit/commit/2231e02d13486d2d164b219751b6316ef9502b30
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2022-10-19 (Wed, 19 Oct 2022)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_vp9_p2-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_annexb-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_vp9_p2-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_vp9_p2-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_vp9_p2-expected.txt
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.idl
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoderConfig.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.idl
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.h
    M Source/WebCore/dom/ScriptExecutionContext.cpp
    M Source/WebCore/dom/ScriptExecutionContext.h
    M Source/WebCore/platform/VideoDecoder.h
    M Source/WebCore/platform/VideoEncoder.h

  Log Message:
  -----------
  Make WebCodecs isConfigSupported more accurate by relying on codec creation code path
https://bugs.webkit.org/show_bug.cgi?id=246677
rdar://problem/101278486

Reviewed by Eric Carlson.

Use VideoDecoder::create and VideoEncoder::create to validate whether a configuration is supported or not.
Since this might hop to other threads, we store the promises in ScriptExecutionContext to prevent from refing/unrefing them in other threads.

Covered by rebased tests.

* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_avc-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_vp9_p2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_vp9_p2-expected.txt:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
(WebCore::createVideoDecoderConfig):
(WebCore::WebCodecsVideoDecoder::configure):
(WebCore::WebCodecsVideoDecoder::isConfigSupported):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.h:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoderConfig.h:
(WebCore::WebCodecsVideoDecoderConfig::isolatedCopy):
(WebCore::WebCodecsVideoDecoderConfig::isolatedCopy const):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:
(WebCore::createVideoEncoderConfig):
(WebCore::WebCodecsVideoEncoder::configure):
(WebCore::WebCodecsVideoEncoder::isConfigSupported):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.h:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.idl:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.h:
(WebCore::WebCodecsVideoEncoderConfig::isolatedCopy):
(WebCore::WebCodecsVideoEncoderConfig::isolatedCopy const):
* Source/WebCore/dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
* Source/WebCore/dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::addDeferredPromise):
(WebCore::ScriptExecutionContext::takeDeferredPromise):
* Source/WebCore/platform/VideoDecoder.h:
* Source/WebCore/platform/VideoEncoder.h:

Canonical link: https://commits.webkit.org/255717@main




More information about the webkit-changes mailing list