Squashed 'import-layers/meta-openembedded/' content from commit 247b126
Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0
git-subtree-dir: import-layers/meta-openembedded
git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
new file mode 100644
index 0000000..829c3b2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
@@ -0,0 +1,23 @@
+# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
+# License: MIT (see COPYING.MIT)
+
+SUMMARY = "Preconfigured mplayer preferences"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+PV = "0.0.1"
+PR = "r1"
+
+SRC_URI = "file://mplayer.conf"
+
+# Yes, really /usr/etc!!!
+do_install() {
+ install -d "${D}/usr${sysconfdir}/mplayer"
+
+ install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr${sysconfdir}/mplayer"
+}
+
+FILES_${PN} = "/usr${sysconfdir}/mplayer"
+
+inherit allarch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
new file mode 100644
index 0000000..37ad65f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
@@ -0,0 +1,15 @@
+
+# You probably shouldn't touch these
+ac=mad,
+ao=alsa,
+
+# Required on SL-Cxxxx for correct rotation in the *VT*,
+# breaks rotation in X!
+# vf=rotate=1
+
+# Enable fullscreen display by default
+# fs=true
+
+# Drop frames to keep audio and video in sync
+framedrop=true
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
new file mode 100644
index 0000000..e232595
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-configure-don-t-disable-ASS-support-when-explicitly-.patch
@@ -0,0 +1,26 @@
+From 3541649b711a773aa2e42ac80d9b4c1b36fce23f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 27 Mar 2014 00:08:54 +0100
+Subject: [PATCH] configure: don't disable ASS support when explicitly enabled
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 60fd308..2f7df3b 100755
+--- a/configure
++++ b/configure
+@@ -4346,7 +4346,7 @@ fi
+
+
+ echocheck "SSA/ASS support"
+-if test "$_ass" = auto ; then
++if test "$_ass" = auto -o "$_ass" = yes ; then
+ if pkg_config_add libass ; then
+ _ass=yes
+ def_ass='#define CONFIG_ASS 1'
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
new file mode 100644
index 0000000..b4d9841
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2/0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch
@@ -0,0 +1,136 @@
+From 0571bb4f1a6e1934ee7e093ce7aa517b9bac8e6a Mon Sep 17 00:00:00 2001
+From: Awais Belal <awais_belal@mentor.com>
+Date: Sun, 17 Jan 2016 14:46:10 +0500
+Subject: [PATCH] demux_ogg: partially port libtheora glue code to Theora 1.0
+ API
+
+This partially backports the following commit to allow building
+with gcc-5.x and otherwise fails to find the definition of
+the _ilog function the way it is used.
+
+https://github.com/pigoz/mplayer-svn/commit/85e51408cd00979fc209da8e3a39b6f0e7f325bc
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+---
+ libmpdemux/demux_ogg.c | 52 ++++++++++++++++++++++++++------------------------
+ 1 file changed, 27 insertions(+), 25 deletions(-)
+
+diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
+index 9eea061..9144426 100644
+--- a/libmpdemux/demux_ogg.c
++++ b/libmpdemux/demux_ogg.c
+@@ -50,8 +50,7 @@
+ #endif
+
+ #ifdef CONFIG_OGGTHEORA
+-#include <theora/theora.h>
+-int _ilog (unsigned int); /* defined in many places in theora/lib/ */
++#include <theora/theoradec.h>
+ #endif
+
+ #define BLOCK_SIZE 4096
+@@ -62,9 +61,10 @@ int _ilog (unsigned int); /* defined in many places in theora/lib/ */
+ */
+ #ifdef CONFIG_OGGTHEORA
+ typedef struct theora_struct_st {
+- theora_state st;
+- theora_comment cc;
+- theora_info inf;
++ th_setup_info *tsi;
++ th_dec_ctx *tctx;
++ th_comment tc;
++ th_info ti;
+ } theora_struct_t;
+ #endif
+
+@@ -117,7 +117,7 @@ typedef struct ogg_stream {
+ float samplerate; /// granulpos 2 time
+ int64_t lastpos;
+ int32_t lastsize;
+- int keyframe_frequency_force;
++ int keyframe_granule_shift;
+
+ // Logical stream state
+ ogg_stream_state stream;
+@@ -300,11 +300,10 @@ static unsigned char *demux_ogg_read_packet(ogg_stream_t *os, ogg_packet *pack,
+ have theora_state st, until all header packets were passed to the
+ decoder. */
+ if (!pack->bytes || !(*data&0x80)) {
+- int keyframe_granule_shift = _ilog(os->keyframe_frequency_force - 1);
+- int64_t iframemask = (1 << keyframe_granule_shift) - 1;
++ int64_t iframemask = iframemask = (1 << os->keyframe_granule_shift) - 1;
+
+ if (pack->granulepos >= 0) {
+- os->lastpos = pack->granulepos >> keyframe_granule_shift;
++ os->lastpos = pack->granulepos >> os->keyframe_granule_shift;
+ os->lastpos += pack->granulepos & iframemask;
+ *keyframe = (pack->granulepos & iframemask) == 0;
+ } else {
+@@ -888,14 +887,15 @@ int demux_ogg_open(demuxer_t *demuxer)
+ #ifdef CONFIG_OGGTHEORA
+ } else if (pack.bytes >= 7 && !strncmp (&pack.packet[1], "theora", 6)) {
+ int errorCode = 0;
+- theora_info inf;
+- theora_comment cc;
++ th_info ti;
++ th_comment tc;
++ th_setup_info *tsi = NULL;
+
+- theora_info_init (&inf);
+- theora_comment_init (&cc);
++ th_info_init (&ti);
++ th_comment_init (&tc);
+
+- errorCode = theora_decode_header (&inf, &cc, &pack);
+- if (errorCode) {
++ errorCode = th_decode_headerin(&ti, &tc, &tsi, &pack);
++ if (errorCode < 0) {
+ mp_msg(MSGT_DEMUX, MSGL_ERR,
+ "Theora header parsing failed: %i \n", errorCode);
+ } else {
+@@ -904,30 +904,32 @@ int demux_ogg_open(demuxer_t *demuxer)
+ sh_v->bih = calloc(1, sizeof(*sh_v->bih));
+ sh_v->bih->biSize = sizeof(*sh_v->bih);
+ sh_v->bih->biCompression = sh_v->format = FOURCC_THEORA;
+- sh_v->fps = ((double)inf.fps_numerator) / (double)inf.fps_denominator;
+- sh_v->frametime = ((double)inf.fps_denominator) / (double)inf.fps_numerator;
+- sh_v->disp_w = sh_v->bih->biWidth = inf.frame_width;
+- sh_v->disp_h = sh_v->bih->biHeight = inf.frame_height;
++ sh_v->fps = ((double)ti.fps_numerator) / (double)ti.fps_denominator;
++ sh_v->frametime = ((double)ti.fps_denominator) / (double)ti.fps_numerator;
++ sh_v->i_bps = ti.target_bitrate / 8;
++ sh_v->disp_w = sh_v->bih->biWidth = ti.frame_width;
++ sh_v->disp_h = sh_v->bih->biHeight = ti.frame_height;
+ sh_v->bih->biBitCount = 24;
+ sh_v->bih->biPlanes = 3;
+ sh_v->bih->biSizeImage = ((sh_v->bih->biBitCount / 8) * sh_v->bih->biWidth * sh_v->bih->biHeight);
+ ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
+ ogg_d->subs[ogg_d->num_sub].theora = 1;
+- ogg_d->subs[ogg_d->num_sub].keyframe_frequency_force = inf.keyframe_frequency_force;
++ ogg_d->subs[ogg_d->num_sub].keyframe_granule_shift = ti.keyframe_granule_shift;
+ ogg_d->subs[ogg_d->num_sub].id = n_video;
+ n_video++;
+ mp_msg(MSGT_DEMUX, MSGL_INFO,
+ "[Ogg] stream %d: video (Theora v%d.%d.%d), -vid %d\n",
+ ogg_d->num_sub,
+- (int)inf.version_major,
+- (int)inf.version_minor,
+- (int)inf.version_subminor,
++ (int)ti.version_major,
++ (int)ti.version_minor,
++ (int)ti.version_subminor,
+ n_video - 1);
+ if (mp_msg_test(MSGT_HEADER, MSGL_V))
+ print_video_header(sh_v->bih, MSGL_V);
+ }
+- theora_comment_clear(&cc);
+- theora_info_clear(&inf);
++ th_comment_clear(&tc);
++ th_info_clear(&ti);
++ th_setup_free(tsi);
+ #endif /* CONFIG_OGGTHEORA */
+ } else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
+ sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio);
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
new file mode 100644
index 0000000..145497a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-multimedia/mplayer/mplayer2_git.bb
@@ -0,0 +1,159 @@
+SUMMARY = "Open Source multimedia player"
+SECTION = "multimedia"
+HOMEPAGE = "http://www.mplayerhq.hu/"
+DEPENDS = "libvpx libdvdread libtheora virtual/libsdl ffmpeg xsp zlib \
+ libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses \
+ libxv virtual/libx11 libass speex faad2 libxscrnsaver"
+
+RDEPENDS_${PN} = "mplayer-common"
+PROVIDES = "mplayer"
+RPROVIDES_${PN} = "mplayer"
+RCONFLICTS_${PN} = "mplayer"
+
+# Depends on xsp, libxv, virtual/libx11, libxscrnsaver
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# because it depends on libpostproc/libav which has commercial flag
+LICENSE_FLAGS = "${@bb.utils.contains('PACKAGECONFIG', 'postproc', 'commercial', '', d)}"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "git://repo.or.cz/mplayer.git \
+ file://0001-configure-don-t-disable-ASS-support-when-explicitly-.patch \
+ file://0001-demux_ogg-partially-port-libtheora-glue-code-to-Theo.patch \
+"
+
+SRCREV = "2c378c71a4d9b1df382db9aa787b646628b4e3f9"
+
+ARM_INSTRUCTION_SET = "arm"
+
+PV = "2.0+gitr${SRCPV}"
+PR = "r13"
+
+PARALLEL_MAKE = ""
+
+S = "${WORKDIR}/git"
+
+FILES_${PN} = "${bindir}/mplayer ${libdir} /usr/etc/mplayer/"
+CONFFILES_${PN} += "/usr/etc/mplayer/input.conf \
+ /usr/etc/mplayer/example.conf \
+ /usr/etc/mplayer/codecs.conf \
+"
+
+inherit autotools-brokensep pkgconfig python3native
+
+EXTRA_OECONF = " \
+ --prefix=/usr \
+ --mandir=${mandir} \
+ --target=${SIMPLE_TARGET_SYS} \
+ \
+ --disable-lirc \
+ --disable-lircc \
+ --disable-joystick \
+ --disable-vm \
+ --disable-xf86keysym \
+ --enable-tv \
+ --enable-tv-v4l2 \
+ --disable-tv-bsdbt848 \
+ --enable-rtc \
+ --enable-networking \
+ --disable-smb \
+ --disable-dvdnav \
+ --enable-dvdread \
+ --disable-dvdread-internal \
+ --disable-libdvdcss-internal \
+ --disable-enca \
+ --disable-ftp \
+ --disable-vstream \
+ \
+ --disable-gif \
+ --enable-png \
+ --enable-jpeg \
+ --disable-libcdio \
+ --disable-qtx \
+ --disable-xanim \
+ --disable-real \
+ --disable-xvid \
+ \
+ --enable-speex \
+ --enable-theora \
+ --disable-ladspa \
+ --disable-libdv \
+ --enable-mad \
+ --disable-xmms \
+ --disable-musepack \
+ \
+ --disable-gl \
+ --enable-sdl \
+ --disable-caca \
+ --disable-directx \
+ --disable-dvb \
+ --enable-xv \
+ --disable-vm \
+ --disable-xinerama \
+ --enable-x11 \
+ --disable-directfb \
+ --disable-tga \
+ --disable-pnm \
+ --disable-md5sum \
+ \
+ --enable-alsa \
+ --enable-ossaudio \
+ --disable-pulse \
+ --disable-jack \
+ --disable-openal \
+ --enable-select \
+ --enable-libass \
+ \
+ --extra-libs=' -lXext -lX11 -lvorbis -ltheoradec -lasound ' \
+"
+# -ltheoradec is missing in:
+# libmpcodecs/vd_theora.o: undefined reference to symbol 'theora_decode_init@@libtheora.so.1.0'
+
+EXTRA_OECONF_append_armv6 = " --enable-armv6"
+EXTRA_OECONF_append_armv7a = " --enable-armv6 --enable-neon"
+
+PACKAGECONFIG ??= "vorbis postproc"
+PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
+PACKAGECONFIG[a52] = "--enable-liba52,--disable-liba52,liba52"
+PACKAGECONFIG[lame] = ",,lame"
+PACKAGECONFIG[postproc] = ",--disable-libpostproc,libpostproc"
+PACKAGECONFIG[vorbis] = ",--disable-libvorbis,libvorbis"
+PACKAGECONFIG[portaudio] = ",--disable-portaudio,portaudio-v19"
+PACKAGECONFIG[mpg123] = ",--disable-mpg123,mpg123"
+PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
+
+FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+CFLAGS_append = " -I${S}/libdvdread4 "
+
+do_configure() {
+ sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure
+ sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure
+ sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure
+ sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure
+ sed -i 's|_install_strip="-s"|_install_strip=""|g' ${S}/configure
+ sed -i 's|HOST_CC|BUILD_CC|' ${S}/Makefile
+ sed -i 's|extra_cflags="-I. $extra_cflags"|extra_cflags="-I. -I${STAGING_INCDIR}/directfb $extra_cflags"|g' ${S}/configure
+ export SIMPLE_TARGET_SYS="$(echo ${TARGET_SYS} | sed s:${TARGET_VENDOR}::g)"
+ ./configure ${EXTRA_OECONF}
+
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install-no-man
+ install -d ${D}/usr/etc/mplayer
+ install ${S}/etc/input.conf ${D}/usr/etc/mplayer/
+ install ${S}/etc/example.conf ${D}/usr/etc/mplayer/
+ install ${S}/etc/codecs.conf ${D}/usr/etc/mplayer/
+ [ -e ${D}/usr/lib ] && rmdir ${D}/usr/lib
+}
+
+# http://errors.yoctoproject.org/Errors/Details/40734/
+PNBLACKLIST[mplayer2] ?= "Not compatible with currently used ffmpeg 3"