Broadcom Crystal HD

From MythTV Official Wiki
Revision as of 18:37, 21 February 2014 by DStulken (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

MythTV logo square.png Join us making your favorite media center even better than it already is today.

Introduction

Broadcom's Crystal HD chipset is a dedicated hardware video decoder and processor, commonly paired with low-power Netbooks to enable high definition video playback with very low CPU usage. The Crystal HD was launched around the same time as the NVIDIA ION platform, which has a much different design/purpose and higher power consuption, but similar video playback capabilities. [1]

Mythtv does not currently support the BCM70012 version

Hardware

The Crystal HD decoder was offered in a number of forms, some with several hardware revisions.

Brand Model Chipset Form Factor Power Usage Availability

& Average Price

Comments Manufacturer Website(s)

Broadcom

BCM970012 (BCM970012NB?)

x

PCIe mini card

?

Common

~ $30 shipped? (USA, mid 2012)

First board layout [2]

x

Broadcom

BCM970012 (BCM970012NB?)

x

PCIe mini card

?

Common

~ $30 shipped? (USA, mid 2012)

Second revised board layout (functionally identical) [3]

x

Broadcom

BCM970015

x

PCIe mini card

(Half size with optional extension for compatibility with full length mounts)

?

Less common

~ $45 shipped (USA, mid 2012)

Newest Style

x

Broadcom

BCM970012PQ

x

PCIe (desktop)

?

Unobtainable

(Never entered production?)

x

x

Broadcom

BCM970010

x

ExpressCard 34

?

Unobtainable

(Never entered production?)

x

x

Broadcom

BCM970012IC

x

ExpressCard 34

?

Unobtainable

(Never entered production?)

x

x

AzureWave

AW-VD904

x

PCIe mini card

x

Plentiful

< $15 shipped (USA, mid 2012)

Most Crystal HD cards on eBay appear to be this type.

[4] (no direct product page)

AzureWave

AW-VD920

x

PCIe mini card

99.6 mA to 716.5 mA [5]

(Mode and resolution dependent)

x

x

[6] (no direct product page)

AzureWave

AW-VD920H

x

PCIe mini card

(Half size)

99.6 mA to 716.5 mA [7]

(Mode and resolution dependent)

x

x

[8] (no direct product page)

Habey

HB-VD904

x

PCIe mini card

x

x

Same as the revised layout version of the BCM970012 [9]

[10] [11]

Habey

HB-VD920

x

PCIe mini card

(Half size)

Rebranded AzureWave AW-VD920H

(PCB markings say "AW-VD920H", half-to-full extender says "AzureWave".. only a secondary white sticker identifies it as "Habey", and not all of them came with the sticker)

[12] [13]

x

x

x

x

x

x

x

x



It may also be known as the Broadcom AV-VD905, which is paired with the ASUS Eee Keyboard.

Crystal HD is also known by other includes. For example, Dell refers to it as Broadcom BD Accelerator.

The above products may be rebranded by OEM's, and are known to be available for the following targeted platforms:

  • HP Mini 110
  • Aspire One netbook
  • Dell Inspiron 1525 and Studio 1735

(note: there are adapters for regular to mini PCIe cards: http://www.hwtools.net/Adapter/MP1.html)

Another adapter has been tested and works for me in a PCIe X1 slot on a normal motherboard and was cheaper than the MP1 adapter: http://www.titanwirelessonline.com/ProductDetails.asp?ProductCode=RB-11E

The decoders are available on ebay, among other sources.


Feb. 2014 Update

This wiki page is noticeably out of date, at least as of Feb. 2014, and no single source contains a clear or complete picture on MythTV support for the Crystal HD or how to go about installing and using it. Some clean-up work is required, but in the mean time, here is my assessment of the current Crystal HD status:

  • The drivers in the Kernel Staging section became bogged down by the kernel code processes and politics, and received less attention than the separately maintained drivers. Therefore, the in-kernel drivers are out of date, and should not be used.
  • The drivers straight from Broadcom are substantially out of date, and should not be used.
  • The most current (and functional) drivers can be found at Jarod Wilson's git repository: git://git.linuxtv.org/jarod/crystalhd.git
    • Instructions for compiling the driver and library components can be found at: http://code.google.com/p/indicator-crystalhd/wiki/CrystalHDHowTo and http://web.archive.org/web/20120930021849/http://knowledge.evot.biz/documentation/how-to-compile-and-install-the-broadcom-crystal-hd-hardware-decoder-bcm70012-70015-driver-on-ubuntu (archived, but more recently updated than the other link).
      • Note that "CrystalHD Indicator", the GStreamer plugin, and Adobe Flash acceleration, are all optional components which are not required for MythTV usage.
    • You may have issues compiling the driver from the git repository. Please reference the first and second posts from this thread: http://bbs.archlinux.org/viewtopic.php?pid=1253802. Since the patch may go out of date or become unavailable, I would recommend simply finding and replacing those macros manually (there are only a handful of instances to replace).
      • (If that source disappears, this is the solution: "The problem is that with the 3.8 kernel update, the __devinit and __devexit macros were removed. Those macros are used in the source, so that's what's causing the failures. I did some research, these macros check if hotplugging is enabled in the kernel, and if it is, they get replaced with __init and __exit respectively. Since I can't imagine a situation where you wouldn't want hotplugging, the solution is to replace all instances of __devinit and __devexit with __init and __exit in driver/linux/crystalhd_cmds.c and driver/linux/crystalhd_lnx.c")
  • If compiling from source, you should install the Crystal HD hardware and compile and install the Crystal HD driver and library *FIRST*, and then compile (or re-compile) MythTV *AFTER* that to ensure that MythTV builds the appropriate support for the Crystal HD. (The MythTV build, specifically the ffmpeg/mythffmpeg part, auto-detects the presence of the Crystal HD at compile time, and only then builds in the appropriate support.)
  • Just to be explicitly clear, since there are many years of confusion and misinformation: MythTV *does* support the Crystal HD, and it *IS* possible to make the Crystal HD 970015 work under MythTV 0.27 with a modern kernel. (Tested and verified with kernel 3.10.25 on a Gentoo system.)
  • For reasons of both decoding performance and power consumption, the 970015 is strongly preferred over the 970012.
  • If you're trying to decide if the Crystal HD is right for you, note that on modern low-power systems with integrated GPUs (such as Intel Ivy Bridge Celerons), using a Crystal HD hardware decoder may actually *increase* power consumption over simply using CPU software decoding alone. It also has increased latency when starting playback or seeking to a different time point, and more limited options for deinterlacing.

- DStulken 18:11, 21 February 2014 (UTC)

Drivers

Drivers are publicly avaiable and release under GPLv2. They are included in ubuntu 12.04+ repos, but are not included in the standard install of ubuntu

Obtaining drivers

Available drivers

To obtain the drivers in ubuntu run the following command in the command line

sudo apt-get install crystalhd-dkms firmware-crystalhd


or if you want you can compile the driver from source code. Here is the command get the driver source

wget -O http://www.broadcom.com/docs/support/crystalhd/crystalhd_linux_20100703.zip

CrystalHD libraries

In Fedora
In Ubuntu

Intel Chipsets

Compiling/Installing the driver

NVIDIA

Intel

Configuring xorg.conf

NVIDIA

INTEL

Enabling the chipset library

Checking your installation

MythTV Crystal HD Support

Mythtv does not currently support the BCM70012 version, the only other version that I am aware of is the BCM70015 which is the half pci-e mini half card

Packages and Distributions

Compiling from source

Configuring MythTV

The current version (0.26) does not have a default video playback configuration and a custom video playback profile will have to be created.

setup > setup > video > playback > 3 enters to the playback profiles screen

Add new profile

Add new entry

change the decoder to crystalhd and use whatever render you like. In my case the xv-blit

OSD

Using other applications

There is a plugin for gstreamer that supports crystalhd (both the 12 and 15 version). In ubuntu it can be installed with the following command

sudo apt-get install gstreamer0.10-crystalhd

Also there is support built into vlc. However vlc will have to started from the command line to use the crystal hd.

 vlc --codec crystalhd


Processes and streams that can be accelerated for most video formats

Crystal HD can accelerate the decoding of full HD ripped from blu-ray.

the BCM970012 support the following codecs

  • H.264/AVC HP at L 4.1 1080p/1080i, 40 Mbps
  • SMPTE VC-1 AP at L 3 1080p/1080i, 40 Mbps
  • VC-1 Simple and Main Profile (WMV9)
  • MPEG-2 MP @ ML and MP @ HL

the BCM970015 support the following codecs

  • H.264/AVC HP at L 5.1 1080p/1080i, 40 Mbps
  • SMPTE VC-1 AP at L 3 1080p/1080i, 40 Mbps
  • WMV9 (VC-1 SP and MP)
  • MPEG-2 MP @ ML and HL, 80 Mbps
  • DivX 3.11, 4.1, 5.X, 6.X, XviD

as well as Flash video support in Windows and Linux

Both cards support any standard resolution from QVGA up to 1920 x 1088.

Alternatives

There are alternative methods for hardware assisted playback of high definition video:


External Links