EME KeySystem selection logic is incorrect
Created by: barbibulle
the routine getSupportedKeySystems(initData) is called by onNeedKey when an encrypted stream is detected. The initData passed contains all the PSSH boxes found in the media (init segment or media fragments). All registered KeySystems are checked to see which ones have a uuid that matches one of the PSSH UUIDs found in the init data. That only works when there is a PSSH box available in the media, but the presence of PSSH in the media is optional for a number of Key Systems. The getSupportedKeySystems() should allow all the Key Systems declared in the MPD ( elements.
There is a function called getSupportedKeySystemsFromContentProtection(), which should do this, but it doesn't seem to be called from anywhere, unless I'm missing something.