Kodi Community Forum

Full Version: ExoPlayer decoding backend on Kodi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
(2020-12-16, 18:20)fritsch Wrote: [ -> ]Yes, one question: Which software should I now install to have DTS playback on Firetv4K?
Plex or Nova Video Player might still work.
(2020-12-15, 12:49)jjd-uk Wrote: [ -> ]You don't seem to know what Exoplayer is or what it does.

Exoplayer is simply the reference player by Google to enable app developers quickly bring media apps to Android, it doesn't do anything special it simple uses the standard Android API's, these are that exact same API's that Kodi already uses. So for an app such as Kodi it offers zero advantages as it can't do anything we don't already do.

I can't agree. Advantage is much better picture quality and smoothness on most devices. Your problem you sit on Shield only and you don't really know real world. Try MiBox for example and compare YouTube quality, how it looks the same movie. Or better, some local 1080i file, play it with kodi and any other player, like MxPlayer or Vlc. Difference is huge.

You are right ExoPlayer is Google reference as you said. However, in my opinion, still worth to get know why decoding quality with Kodi is so horribly wrong on some devices.

I mentioned ExoPlayer, because that's good starting point to see how does it work internally, what api is used etc. Maybe there's something to improve. Because Kodi gives worse results than all the rest video players on many devices. All other players use more or less ExoPlayer. I don't mean ExoPlayer embedding is required. However, decoding quality difference is really thought-provoking

You can say "buy device which runs Kodi fine", but I want to believe as wide compatibility as it's possible should be still the goal.
(2020-12-17, 18:54)Kodroid Wrote: [ -> ]
(2020-12-16, 18:20)fritsch Wrote: [ -> ]Yes, one question: Which software should I now install to have DTS playback on Firetv4K?
Plex or Nova Video Player might still work.

Both don't ... and now. I thought exoplayer would solve all the problems we have?
You rather should find out why your approach gives worse quality than ExoPlayer on some devices. For sure, if you dumb switch to ExoPlayer, it will solve some problems and it will genetare new problems.

One solved problem will be bad picture quality
(2020-12-17, 21:54)fritsch Wrote: [ -> ]
(2020-12-17, 18:54)Kodroid Wrote: [ -> ]
(2020-12-16, 18:20)fritsch Wrote: [ -> ]Yes, one question: Which software should I now install to have DTS playback on Firetv4K?
Plex or Nova Video Player might still work.

Both don't ... and now. I thought exoplayer would solve all the problems we have?

Is this about firetv only? I have a device with broadcom soc and Kodi is pretty much unusable on it, while the default player is ok - just missing the library feature. I know that we need to blame broadcom or the device vendor for this issue, but for some reason, exoplayer plays my files smoothly.
No need to blame anyone. Just use what works ...
(2020-12-17, 21:54)fritsch Wrote: [ -> ]I thought exoplayer would solve all the problems we have?
It will when every project uses and contributes to the same Android backend aka Exoplayer. That way, Kodi can spend less time on fixing Android playback issues and more time on building and fixing media center features.

Every Android project is already there or headed that way.
(2020-12-17, 23:16)fritsch Wrote: [ -> ]No need to blame anyone. Just use what works ...

In an ideal world using what just works would be Kodi for it's library features and Exoplayer (don't remember the name of the default media player on that operator box, but I have learned that it uses Exoplayer) for it's playback support. Like I mentioned earlier, I don't know what kind of a resolution this would be and how it would affect millions of other devices.

I just tested my Philips Android TV and there is no settings available to make Kodi play movies smoothly. Once again, I'm not sure about this, but read from another forum that Philips TV default player is using exoplayer. And guess what, that player plays movies perfectly smoothly and surpasses the picture quality of Kodi and does that with a wide margin. Now I'm not bashing Kodi or the developers, but since other applications are producing smooth playback with great picture quality, can this really be, in my case, a Philips firmware problem?
There is little detail: No one uses THE exoplayer, but THEIR fork of exxoplayer, e.g. amazon has its own, that they maintain, Philips bases its custom hack on yet another exoplayer fork. So: If we now include "standard" expoplayer, amazon device won't properly work. If we pick amazon's patches, we don't have the patches for philips for x and y and z. So when people talke about THE exoplayer, they should realize very fast - that that one does not exist ...

So, then which exoplayer should kodi use, if kodi decided to ditch their Videoplayer. The one that works fine for Shield or the one that works fine for amazon devices? Something else? And if the "default upstream exoplayer" does not work fine on Philips devices - is it then really a Philips firmware problem?

Got the point?
And before we continue: Yes, your Philips "internal" non-free, proprietary video application works, as the engineers there invested the time to patch / fix / modify it, so that it workarounds every FW issue the third party decoder vendor of philips has, perhaps philips did not even do a single bit with the  default player, they just outsourced it to the chip vendor ...
(2020-12-18, 22:28)fritsch Wrote: [ -> ]And before we continue: Yes, your Philips "internal" non-free, proprietary video application works, as the engineers there invested the time to patch / fix / modify it, so that it workarounds every FW issue the third party decoder vendor of philips has, perhaps philips did not even do a single bit with the  default player, they just outsourced it to the chip vendor ...

Ok, this is what I asked earlier, as I am not an expert on this matter. So, for exoplayer smooth playback (refresh rate switching), we still need firmware support or like you said, a forked version of the player for that particular chipset? I thought that the Exoplayer (forked or not) is called by the application, Philips media player in this case, and other application could use the same calls for using Exoplayer as an "external" player. But you are saying that Philips media player is using Exoplayer code internally? Life is one long learning process... Smile I do have knowledge of devices on hardware and software level, but I'm doing mostly web applications and this (and Android in general) is really something I would like to learn more about.
So - in fact all these things are solved "officialy" by Android standards. Refreshrate switching, audio passthrough and so on. Sadly most firmwares don't implement these APIs but rather use some "self written" workarounds in their "native player". Funny that everyone calls it "native" - while it basically uses some standards with non-standard additions to hide that the provided product is not capable of doing things in standard way.

Exoplayer for example uses AudioTrack for Audio and MediaCodec (Surface) for video - both are official Android solutions for audio and video. Kodi also uses exactly these two.

So people that scream: but, but, but exoplayer instead of Mediacodec basically have limited knowledge or no clue at all, as exoplayer (as kodi) only supports standards by default, everything that is vendor specific and not available via public methods is patched / side loaded into it by the vendors of the TVs ... or in other words: if amazon firetv 4k firmware does not support DTS anymore, exoplayer cannot help, as it only can support what the public API of Android allows - similar to kodi.

What is entirely true: kodi lacks developers especially for Android. Though exoplayer (the player part) does not help us at all as kodi's Videoplayer is the same on mac, on windows and the pi on linux and everywhere else - only maintained exactly once. Android's specifics for videoplayer are: MediacodecSurface (Codec + HW Renderer) and for AudioEngine the Android specific AudioTrack sink implementation. The secure decoder part might have been usable out of the box. But if you think about inputstream plugins (netflix, prime, etc. from within kodi), all that is not there with exoplayer ..

Finally, as we are not there yet - the struggle does not end up with "the player", kodi's GUI is OpenGLES, and you guessed it - cheap boxes ship bad drivers that only implement subsets of OpenGLES or very old standard of it, limiting kodi's gui implementation ... would be a nice outcry if we say: here is the new kodi gui implementation uses modern OpenGLES 3 features for fluid 4k at 60p - but yeah 2/3 of the crappy boxes won't work anymore.
(2020-12-18, 22:26)fritsch Wrote: [ -> ]So, then which exoplayer should kodi use, if kodi decided to ditch their Videoplayer. The one that works fine for Shield or the one that works fine for amazon devices? Something else?
It's obvious. Kodi would fork its own. (exoplayer-kodi)

It doesn't matter if Phillips steals code from Exoplayer or even Kodi's Exoplayer fork. They are going to do this no matter what. This always happens to open source projects.

What's more important is that Kodi will gain an existing codebase that already works on many existing devices, so Kodi devs don't have to do as much work fixing playback bugs on device X and Y, freeing up time to work on building out the media center. This alleviates the lack of Kodi devs for Android in the long term, which is better than Kodi continuing to fix playback bugs on its own backend.

Has it ever occurred to you that a big reason Kodi lacks Android devs is because Kodi does the arduous backend work on its own instead of using a fork of a existing, actively maintained project like every other video player is currently doing?
Could you please link the changes of Philips and Sony to exoplayer. I want to take a look.
(2020-12-19, 05:53)Kodroid Wrote: [ -> ]
(2020-12-18, 22:26)fritsch Wrote: [ -> ]So, then which exoplayer should kodi use, if kodi decided to ditch their Videoplayer. The one that works fine for Shield or the one that works fine for amazon devices? Something else?
It's obvious. Kodi would fork its own. (exoplayer-kodi)

It doesn't matter if Phillips steals code from Exoplayer or even Kodi's Exoplayer fork. They are going to do this no matter what. This always happens to open source projects.

What's more important is that Kodi will gain an existing codebase that already works on many existing devices, so Kodi devs don't have to do as much work fixing playback bugs on device X and Y, freeing up time to work on building out the media center. This alleviates the lack of Kodi devs for Android in the long term, which is better than Kodi continuing to fix playback bugs on its own backend.

Has it ever occurred to you that a big reason Kodi lacks Android devs is because Kodi does the arduous backend work on its own instead of using a fork of a existing, actively maintained project like every other video player is currently doing?
Man the kodi devs are being so nice to you. I personally would have blocked you by now for being too obtuse to talk to. There are many socs wtth oems using hundreds of different implementations of exoplayer to try to  make it work properly on their devices.  Why the **** and how the **** kodi devs are supposed  to implement and maintain all the hacks for hundreds of devices. This is a common programming problem which resulted n the invention of standard apis but if hardware devs are not going to implement the api properly not much kodi devs can do about it.
Pages: 1 2 3 4 5