Hardware-acceleration of video decoding on Android is really a mess...<p>In addition to the point of the article (asserting on a file that is not processed correctly, instead of slowly bailing out), every piece of CPU/GPU behave differently and the Android test suite is extremely limited. On top of that, there are many layers (OMX IL, stagefright, MediaCodec, OMX AL, Java Media) that interact together in a complex way and everyone messes in those layers in a different way...<p>For example, fora long time, even after mediacodec API was out (4.1), you could get the data back from the codec, but the frame format was not standardized and there were no tests in the Android validation! So every GPU was doing something differently.<p>On top of that, the hw decoders don't even give the profile and level they support, so you have to guess them.<p>And even those days, there is no way to get a YUV 420 surface that works on most devices, even when using KitKat APIs.<p>And so many joyful things :)