Seven years later and I'm catching up!
However, my tale is one of woe. In the
latest Ubuntu Bionic image the crystalhd.ko kernel driver for BCM70012 and BCM70015 is included! However, it's terrible. I've tried with mplayer and mpv and while I can get them both to use the card (it's confirmed as hardware decoding, I can see the stream being opened in syslog) the performance is complete bobbins.
For mplayer I use this /etc/mplayer/mplayer.conf:
Code: Select all
ao=alsa
vo=x11
joystick=no
stop-xscreensaver=yes
xy=800
zoom=yes
fs=yes
lavdopts=threads=2
Then test between software and hardware decoding including or omitting the flag:
Code: Select all
-lavdopts o=crystalhd_downscale_width=800
This auto-selects the codec and downscales (on hardware, apparently with the hardware scaler, which looks right given the player sees an 800 pixel wide stream) for output to the screen. Performance is awful with video and audio sliding out of sync within seconds with 720p content. Content in 1080p plays for 3 seconds before overwhelming the system. This is using both
vo=x11 or
vo=fbdev2 for pure throw-it-at-the-tty-screen-without-xserver testing.
For mpv I've not had framebuffer video output working, but performance overall with X is much better. I use this /etc/mpv/mpv.conf:
Code: Select all
ao=alsa
vo=x11
geometry=50%:50%
autofit=100%x100%
ytdl-format=[height<720]
script-opts=osc-scalefullscreen=3.0,osc-scalewindowed=3.0,osc-hidetimeout=3000
Then test between software and hardware decoding including or omitting the flag:
You know what performs better? Software decoding. So long as your OpenFrame has hyperthreading enabled I've had no problem playing back 1280x720 content, downscaled on the fly to fit 800x480 for the OpenFrame's display, at common bitrates. Just make sure your kernel has hyperthreading enabled. This is the output you should see:
Code: Select all
of@openframe:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU Z520 @ 1.33GHz
stepping : 2
microcode : 0x20a
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fdiv_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx est tm2 ssse3 xtpr pdcm movbe lahf_lm dtherm tpr_shadow vnmi flexpriority
bugs :
bogomips : 2660.12
clflush size : 64
cache_alignment : 64
address sizes : 32 bits physical, 32 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 28
model name : Intel(R) Atom(TM) CPU Z520 @ 1.33GHz
stepping : 2
microcode : 0x20a
cpu MHz : 800.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fdiv_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf eagerfpu pni dtes64 monitor ds_cpl vmx est tm2 ssse3 xtpr pdcm movbe lahf_lm dtherm tpr_shadow vnmi flexpriority
bugs :
bogomips : 2660.12
clflush size : 64
cache_alignment : 64
address sizes : 32 bits physical, 32 bits virtual
power management:
Two processors should be shown; processor 0 and processor 1. If you only see processor 0, SMP is likely disabled in your kernel.
You then need to make sure
lavdopts=threads=2 is set in your /etc/mplayer/mplayer.conf to enable multithreading, though if you don't need framebuffer playback and use X, mpv is a better option as you get on screen controls and multithreaded playback is the default.
Code: Select all
sudo of-install xserver
sudo apt update
sudo apt install mpv
If anyone else goes nuts and puts a BCM70015 into their OpenFrame 2, or if anybody has suggestions as to why I'm not seeing the performance we should get from this card, please post!