[vlc-devel] [PATCH v4 0/3] Add plugins for MMAL/Raspberry Pi

Julian Scheel julian at jusst.de
Wed May 21 13:46:38 CEST 2014

Update summary v4:
- Fix autotools scripts to correctly add CFLAGS and LDFLAGS
- For patch specific changes, see single patch mails

With this version of the patches the use of opaque pointers is enabled by
default in the modules. As of now, to use the codec along with a vout which is
not compatible with mmal opaque pointers one has to explicitly disable the
zerocopy mode.  We will add a video_filter plugin soon which will be able to
convert from mmal opaque encoding to yuv/i420 encoding, so that automatic
chaining with other plugins/vouts is possible. For this we are pending on a
mmal firmware update from the Raspberry Foundation, which shall be released
very soon.
Update summary v3:
- Fix Makefile.am/Modules.am to correctly set LIBADD
- Do not link indirectly linked libs (libmmal_*) explicitly
- For patch specific changes, see single patch mails
Update summary v2:
- Rework configure.ac to autodetect presence of mmal
- Reformat code to avoid spaghetti lines
- For patch specific changes, see single patch mails

This patch series introduces a decoder as well as a video output plugin using
the Multi Media Abstraction Layer (mmal) by Broadcom, found on the Raspberry
Pi. While there is support for the Raspberry Pi in the VLC OMX plugins already
these plugins come with some advantages:

 - Support for zerocopy through opaque pointers
 - Support for native overlay blending through DispManX
 - Support for automatic HDMI mode adaptation through tvservice
 - Dramatically smaller/simpler code-base than the OMX plugins have, due to
   the ease of the MMAL API compared to OMX

In our testing the plugins work very reliable already. As of now for building
the decoder module the rpi-userland needs to be patched manually with the
patches from:

They should be mainlined into rpi-userland soon and will then be available
through common Raspberry distribution updates.

For the future we plan to add a deinterlace plugin, but for this we are
pending on the Broadcom/Raspberry team to expose the deinterlace filters
through MMAL API.

Looking forward to see some comments!

Julian & Dennis

Dennis Hamester (2):
  video_output/mmal: Add mmal based video output plugin
  codec/mmal: Add mmal based decoder plugin

Julian Scheel (1):
  mmal: Register opaque fourcc in core as fake_fmt

 NEWS                            |   2 +
 configure.ac                    |  54 +++
 include/vlc_fourcc.h            |   3 +
 modules/MODULES_LIST            |   2 +
 modules/codec/Makefile.am       |  10 +
 modules/codec/mmal.c            | 599 +++++++++++++++++++++++++
 modules/video_output/Modules.am |   8 +
 modules/video_output/mmal.c     | 955 ++++++++++++++++++++++++++++++++++++++++
 po/POTFILES.in                  |   2 +
 src/misc/fourcc.c               |   3 +-
 10 files changed, 1637 insertions(+), 1 deletion(-)
 create mode 100644 modules/codec/mmal.c
 create mode 100644 modules/video_output/mmal.c


More information about the vlc-devel mailing list