Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Decoderfilter implementation #15744
Implementation of a xml configuration file to control usage of platform decoders.
By adding xbmc/media/decoderfilter to your platform subdirs.txt file, kodi builds a common CDecoderFilterManager implementation.
You as a platform maintainer now have to instanciate this or an derived class of CDecoderFilterManager , add all existing / relevant platform decoders, and register this interface in ServiceBroker (at kodi / windowing initialization time, once).
In your decoder initialization part you access the DecoderFilterManager through ServiceBroker and can check if a selected decoder should be used for playback by passing the StrreamInfo hints.
CDecoderFilter's members for validateing / serializing can be overwritten if your platform has conditions which differ from the common implementation.
Serialization is already implemented and leads to [userdata]/decoderfilter.xml file.
The implementation should be flexible enough to add GUI settings handling, regardless if conditions differ between platforms. GUI settings is not part of this PR, if I find time in the future, I'll add it.
For now experienced users can manually edit the decoderfilter.xml file.
Default XML implementation file format:
This PR builds / uses the implementation only for Android
Motivation and Context
tons of tickets regarding not working / half working platform decoders
How Has This Been Tested?
Types of change
This is a great idea!
I don't really understand though why you went for the xml route instead of just hooking up the GUI to use a blacklist for the decoders. It seems to me like you only need one method or the other and the GUI approach would be more useful IMO.
I changed the initial comment, there you can see that things are sometimes more complex as they seem on the first look. Goal is a.) to be flexible for other platforms / decoders (maybe include color formats / codec levels) and b.) to be able to use our setting implementation to easily display them in our GUI if needed. XML is currently the format our GUI setting is based on
Mar 19, 2019
1 check passed
referenced this pull request
Mar 19, 2019
@ksooo K18 / K19 the PR was initially created for K18, but it seems that I forgot to set labels :-(
There are many ways which lead to rome (ownership ServiceBroker e.g.), or smart_ptr.