Trying to convice shaka-project maintainers to look into support for Lightning apps runing on RDK

Hi everyone and Lightning team.

We have recently been playing around with Shaka Player and found some interesting things.

We found that the maintainers no longer support our set-top box browsers because their checks say that these are old versions of Safari. By referencing this they determine that there are not enough users to justify support.

We have opened an issue in GitHub to try and convince them otherwise. Would love to hear if you think that this request is justified or if we are mistaken somewhere.

Yeah thats a hard struggle with older devices pinning to older browsers :frowning:
Do you happen to know which WebKit they are using? Is it the WPEWebKit project?

I do remember we had a patch that would enable shaka a very long time ago for EME, as it used to run a while ago.

Things I’d like to throw out there:

  • Do you know if the project you are working on is moving to a newer WebKit? WPEWebKit made a really cool new release called 2.38 that we’re developing Lightning 3 on and this is very recent. Though even 2.28 is pretty new and should work better with newer video players. Being stuck on 2.22 or older is definitely going to complicate things (as it would be almost 5 years old now)
  • Have you tried older Shaka releases? Sometimes taking a previous major version of shaka might work for your use cases.

Other things, is the problem related to a specific browser specific way of handling something? Like MSE usage or EME usage? Or is it just the detection of the platform?
Sometimes it helps open source projects like Shaka to make the adjustments (if trivial) and submit a PR.

1 Like

I think only the Ziggo Horizon Selene boxes are QtWebkit but most of the boxes are WPE (don’t quote me on this I’ll double check tomorrow).

Among the boxes only Sky Q and Ziggo EOS pass the isBrowserSupported check and only Ziggo EOS box can handle switching between DASH and plain MP4 encoded streams.

We are planning to collect user agents off our deployments to understand what boxes are running in production. But can we even do anything about having older browsers engines running out there? We are not sure how firmware updates work across boxes yet.

We plan to dive deep-- try older version and diff what changed and what we need to do to support newer versions. Too much work for our small 2 man team so for now plan to fall back to native playback and progressively add DASH support through Shaka.

Right now we check only if the detection works. On most of the boxes without detection Shaka works fine but we can’t know the edge cases without diving deep so trying to stay cautious.

After some work we hope to contribute to Shaka too.

Nothing we can do about it from the WebDev side, upgrading Browsers is a firmware/stack initiative. But usually don’t come cheap, which is why a lot of older boxes will get left behind with older engines.

The problem is a browser has a lot of dependencies, such as newer GCC’s / libc / glib that have big impact to the rest of the firmware running on the device. Since a lot of other packages will be affected and not all will compile/link against newer fundamental C libraries or newer compilers. Moving from QtWebKit to WPE is a huge understaking for an embedded development / integration team and usually requires $$$ to invest into something that might not be seen as an active project anymore for the MVPD.

Also please note that QtWebKit 5.2 was released around the 2016/2017 era, trying to run a modern latest greatest JavaScript player on a 6 year old browser will be hard. And that’s assuming they are on the latest license free QtWebKit, if its QtWebkit 5.1 or even 4.8 it’s going to be close to 10 years old. You can’t blame Shaka for moving on as the rest of the browser world did (desktops/mobile). You can try to find an older version of shaka that will still accept QtWebKit or with some limited hacks works, but you’ll fall short of other support on the newer video format side. You’ll have to juggle those two options if you want to find a sweet spot for an older browser (if such a spot exists).

1 Like