XviD-Filme laufen auf Android
Eine Fehlerbehebung für Android: Manche XviD-Filme blieben mit einem Dekodierfehler bei 0:00 stehen, auf Handys wie auf Fernsehern, während dieselbe Datei überall sonst lief.
Manche XviD-Filme ließen sich gar nicht abspielen. Der Player blieb mit "ERROR_CODE_DECODING_FAILED: MediaCodecVideoRenderer error" bei 0:00 stehen, auf Handys wie auf Fernsehern, während dieselbe Datei auf dem Desktop und in anderen Apps problemlos lief. Das war nicht neu in 0.7.0. Android hat diese Dateien nie abgespielt.
Was nicht stimmte
Eine Videodatei trägt normalerweise einen kurzen Header, der dem Decoder sagt, wie das Bild kodiert wurde. Manche XviD-Releases sind so verpackt, dass er nicht an der üblichen Stelle steht, sondern nur im ersten Frame des Films existiert. Der Desktop-Player findet ihn dort. Der Player von Android nicht: Er las stattdessen die nächsten paar Bytes der Datei als Header, gab dem Decoder dieses eine falsche Byte, und der Decoder des Handys oder Fernsehers lehnte gleich das erste Frame ab. Neu verpackt, mit dem Header an seinem Platz, lief derselbe Film auf beiden einwandfrei, Frame für identisches Frame.
- Ventic nimmt den Header jetzt aus dem ersten Frame und gibt ihn dem Decoder, so wie es der Desktop-Player schon immer gemacht hat.
- Jede andere Datei läuft genau wie vorher.
- Getestet auf einem Pixel-Handy und einem Philips Android TV, mit dem Film als Torrent-Stream und Sprüngen durch ihn hindurch.
Außerdem
- Ein Video, das sich nicht dekodieren lässt, sagt das sofort. Scheitert auf Android ein Decoder, versucht Ventic den Film erneut mit seinem eigenen eingebauten Audiodecoder - das ist die Lösung für Dolby-Ton, der nicht spielt. Dieser zweite Versuch kann nur beim Ton helfen, aber auch ein fehlerhaftes Video lief durch ihn hindurch: Der Fehler brauchte doppelt so lange, und er beschrieb den zweiten Versuch statt dessen, was tatsächlich schiefging.