Commit 23125782 authored by Dennis Hamester's avatar Dennis Hamester Committed by Jean-Baptiste Kempf

video_output/mmal: Add mmal based video output plugin

This plugin uses the Multimedia Abstraction Layer (mmal) by Broadcom. It is
supported on recent Broadcom SoCs as found on the well known Raspberry Pi.
The plugin features support for native blending of overlays through DispManX.
Furthermore it supports automatic adaption of refresh rate to the video being
played through the tvservice API.
Signed-off-by: default avatarDennis Hamester <dennis.hamester@gmail.com>
Signed-off-by: default avatarJulian Scheel <julian@jusst.de>
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent d5545aaa
......@@ -68,6 +68,7 @@ Video Output:
* New Android native window provider module
* Direct rendering for MediaCodec Android hardware acceleration
* Support for loading HLSL shaders in Direct3D video output
* Add mmal based video output
Video Filter:
* New Oldmovie effect filter
......
......@@ -3441,6 +3441,33 @@ AS_IF([test "$enable_kva" != "no"], [
AC_SUBST(KVA_LIBS)
AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
dnl
dnl MMAL vout plugin
dnl
AC_ARG_ENABLE(mmal-vout,
AS_HELP_STRING([--enable-mmal-vout],
[Multi-Media Abstraction Layer (MMAL) based vout plugin for Raspberry Pi (default enable)]))
if test "${enable_mmal_vout}" != "no"; then
VLC_SAVE_FLAGS
LDFLAGS="${LDFLAGS} -L/opt/vc/lib"
CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vcos/linux"
AC_CHECK_HEADERS(interface/mmal/mmal.h,
[ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
VLC_ADD_PLUGIN([mmal_vout])
VLC_ADD_LDFLAGS([mmal_vout],[ -L/opt/vc/lib ])
VLC_ADD_CFLAGS([mmal_vout],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vcos/linux ])
VLC_ADD_LIBS([mmal_vout],[ -lbcm_host -lmmal ]) ], [
AS_IF([test "${enable_mmal_vout}" = "yes"],
[ AC_MSG_ERROR([Cannot find bcm library...]) ],
[ AC_MSG_WARN([Cannot find bcm library...]) ])
],
[])
] , [ AS_IF([test "${enable_mmal_vout}" = "yes"],
[ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
[ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
VLC_RESTORE_FLAGS
fi
dnl
dnl Audio plugins
dnl
......
......@@ -206,6 +206,7 @@ $Id$
* mirror: mirror video filter
* mjpeg: a demuxer for multipart and concatenated JPEG data
* mkv: Matroska demuxer
* mmal_vout: mmal based video renderer
* mmdevice: Windows Audio Session API audio output using MMDevice
* mod: MOD demuxer
* mono: stereo-to-mono downmix simple channel mixer
......
......@@ -235,6 +235,14 @@ libcaca_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)'
EXTRA_LTLIBRARIES += libcaca_plugin.la
vout_LTLIBRARIES += $(LTLIBcaca)
### MMAL ###
libmmal_vout_plugin_la_SOURCES = mmal.c
libmmal_vout_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_mmal_vout)
libmmal_vout_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(voutdir)' $(LDFLAGS_mmal_vout)
libmmal_vout_plugin_la_LIBADD = $(LIBS_mmal_vout)
EXTRA_LTLIBRARIES += libmmal_vout_plugin.la
vout_LTLIBRARIES += $(LTLIBmmal_vout)
### Common ###
libvdummy_plugin_la_SOURCES = vdummy.c
......
This diff is collapsed.
......@@ -1159,6 +1159,7 @@ modules/video_output/glx.c
modules/video_output/ios2.m
modules/video_output/kva.c
modules/video_output/macosx.m
modules/video_output/mmal.c
modules/video_output/msw/direct2d.c
modules/video_output/msw/direct3d.c
modules/video_output/msw/directx.c
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment