shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

[Question] Why does shaka player embedded use 2.5.x instead of 3.0.x ? #198

Closed ragotiteb closed 3 years ago

ragotiteb commented 3 years ago

Looking at the code, we noticed the base version for shaka embedded is 2.5 , and not 3.0. I was wondering if you can share some insight as to why shaka embedded uses 2.5.x instead of 3.0.x, if there are plans to switch to 3.0.x (or the difficulties for doing so), and how breaking do you expect such an update to be? (any particular major issue you perhaps have identified already)

Also, i have noticed that, in fact, the main shaka player development continues to update 2.5, and seems to happen quite on-par with 3.0, so i was again wondering if you can share some insight as to whether there are plans to drop 2.5.x updates to focus only on 3.0 (i know this is not quite related to this repo, so maybe this is something i should instead ask there?).

Some context on where this question comes from: We have done some adjustments to the way the player works for our specific purposes (taking 3.0.5 as our base), and the potential of re-using some of the adjustments we've done for our solution into iOS, instead of having to re-do them entirely, is appealing. Shaka embedded therefore seems very interesting for us for this reason.

Our high level plan is to replace the packaged shaka-player.js in /shaka/js with our modified version, and work out the integration delta we could have as a consequence. I'm just trying to understand how realistic our initial plan is given the disparity of versions.

Thanks in advance!

kareljuricka commented 3 years ago

We using shaka player embedded with our adjusted newest shaka player 3.0.x. Just rewrite file in shaka-player.compiled.js in ShakaPlayerEmbedded.framework and do some tests.

But I'm also interested about some official support conclusion from shaka-player-embedded developers.

ragotiteb commented 3 years ago

Hey @kareljuricka , that's encouraging to know! This is precisely our plan, so I'm glad to know you have made it work on your project

Hopefully we'll hear form the dev team to understand more the thought process and possible issues with it

TheModMaker commented 3 years ago

Originally, I used v2.5.x since v3.0 was just released and I was concerned about stability. It included major manifest changes and I was thinking it would be more stable to use v2.5.x for the first release of Embedded. But now there is no reason to still use v2.5.x. You can easily replace it by replacing the files in shaka/js and rebuilding; but it may not work correctly since Shaka Player is a JavaScript library, so if it uses some JavaScript features this project doesn't implement, it won't work. So updates may also need to add new JavaScript APIs.

As for Shaka Player versions, we maintain the previous minor release. So while we're releasing v3.0.x, we'll also maintain v2.5.x. Once we release v3.1, we'll only maintain v3.0.x.

ragotiteb commented 3 years ago

@TheModMaker Thanks for the responses! This helps clarify things quite a bit.

We did a super quick experiment with 3.0.6, and we did run into a API issue as you warned (concretely TextDecoder, which i see was added rather recently in https://github.com/google/shaka-player/commit/a72a1e91023a33c777a6001a64f818ea2e469914 ). But with your answer, together with @kareljuricka 's comment , i am quite optimistic we will find either the right set of JS APIs or just go back far enough so they are not an issue. @kareljuricka , out of curiosity, i guess in your case the base 3.0.x version is prior to this?

Thanks again!

kareljuricka commented 3 years ago

@ragotiteb good point, I'm using 3.0.5 now and as I looked, this commit was released to 3.0.6. I didn't update our fork to this version yet, so good to know. But I will try it in next days and let you know.

ragotiteb commented 3 years ago

@kareljuricka i can confirm it all seems to work with 3.0.5 on our end, keen to hear the results on your tests.

As far as the original question goes, i think it's answered, so i will mark it as such.