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

Reply via email to