Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleWebKit 2.38.5
  1. Apply change with Rialto Quirks: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/1323 (this change has been merged in 1.38.6-r2 and maybe earlier)
  2. Apply this patch to enable EME:
    Code Block
    languagediff
    titleRialto EME
    diff --git a/Source/cmake/FindThunder.cmake b/Source/cmake/FindThunder.cmake
    index ab7064e3988b..bc086ad9105d 100644
    --- a/Source/cmake/FindThunder.cmake
    +++ b/Source/cmake/FindThunder.cmake
    @@ -56,9 +56,7 @@ find_path(THUNDER_INCLUDE_DIR
     )
     
     find_library(THUNDER_LIBRARY
    -    NAMES ocdm
    -    HINTS ${PC_THUNDER_LIBDIR}
    -          ${PC_THUNDER_LIBRARY_DIRS}
    +    NAMES ocdmRialto
     )
     
     include(FindPackageHandleStandardArgs)
    
    
  3. SVPPAY is not supported in Rialto, so this patch has to be applied for AmLogic devices:
    Code Block
    languagediff
    titleSvppay removal
    diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
    index df182ae06550..49004c73feda 100644
    --- a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
    +++ b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
    @@ -400,25 +400,7 @@ GstPadProbeReturn onWebKitMediaSourcePadEvent(GstPad* pad, GstPadProbeInfo* info
         if (probData->didTryCreatePayloader == false)
         {
             probData->didTryCreatePayloader = true;
    -        if (WebCore::doCapsHaveType(caps, GST_VIDEO_CAPS_TYPE_PREFIX)) {
    -            // svppay element is always inserted even for non encrypted caps
    -            // to force secure memory video parser so we don't need to replace
    -            // parser when encrypted samples arrive
    -
    -            // svppay payloader is available on Amlogic platform only
    -            GRefPtr<GstElementFactory> payloader_factory = adoptGRef(gst_element_factory_find("svppay"));
    -            if (payloader_factory) {
    -                probData->payloader = gst_element_factory_create(payloader_factory.get(), nullptr);
    -                payloader = probData->payloader.get();
    -            }
    -            if (payloader) {
    -                gst_bin_add(GST_BIN(parent_bin.get()), payloader);
    -                GST_INFO("svppay %s added to %s for pad %s",
    -                         GST_ELEMENT_NAME(payloader), GST_ELEMENT_NAME(parent_bin.get()), GST_PAD_NAME(pad));
    -            } else {
    -                GST_INFO("svppay not found -> continuing without payloader");
    -            }
    -        }
    +        GST_INFO("SVP PAY DISABLED FOR RIALTO");
         }
     
         if(!decryptorAttached && WebCore::areEncryptedCaps(caps))

    Set two environment variables for widget/application:
    Code Block
    languagebash
    titleEnvironment variables
    WEBKIT_GST_QUIRKS=rialto
    WEBKIT_GST_HOLE_PUNCH_QUIRK=rialto
Expand
titleWebKit 2.38.6-r2
  1. Apply these patches (this adds together steps 2 and 3 of the change given in section 2.38.5)
    in the following sub-directory:- build-xione-sercomm/tmp/work/armv7vet2hf-neon-rdkmllib32-linux-gnueabi/lib32-wpe-webkit/2.38.6+gitAUTOINC+59d63a5298-r2/git
    Code Block
    languagediff
    titleRialto EME
    diff -NarU 6 a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp
    --- a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp	2024-07-31 10:05:28.000000000 +0100
    +++ b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp	2024-08-05 16:59:58.906225172 +0100
    @@ -398,31 +398,13 @@
         GstElement* payloader = probData->payloader.get();
         bool payloaderAttached = payloader && probData->payloaderAttached;
     
         if (probData->didTryCreatePayloader == false)
         {
             probData->didTryCreatePayloader = true;
    -        if (WebCore::doCapsHaveType(caps, GST_VIDEO_CAPS_TYPE_PREFIX)) {
    -            // svppay element is always inserted even for non encrypted caps
    -            // to force secure memory video parser so we don't need to replace
    -            // parser when encrypted samples arrive
    -
    -            // svppay payloader is available on Amlogic platform only
    -            GRefPtr<GstElementFactory> payloader_factory = adoptGRef(gst_element_factory_find("svppay"));
    -            if (payloader_factory) {
    -                probData->payloader = gst_element_factory_create(payloader_factory.get(), nullptr);
    -                payloader = probData->payloader.get();
    -            }
    -            if (payloader) {
    -                gst_bin_add(GST_BIN(parent_bin.get()), payloader);
    -                GST_INFO("svppay %s added to %s for pad %s",
    -                         GST_ELEMENT_NAME(payloader), GST_ELEMENT_NAME(parent_bin.get()), GST_PAD_NAME(pad));
    -            } else {
    -                GST_INFO("svppay not found -> continuing without payloader");
    -            }
    -        }
    +        GST_INFO("SVP PAY DISABLED FOR RIALTO");
         }
     
         if(!decryptorAttached && WebCore::areEncryptedCaps(caps))
         {
             if(!decryptor)
             {
    diff -NarU 6 a/Source/cmake/FindThunder.cmake b/Source/cmake/FindThunder.cmake
    --- a/Source/cmake/FindThunder.cmake	2024-07-31 10:04:55.000000000 +0100
    +++ b/Source/cmake/FindThunder.cmake	2024-08-05 16:59:58.906225172 +0100
    @@ -53,15 +53,13 @@
         HINTS ${PC_THUNDER_INCLUDEDIR}
               ${PC_THUNDER_INCLUDE_DIRS}
         PATH_SUFFIXES "WPEFramework/ocdm/" "Thunder/ocdm/"
     )
     
     find_library(THUNDER_LIBRARY
    -    NAMES ocdm
    -    HINTS ${PC_THUNDER_LIBDIR}
    -          ${PC_THUNDER_LIBRARY_DIRS}
    +    NAMES ocdmRialto
     )
     
     include(FindPackageHandleStandardArgs)
     
     find_package_handle_standard_args(Thunder
       FOUND_VAR THUNDER_FOUND
    
    
  2. Set two environment variables for widget/application:
    Code Block
    languagebash
    titleEnvironment variables
    WEBKIT_GST_QUIRKS=rialto
    WEBKIT_GST_HOLE_PUNCH_QUIRK=rialto

...