Skip to content

[wpe-2.46] Insert cencparser when available#1630

Open
emutavchi wants to merge 2 commits intoWebPlatformForEmbedded:wpe-2.46from
emutavchi:wpe-2.46-insert-cencparser
Open

[wpe-2.46] Insert cencparser when available#1630
emutavchi wants to merge 2 commits intoWebPlatformForEmbedded:wpe-2.46from
emutavchi:wpe-2.46-insert-cencparser

Conversation

@emutavchi
Copy link
Collaborator

@emutavchi emutavchi commented Mar 3, 2026

On some platforms, we need to insert a custom parser element (cencparser) to convert H264/H265 video samples from AVC/AVC3 to byte-stream format. This is for platforms that don't provide secure parsers, but decoders only accept video in byte-stream format. So, the cencparser must be inserted before the decryptor to convert samples before they are moved to secure memory.
8d5967f

Build-Tests Layout-Tests
✅ 🛠 wpe-246-amd64-build ✅ 🧪 wpe-246-amd64-layout
✅ 🛠 wpe-246-arm32-build ✅ 🧪 wpe-246-arm32-layout

cencparser is a custom parser that converts H264/H265 CENC video from
AVC to byte-stream format. it is required to be inerted before
decryptor on platforms that don't provide secure parsers and decoder
only accepts video in byte-stream format.
…e is set

This can happend if upstream element (a capsfilter) queires caps during negotiation.
@emutavchi emutavchi requested a review from philn as a code owner March 3, 2026 12:45
@emutavchi emutavchi requested a review from modeveci March 3, 2026 12:45
@modeveci modeveci requested review from calvaris and removed request for philn March 3, 2026 14:12
@calvaris
Copy link
Member

calvaris commented Mar 4, 2026

Can you please explain what the patch does and why, please?

@modeveci
Copy link

modeveci commented Mar 4, 2026

Can you please explain what the patch does and why, please?

I am providing further details off-line.

vivienne-w added a commit to vivienne-w/WebKit that referenced this pull request Mar 10, 2026
https://bugs.webkit.org/show_bug.cgi?id=309582

Reviewed by NOBODY (OOPS!).

cencparser is a custom parser that converts H264/H265 CENC video from
AVC to byte-stream format. it is required to be inerted before
decryptor on platforms that don't provide secure parsers and decoder
only accepts video in byte-stream format.

* Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(transformCaps):
* Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderParser.cpp:
(tryInsertCencparser):
(webkitMediaThunderParserChangeState):
(webkit_media_thunder_parser_class_init):

Original author: Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: WebPlatformForEmbedded/WPEWebKit#1630
vivienne-w added a commit to vivienne-w/WebKit that referenced this pull request Mar 11, 2026
https://bugs.webkit.org/show_bug.cgi?id=309582

Reviewed by NOBODY (OOPS!).

cencparser is a custom parser that converts H264/H265 CENC video from
AVC to byte-stream format. It is required to be inserted before
decryptor on platforms that don't provide secure parsers and decoder
only accepts video in byte-stream format.

* Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(transformCaps):
* Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderParser.cpp:
(tryInsertCencparser):
(webkitMediaThunderParserChangeState):
(webkit_media_thunder_parser_class_init):

Original author: Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: WebPlatformForEmbedded/WPEWebKit#1630
(createThunderParseSinkPadTemplateCaps): Deleted.
vivienne-w added a commit to vivienne-w/WebKit that referenced this pull request Mar 12, 2026
https://bugs.webkit.org/show_bug.cgi?id=309582

Reviewed by NOBODY (OOPS!).

cencparser is a custom parser that converts H264/H265 CENC video from
AVC to byte-stream format. It is required to be inserted before
decryptor on platforms that don't provide secure parsers and decoder
only accepts video in byte-stream format.

* Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(transformCaps):
* Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderParser.cpp:
(tryInsertCencparser):
(webkitMediaThunderParserChangeState):
(webkit_media_thunder_parser_class_init):

Original author: Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
See: WebPlatformForEmbedded/WPEWebKit#1630
(createThunderParseSinkPadTemplateCaps): Deleted.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

4 participants