[Touch Pro2, Tilt 2 Android General] highlandsun:
High Resolution Video Decoders

I'm now using my own libOmxCore, libstagefrighthw, and libstagefright_omx compiled from the XDAndroid sources, with a couple patches to make them build correctly. I might have to look at the libOmxH264Dec they're using, see if it's newer/better than the one I patched.

If you want to try them, it's all attached here. The files go in /system/lib. You should probably save a backup of your originals just in case. So far mVideoPlayer gives me the best playback results. If a video freezes on you, sometimes moving forward or backward with the Seek bar will get it playing again.

If it's working, you should see something like this in logcat when you play a video:

05-15 22:11:35.350 I/StagefrightPlayer( 1310): setDataSource('/sdcard/Movies/jlo.mp4')
05-15 22:11:35.490 I/ActivityManager( 1338): Displayed activity afzkl.development.mVideoPlayer/.activity.VideoPlayerActivity: 400 ms (total 400 ms)
05-15 22:11:35.650 D/mVideoPlayer( 1822): Subtitle Detector: found 0 subttile tracks.
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): open driver
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): get config
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): set config
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): buffer_size: 4800
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): buffer_count: 2
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): channel_count: 2
05-15 22:11:35.970 V/AudioHardwareMSM72XX_wince( 1310): sample_rate: 44100
05-15 22:11:35.980 I/@@@@ ( 1822): onMeasure
05-15 22:11:35.980 I/@@@@ ( 1822): onMeasure
05-15 22:11:36.000 W/QCvdec ( 1310): vdec: Creating H264 Decoder [0x28e10]
05-15 22:11:36.000 W/QCvdec ( 1310): vdec: NAL lenght [0]
05-15 22:11:36.000 W/QCvdec ( 1310): vdec: START CODE....
05-15 22:11:36.040 W/ADSP_RTOS_SVC( 1310): VDL_QDSP_rtos_event_cb
05-15 22:11:36.040 W/ADSP_RTOS_SVC( 1310): VDL_QDSP_rtos_event_cb
05-15 22:11:36.080 V/AudioHardwareMSM72XX_wince( 1310): doAudioRouteOrMute() device fd, mMode 0, mMicMute 1
05-15 22:11:36.090 D/AudioHardwareMSM72XX_wince( 1310): rpc_snd_set_device(253, 1, 1)
05-15 22:11:36.090 V/AudioHardwareMSM72XX_wince( 1310): AudioHardware::update_device 253
05-15 22:11:36.090 D/AudioHardwareMSM72XX_wince( 1310): rpc_snd_set_volume(256, 1, 0)
05-15 22:11:36.090 V/AudioHardwareMSM72XX_wince( 1310): update_volume 256 1 0
05-15 22:11:36.090 V/Libacoustic-wince( 1310): msm72xx_set_acoustic_table 256 0
05-15 22:11:36.090 V/Libacoustic-wince( 1310): Use current device 253
05-15 22:11:36.090 V/Libacoustic-wince( 1310): Acoustic profile : PLAYBACK_HANDSFREE
05-15 22:11:36.090 V/AudioHardwareMSM72XX_wince( 1310): call snd_set_volume audio 5

The important bit is the lines with QCvdec, Creating H264 Decoder. If you see "Using software renderer" then something is not installed correctly.

Update: I've added a patched libOmxMpeg4Dec.so now too. This one can handle at least 720x400. I've tested it all the way up to 800x480 - unfortunately it can only play 1 or 2 seconds at that rez before it freezes. But damn do the pictures look good while it's doing it...

Changelog:

libOmxCore.so: turned off debug messages, they slow down the player too much.

libstagefrighthw.so: fixed the Makefile, it was just an empty library before.

libstagefright_omx.so: fixed the name of the function being searched in libstagefrighthw.so, it wasn't finding it before.

libOmxH264Dec.so: patched the binary to change 0x0002B200 to 0x00039800.

All of the source for these patches is on gitorious now, see here http://lists.xdandroid.com/pipermail/xdandroid-dev/2011-May/000290.html