02-28-2012 10:16 PM
We have repackaged our Android app that uses a MediaPlayer/VideoView to show an MP4 as the background of its main activity. In OS 2.0.0.7111 and before the video played flawlessly.
Unfortunately since the official release of OS 2 (2.0.0.7971) the playback stutters really badly.
The video has a size of 1024x600 with 25fps. Scaling it down to 640x320 helps a lot. Maybe some kind of hardware acceleration has been removed in .7971? Any ideas? Is this a known issue?
The native Playbook video app plays the videos without problems on all OS versions.
03-05-2012 11:56 PM
03-05 23:10:18.068: V/WindowManager(13242515): --------- beginning of /dev/log/main
03-05 23:10:18.070: E/gralloc(13242515): gralloc_alloc allocated ashmem hnd 79f72d00 fd 115 base 0 at paddr 0
03-05 23:10:18.071: D/gralloc(13267103): client side gralloc_map() succeeded fd=39, off=0, size=2457600, vaddr=29a00000, server vaddr=0x66667542
03-05 23:10:18.075: D/gralloc(13267103): client side graphicbuffer fd 39 29a00000 is at 97800000
03-05 23:10:18.104: E/HAL(13242515): load: module=/system/lib/hw/copybit.so
03-05 23:10:18.104: E/HAL(13242515): Library cannot be found
03-05 23:10:18.116: E/QNXMediaPlayer(13205633): snifftrack, attach input failure, error type = 10, pUrl=screen:?parentpid=12914803, url=/sdcard/test.mp4
03-05 23:10:18.118: I/StagefrightPlayer(13205633): setDataSource('/sdcard/test.mp4')
03-05 23:10:18.177: E/gralloc(13242515): gralloc_alloc allocated ashmem hnd 7a0ee280 fd 135 base 0 at paddr 0
03-05 23:10:18.178: D/gralloc(13267103): client side gralloc_map() succeeded fd=48, off=0, size=2457600, vaddr=2a500000, server vaddr=0x66667542
03-05 23:10:18.183: D/gralloc(13267103): client side graphicbuffer fd 48 2a500000 is at 97400000
03-05 23:10:18.402: E/MemoryHeapBase(13205633): error opening /dev/pmem_adsp: Permission denied
03-05 23:10:18.402: I/SoftwareRenderer(13205633): Creating physical memory heap failed, reverting to regular heap.
03-05 23:10:19.580: W/TimedEventQueue(13205633): Event 53 was not found in the queue, already cancelled?
03-05 23:10:19.662: E/gralloc(13242515): gralloc_alloc allocated ashmem hnd 7a0eea60 fd 116 base 0 at paddr 0
03-05 23:10:19.663: D/gralloc(13267103): client side gralloc_map() succeeded fd=38, off=0, size=2457600, vaddr=29a00000, server vaddr=0x66667542
03-05 23:10:19.668: D/gralloc(13267103): client side graphicbuffer fd 38 29a00000 is at 96a00000
03-06-2012 02:32 PM
For comparison, this is what we get on the old 2.0 beta OS:
03-06 12:19:26.238: D/WindowManager(3530888): --------- beginning of /dev/log/main 03-06 12:19:26.668: D/QNXMediaPlayer(3395719): mm-renderer speed: 1000 03-06 12:19:26.668: D/QNXMediaPlayer(3395719): mm-renderer state: stopped 03-06 12:19:26.695: D/QNXMediaPlayer(3395719): mm-renderer state: playing 03-06 12:19:26.906: D/QNXMediaPlayer(3395719): mm-renderer speed: 0 03-06 12:19:26.907: D/QNXMediaPlayer(3395719): mm-renderer state: playing 03-06 12:19:27.023: W/InputManagerService(3530888): Got RemoteException sending setActive(false) notification to pid 4161562 uid 10197 03-06 12:19:27.097: E/gralloc(3530888): gralloc_alloc allocated ashmem hnd 11cc830 fd 64 base 0 at paddr 0 03-06 12:19:27.100: D/gralloc(8798235): client side gralloc_map() succeeded fd=44, off=0, size=2457600, vaddr=2a500000, server vaddr=0x66667542 03-06 12:19:27.107: D/gralloc(8798235): client side graphicbuffer fd 44 2a500000 is at 9e400000 03-06 12:19:27.144: I/StatusBarService(8798234): setBackButtonEnabled true 03-06 12:19:27.279: D/QNXMediaPlayer(3395719): mm-renderer state: playing 03-06 12:19:32.205: D/skia(3530888): purging 6K from font cache [1 entries] 03-06 12:19:32.301: D/dalvikvm(3530888): GC_EXPLICIT freed 82K, 43% free 4454K/7751K, external 716K/1038K, paused 96ms 03-06 12:19:40.577: D/QNXMediaPlayer(3395719): mm-renderer state: stopped 03-06 12:19:40.780: D/QNXMediaPlayer(3395719): mm-renderer state: playing 03-06 12:19:43.098: D/QNXDevModeMonitor(3530888): qconnDoor changed: connected=falseip_address=255.255.255.255 03-06 12:19:43.100: D/QNXDevModeMonitor(3530888): Devmode is off, stopping adbd ... 03-06 12:19:53.160: D/QNXDevModeMonitor(3530888): qconnDoor changed: connected=falseip_address=255.255.255.255 03-06 12:19:53.162: D/QNXDevModeMonitor(3530888): Devmode is off, stopping adbd ... 03-06 12:19:54.248: D/QNXMediaPlayer(3395719): mm-renderer state: stopped 03-06 12:19:54.451: D/QNXMediaPlayer(3395719): mm-renderer state: playing 03-06 12:20:03.219: D/QNXDevModeMonitor(3530888): qconnDoor changed: connected=falseip_address=255.255.255.255 03-06 12:20:03.221: D/QNXDevModeMonitor(3530888): Devmode is off, stopping adbd ... 03-06 12:20:07.919: D/QNXMediaPlayer(3395719): mm-renderer state: stopped 03-06 12:20:08.125: D/QNXMediaPlayer(3395719): mm-renderer state: playing
03-20-2012 10:26 AM
We are aware of some issues while playing videos from within an android app in the latest PlayBook release.
Normally an android app would use the hardware accelerated native media player to play media content. Only if the native player can't decode the content for what ever reason, it will fallback to android software decoder which explains the bad performance.
We hope to get those issues fixed ASAP and you will get them with the next PlayBook software update.
Sorry about any inconvenience.