Following instructions at http://wiki.meego.com/Devices/ExoPC#Crystal_HD_Video_Decoder_.28BCM70015.29 I've successfully got MeeGo 1.2.0.90 Tablet-UX on ExoPC doing accelerated decoding of some HD video formats.
Once enabled, including the gstreamer plugin, the ExoPC's crystalhd hardware works "transparently" (modulo bugs and taking long time to unload/load sometimes) through the QML Video element, and thus works in meego-app-video (success: big_buck_bunny_720p_h264.mov fails: big_buck_bunny_1080p_surround.avi ). http://wiki.meego.com/tubelet-and-cutetube-port , can now playback HD video, including streaming 720p content from YouTube. (TODO: enable 1020p DL and playback in qmltube now that tablet has a chance of working with it). Xbmc gets acceleration as well, although the Fedora/RPMFusion version I use (the one with all the features built in) still tends to make the machine power-off randomly (overheating??). Fortunately, my fork of qmltube now subsumes most of the features I'd been using in xbmc (youtube plugin) and will soon subsume more (PBS plugin?). http://labs.adobe.com/downloads/flashplayer11.html works with acceleration as well, but only properly in http://wiki.meego.com/MeeGo-Lem-Firefox4 . Just follow advice from http://wiki.meego.com/Devices/ExoPC#Hardware_H.264_Video_Decoding_with_Flash_Player and enable hardware acceleration via configuration file: ....... $ cat /etc/adobe/mms.cfg EnableLinuxHWVideoDecode=1 OverrideGPUValidation=true ....... Unfortunately, meego-app-browser's click-to-play flash continues to cause myriad problems with actual real world sites and remains mostly unusable: example sites that don't work http://turntable.com and http://music.google.com. Strangely, http://www.hbogo.com which worked in meego-app-browser prior to enabling hardware decoding, now has stopped working. In exchange, it now works properly in Firefox4 which is my preferred browser anyways. In order to compile the crystalhd driver on MeeGo, I had to use http://wiki.meego.com/MeeGo-Lem to get the xen-devel package, and dependencies from Fedora 14. I couldn't find the missing headers in kernel-adaptation-pinetrail-devel-2.6.38.2-8.26.i586 to prevent these compilation errors: ................. meegotab-90-.../driver/linux> make make -C /lib/modules/2.6.38.2-8.26-adaptation-pinetrail/build SUBDIRS=/usr/local/src/crystalhd/driver/linux modules make[1]: Entering directory `/usr/src/kernels/2.6.38.2-8.26-adaptation-pinetrail' make[1]: Warning: File `/usr/src/kernels/2.6.38.2-8.26-adaptation-pinetrail/arch/x86/Makefile_32.cpu' has modification time 3.5e+06 s in the future make[2]: Warning: File `include/config/auto.conf' has modification time 3.5e+06 s in the future CC [M] /usr/local/src/crystalhd/driver/linux/crystalhd_lnx.o In file included from include/linux/fb.h:408:0, from /usr/local/src/crystalhd/driver/linux/crystalhd_lnx.h:38, from /usr/local/src/crystalhd/driver/linux/crystalhd_lnx.c:20: /usr/src/kernels/2.6.38.2-8.26-adaptation-pinetrail/arch/x86/include/asm/io.h:44:21: fatal error: xen/xen.h: No such file or directory compilation terminated. make[2]: *** [/usr/local/src/crystalhd/driver/linux/crystalhd_lnx.o] Error 1 make[1]: *** [_module_/usr/local/src/crystalhd/driver/linux] Error 2 make[1]: Leaving directory `/usr/src/kernels/2.6.38.2-8.26-adaptation-pinetrail' make: *** [all] Error 2 ................. To fix, I did "zypper in xen-devel" using MeeGo-Lem, which transparently installed xen-libs-4.0.1-6.fc14.i686, xen-devel-4.0.1-6.fc14.i686, xen-licenses-4.0.1-6.fc14.i686 from Fedora 14 repos. I had to hand-edit the autoconf-generated Makefile to pickup the missing include: ................. meegotab-5-.../driver/linux> pwd /usr/local/src/crystalhd/driver/linux meegotab-6-.../driver/linux> diff -c Makefile.~1~ Makefile *** Makefile.~1~ 2011-06-15 23:50:11.625700663 -0700 --- Makefile 2011-06-15 23:51:05.055032758 -0700 *************** *** 9,14 **** --- 9,15 ---- INCLUDES += -I$(src)/../../include INCLUDES += -I$(src)/../../include/link INCLUDES += -I$(src)/../../include/flea + INCLUDES += -I/usr/include EXTRA_CFLAGS = -D__KERNEL__ -DMODULE $(INCLUDES) $(INC) EXTRA_CFLAGS += -Wall -Wstrict-prototypes -Wno-trigraphs -Werror -O2 ................ Is there a MeeGo-supported way of compiling this driver? Seems like a similar problem to https://bugs.meego.com/show_bug.cgi?id=18991 ("xen missing from kernel-adaptation-intel-automotive-devel") except that in this case, /usr/src/kernels/2.6.38.2-8.26-adaptation-pinetrail/include/xen is missing. This is happening for kernel-adaptation-pinetrail-2.6.38.2-8.26.i586 and kernel-adaptation-pinetrail-devel-2.6.38.2-8.26.i586 . Niels http://nielsmayer.com PS: one problem i've noticed is that I don't see the driver getting loaded after doing /sbin/pm-suspend. lsmod(1) continues to report "crystalhd 87942 0 " whereas after a fresh boot, when an application like qmltube plays back a video lsmod(1) says: "crystalhd 87942 2 " Perhaps unloading and reloading after suspend will fix that. PPS: Also, since I implemented an interface to MeeGo resource policies in qmltube, it now "does the right thing" and pauses playback, releasing the crystalhd hardware, when another application requests and receives access to the video resource. This is especially important now that the video resource includes a single DSP for decoding, just like on "my" n950. See http://forum.meego.com/showpost.php?p=29068&postcount=7 for details. Even better, this "MeeGo" code works on both "MeeGo" and "MeeGo Harmattan" which is my goal for both http://code.google.com/p/qtzibit/ and the qmltube-fork. _______________________________________________ MeeGo-dev mailing list [email protected] http://lists.meego.com/listinfo/meego-dev http://wiki.meego.com/Mailing_list_guidelines
