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

codec/mmal: Add mmal based decoder plugin

This plugin is capable of decoding MPEG-2 and H264 video through the Multi
Media Abstraction Layer (MMAL) by Broadcom. It is supported by recent Broadcom
SoCs and found on the widely spread Raspberry Pi.
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 23125782
......@@ -28,6 +28,7 @@ Decoder:
* Add tx3g subtitles decoder
* Add Media Foundation Transform decoder
* Add decoder module based on GStreamer. Currently supports only video decode.
* Add mmal based mpeg2/h264 decoder
Encoder:
* Support for MPEG-2 encoding using x262
......
......@@ -2146,6 +2146,33 @@ then
VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
fi
dnl
dnl MMAL codec plugin
dnl
AC_ARG_ENABLE(mmal-codec,
AS_HELP_STRING([--enable-mmal-codec],
[Multi-Media Abstraction Layer (MMAL) based codec plugin for Raspberry Pi (default enable)]))
if test "${enable_mmal_codec}" != "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, bcm_host_init, [
VLC_ADD_PLUGIN([mmal_codec])
VLC_ADD_LDFLAGS([mmal_codec],[ -L/opt/vc/lib ])
VLC_ADD_CFLAGS([mmal_codec],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vcos/linux ])
VLC_ADD_LIBS([mmal_codec],[ -lbcm_host -lmmal ]) ], [
AS_IF([test "${enable_mmal_codec}" = "yes"],
[ AC_MSG_ERROR([Cannot find bcm library...]) ],
[ AC_MSG_WARN([Cannot find bcm library...]) ])
],
[])
] , [ AS_IF([test "${enable_mmal_codec}" = "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 CrystalHD codec plugin
dnl
......
......@@ -206,6 +206,7 @@ $Id$
* mirror: mirror video filter
* mjpeg: a demuxer for multipart and concatenated JPEG data
* mkv: Matroska demuxer
* mmal_codec: mmal based video decoder
* mmal_vout: mmal based video renderer
* mmdevice: Windows Audio Session API audio output using MMDevice
* mod: MOD demuxer
......
......@@ -374,6 +374,16 @@ codec_LTLIBRARIES += libiomx_plugin.la libmediacodec_plugin.la
endif
### MMAL ###
libmmal_codec_plugin_la_SOURCES = codec/mmal.c
libmmal_codec_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_mmal_codec)
libmmal_codec_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' $(LDFLAGS_mmal_codec)
libmmal_codec_plugin_la_LIBADD = $(LIBS_mmal_codec)
EXTRA_LTLIBRARIES += libmmal_codec_plugin.la
codec_LTLIBRARIES += $(LTLIBmmal_codec)
### X26x encoders ###
libx265_plugin_la_SOURCES = codec/x265.c
......
This diff is collapsed.
......@@ -379,6 +379,7 @@ modules/codec/libass.c
modules/codec/libmpeg2.c
modules/codec/lpcm.c
modules/codec/mft.c
modules/codec/mmal.c
modules/codec/mpeg_audio.c
modules/codec/omxil/android_mediacodec.c
modules/codec/omxil/omxil.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