Posts: 5,952
Joined: Sep 2008
Reputation:
201
Koying
Retired Team-Kodi Member
Posts: 5,952
We have no control at all with the "mediacodec(surface)" codec. You can try with disabling the surface one and keep the "plain" mediacodec.
At least then, kodi has some control on rendering.
Posts: 23,264
Joined: Aug 2011
Reputation:
1,074
fritsch
Team-Kodi Developer
Posts: 23,264
What I currently see in the code is, that the output from decoder happens in YUV420P, that means - that NV12 can be transported lossless, but everything else with more bits cannot. So - if you use certain samples for testing the quality, use NV12 based ones (all of them should be in that format normally). Second - as koying said: I currently don't see at all where Mediacodec does things like BT709 / BT601 conversions. We do that in our EGL path, though.
Do you see a difference when you disable surface rendering? Though - kodi will render in FullRange if not told otherwise, full range RGB that is - depending on your TV output setting / format - that will introduce further issues. You can influence that (at least I hope so, as that is what we use on X11/EGL) with the "Use Limited Range" setting in kodi's gui.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 38
Joined: Jun 2015
Reputation:
0
2016-01-12, 12:15
(This post was last modified: 2016-01-12, 12:23 by pedromvu.)
Hi, I believe Shield only outputs RGB limited, and from what I have read most people that suffer from washed out blacks are suffering it in all video apps not just Kodi, maybe datranquil can give more info here.
I have never seen that "Use Limited Range" setting though, it appears it doesn't exist on android versions.
As for the mediacodec(surface) it makes sense to me, the video patterns I use from the OP links look exactly the same when using that vs the native player, it has plenty of issues but that is Nvidia's fault then.
As for the regular mediacodec while it looks better for me, the sharpness does look a bit worse than the other option (a bit blurrier), for me the only way to avoid the problems on the test patterns is to use Software decoding.
I also tried to compare this with a Fire TV, unfortunately the particular pattern I use for sharpness for some reason looks a bit squeezed on it (not other videos though) so it is harder to interpret or compare.
Anyway I am still not sure if this differences are something specific to my setup, I am still waiting confirmation on the first OP thread to see if anyone else see's the same as I.
Posts: 138
Joined: Jul 2014
Reputation:
2
Maybe it is a feature which can be introduced with 17?
I think there are many Tvs out there, where it is not possible to select the color space.
Kodi 15.2 @ Android TV (Nvidia Shield)
PVR Backend: DVBLink/ DVBLogic with DigitalDevices 2xDVB-S & 2xDVB-C,CI DeltaCamTwin @ UM02 & HD02
Media Backend: EMBY
Posts: 23,264
Joined: Aug 2011
Reputation:
1,074
fritsch
Team-Kodi Developer
Posts: 23,264
As said by @FernetMenta: it is not implemented. Also it won't influence Surface rendering at all.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 23,264
Joined: Aug 2011
Reputation:
1,074
fritsch
Team-Kodi Developer
Posts: 23,264
2016-01-12, 14:10
(This post was last modified: 2016-01-12, 14:12 by fritsch.)
Also keep in mind. This setting can only at all make sense when the driver is acting in "Full Range". When the driver acts in "Limited Range" and scales the content itself it won't work at all, it will harm and break colors even more. So for now we also only don't know what the decoder outputs. If the Yuv420p data is already "broken" no post processing will help you at all.
We had great pain in VAAPI to get that working correctly and here we have had the full sourcecode of everything. So never the less. With this setting not only video content needs to be touched, but also pictures.
To test: Display a Full Range RGB image with an android picture viewer (one that does not scale the colors -> kodi's viewer for example). When you see 0 to 16 and you see 235 to 255 steps - then the display driver itself is doing clamping already - when this happens we don't need to even start.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Posts: 138
Joined: Jul 2014
Reputation:
2
Thanks for all your kind replies.
ATM shield is operating in full range RGB, that is what someone states on nvidia forums. I dont know how I can check this. My AVR keeps saying "8 Bit Input, 8 Bit Output" so I assume it is full range?
There is an update announced for the shield, which should be released this week. (Update to Marshmallow as well) Maybe it is possible to reduce the used colorspace on OS level then.
Kodi 15.2 @ Android TV (Nvidia Shield)
PVR Backend: DVBLink/ DVBLogic with DigitalDevices 2xDVB-S & 2xDVB-C,CI DeltaCamTwin @ UM02 & HD02
Media Backend: EMBY
Posts: 23,264
Joined: Aug 2011
Reputation:
1,074
fritsch
Team-Kodi Developer
Posts: 23,264
2016-01-12, 14:21
(This post was last modified: 2016-01-12, 14:24 by fritsch.)
Currently it's not a kodi issue at all. We can output whatever user wants be it limited range or full range. Currently with the surface render _kodi_ does not touch anything at all - so the mess you have on screen comes from MediaCodec not kodi. You see that every mediaplayer on android has this issue.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.