All news
v0.7.1

XviD films play on Android

One fix, for Android: some XviD films stopped at 0:00 with a decoding error, on phones and TVs alike, while the same file played fine everywhere else.

Some XviD films would not play at all. The player stopped at 0:00 with "ERROR_CODE_DECODING_FAILED: MediaCodecVideoRenderer error", on phones and TVs alike, while the same file played fine on the desktop and in other apps. This was not new in 0.7.0. Android had never played these files.

What was wrong

A video file normally carries a short header that tells the decoder how the picture was encoded. Some XviD releases are packed without it in the usual place, and the header only exists inside the film's first frame. The desktop player finds it there. Android's player did not: it read the next few bytes of the file as the header instead, handed the decoder that one wrong byte, and the phone's or TV's decoder refused the very first frame. Repackaged with the header where it belongs, the same film played perfectly on both, frame for identical frame.

  • Ventic now takes the header from the first frame and gives it to the decoder, which is what the desktop player has always done.
  • Every other file plays exactly as before.
  • Tested on a Pixel phone and a Philips Android TV, streaming the film from a torrent and seeking through it.

Also

  • A video that can't be decoded says so straight away. When a decoder fails on Android, Ventic tries the film again with its own built-in audio decoder, which is the fix for Dolby sound that won't play. That retry can only ever help with audio, but a failing video went through it too: the error took twice as long to appear, and it described the retry instead of what actually went wrong.