summaryrefslogtreecommitdiffstats
path: root/recipes-multimedia
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-08 11:15:02 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-17 13:58:05 +0000
commit41591d4f8c586aa801220fac0924556f406c58bd (patch)
tree85a2803d48a094fb0ba3a76b9e3d0870a4e5edc2 /recipes-multimedia
parent4830bcef14e7f49cdc851c646a69c9bb9bd92e82 (diff)
SPEC-3723: restructure meta-agl-demo
All demo related components should be in here now. We keep the packagegroups on purpose for now to stay backward-compatible. v2: layer does pass yocto-check-layer, dependencies adapted v3: remove the dynamic-layer setup, use all-in-one approach v4: Fixed comments from Paul Barker. Tnx! v5: Removed wayland/weston/agl-compositor additions, except for demo specific weston-init bbappend Follow-up changes required later: - massaging packagegroups - scrub of recipes Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I47cefd8c23d46b2cdd063470e3f7d97d5ad952d8
Diffstat (limited to 'recipes-multimedia')
-rw-r--r--recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch28
-rw-r--r--recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend1
-rw-r--r--recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_agldemo.inc2
-rw-r--r--recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend1
-rw-r--r--recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_agldemo.inc2
-rw-r--r--recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch40
-rw-r--r--recipes-multimedia/libmp4v2/libmp4v2_git.bb18
-rw-r--r--recipes-multimedia/lightmediascanner/.appends.meta-efl0
-rw-r--r--recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch33
-rw-r--r--recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch49
-rw-r--r--recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf12
-rw-r--r--recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch11
-rw-r--r--recipes-multimedia/lightmediascanner/files/lightmediascanner.service16
-rw-r--r--recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch53
-rw-r--r--recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend42
-rw-r--r--recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb63
16 files changed, 371 insertions, 0 deletions
diff --git a/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
new file mode 100644
index 00000000..443e7db8
--- /dev/null
+++ b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad/0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch
@@ -0,0 +1,28 @@
+From 03e502084633838badfcc2b91a1aca1651c18544 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Wed, 24 Jun 2020 19:44:35 +0300
+Subject: [PATCH] gst/wayland/: Install wayland header from gstwayland library
+
+Necessary for cluster-receiver to pass out the wl_surface.
+
+Bug-AGL: SPEC-3382
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ gst-libs/gst/wayland/meson.build | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/gst-libs/gst/wayland/meson.build b/gst-libs/gst/wayland/meson.build
+index b1ede41f1..8957381d2 100644
+--- a/gst-libs/gst/wayland/meson.build
++++ b/gst-libs/gst/wayland/meson.build
+@@ -21,4 +21,6 @@ if use_wayland
+ gstwayland_dep = declare_dependency(link_with : gstwayland,
+ include_directories : [libsinc],
+ dependencies : [gst_dep, gstvideo_dep])
++
++ install_headers('wayland.h', subdir: 'gst/wayland')
+ endif
+--
+2.26.2
+
diff --git a/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
new file mode 100644
index 00000000..7f389dab
--- /dev/null
+++ b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_1.16.%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'gstreamer1.0-plugins-bad_agldemo.inc', '', d)}
diff --git a/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_agldemo.inc b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_agldemo.inc
new file mode 100644
index 00000000..fcfda531
--- /dev/null
+++ b/recipes-multimedia/gstreamer1.0-plugins-bad/gstreamer1.0-plugins-bad_agldemo.inc
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-plugins-bad:"
+SRC_URI_append = " file://0001-gst-wayland-Install-wayland-header-from-gstwayland-l.patch"
diff --git a/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend b/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
new file mode 100644
index 00000000..2d314acd
--- /dev/null
+++ b/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'gstreamer1.0-plugins-good_agldemo.inc', '', d)}
diff --git a/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_agldemo.inc b/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_agldemo.inc
new file mode 100644
index 00000000..86a181fb
--- /dev/null
+++ b/recipes-multimedia/gstreamer1.0-plugins-good/gstreamer1.0-plugins-good_agldemo.inc
@@ -0,0 +1,2 @@
+# libv4l2 is useful for making more efficient use of cameras via v4l2src.
+PACKAGECONFIG_append = " libv4l2"
diff --git a/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch b/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
new file mode 100644
index 00000000..51896e8d
--- /dev/null
+++ b/recipes-multimedia/libmp4v2/files/0001-add-a-configure-option-to-disable-build-of-man-pages.patch
@@ -0,0 +1,40 @@
+From 530a31e3eb24b2f1ed7b30859ed62a2d1b24bd91 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 7 Feb 2017 11:51:58 +0100
+Subject: [PATCH] add a configure option to disable build of man-pages
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8316c67..099fc0c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -67,6 +67,8 @@ AC_ARG_ENABLE([largefile],
+ [AS_HELP_STRING([--disable-largefile],[disable LFS (large file support)])])
+ AC_ARG_ENABLE([util],
+ [AS_HELP_STRING([--disable-util],[disable build of command-line utilities])])
++AC_ARG_ENABLE([man],
++ [AS_HELP_STRING([--disable-man],[disable build of man-pages])])
+ AC_ARG_ENABLE([bi],
+ [AS_HELP_STRING([--enable-bi=ARCH],[enable -mARCH for bi-arch compilation])])
+ AC_ARG_ENABLE([ub],
+@@ -395,7 +397,7 @@ AM_CONDITIONAL([ADD_PLATFORM_POSIX],[test "$X_PLATFORM" = "posix"])
+ AM_CONDITIONAL([ADD_PLATFORM_WIN32],[test "$X_PLATFORM" = "win32"])
+
+ AM_CONDITIONAL([ADD_UTIL],[test "$enable_util" != "no"])
+-AM_CONDITIONAL([ADD_MANS],[test "$X_PLATFORM" != "win32"])
++AM_CONDITIONAL([ADD_MANS],[test "$enable_man" != "no"])
+
+ ###############################################################################
+ # declare common substitutions
+--
+2.9.3
+
diff --git a/recipes-multimedia/libmp4v2/libmp4v2_git.bb b/recipes-multimedia/libmp4v2/libmp4v2_git.bb
new file mode 100644
index 00000000..dd1b3474
--- /dev/null
+++ b/recipes-multimedia/libmp4v2/libmp4v2_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "The MP4v2 library provides an API to create and modify mp4 files"
+HOMEPAGE = "https://github.com/sergiomb2/libmp4v2/wiki"
+LICENSE = "MPLv1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb3014b036b6d2151d944aef6a84c36f"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI = " \
+ git://github.com/sergiomb2/${BPN}.git \
+ file://0001-add-a-configure-option-to-disable-build-of-man-pages.patch \
+"
+SRCREV = "855e9674232808ff3be7191b697dfb56917db21f"
+S = "${WORKDIR}/git"
+PV = "2.1.0+git${SRCPV}"
+
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+EXTRA_OECONF = "--disable-man"
diff --git a/recipes-multimedia/lightmediascanner/.appends.meta-efl b/recipes-multimedia/lightmediascanner/.appends.meta-efl
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/.appends.meta-efl
diff --git a/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch b/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
new file mode 100644
index 00000000..15d4b3f0
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/0001-Define-comparison_fn_t-for-non-glibc-systems.patch
@@ -0,0 +1,33 @@
+From 5bc5b8c5dad3edec6736fd7e7ce61250c4ce3725 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Jul 2017 17:13:19 -0700
+Subject: [PATCH] Define comparison_fn_t for non-glibc systems
+
+lightmediascanner.c:324:12: error: 'comparison_fn_t' undeclared (first use in this function)
+ (comparison_fn_t)_plugin_sort);
+ ^~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/lightmediascanner.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/lib/lightmediascanner.c b/src/lib/lightmediascanner.c
+index 344b247..b866883 100644
+--- a/src/lib/lightmediascanner.c
++++ b/src/lib/lightmediascanner.c
+@@ -37,6 +37,11 @@
+ #define DEFAULT_SLAVE_TIMEOUT 1000
+ #define DEFAULT_COMMIT_INTERVAL 100
+
++#if !defined(__GLIBC__)
++typedef int (*__compar_fn_t) (const void*, const void*);
++typedef __compar_fn_t comparison_fn_t;
++#endif
++
+ #ifdef HAVE_MAGIC_H
+ static magic_t _magic_handle;
+
+--
+2.13.2
+
diff --git a/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch b/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
new file mode 100644
index 00000000..5abb980b
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch
@@ -0,0 +1,49 @@
+From 5a618b444e424483c3a9d34dd9b196796cac8e3f Mon Sep 17 00:00:00 2001
+From: Matt Ranostay <matt.ranostay@konsulko.com>
+Date: Mon, 22 Jul 2019 13:29:52 -0700
+Subject: [PATCH] switch from G_BUS_TYPE_SESSION to G_BUS_TYPE_SYSTEM
+
+Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
+---
+ src/bin/lightmediascannerctl.c | 4 ++--
+ src/bin/lightmediascannerd.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/bin/lightmediascannerctl.c b/src/bin/lightmediascannerctl.c
+index 5764bc0..1d4d844 100644
+--- a/src/bin/lightmediascannerctl.c
++++ b/src/bin/lightmediascannerctl.c
+@@ -11,7 +11,7 @@ start_service_by_name(void)
+ GVariant *var;
+ GDBusConnection *conn;
+
+- conn = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
++ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+ if (error) {
+ fprintf(stderr, "Could not get session bus connection: %s\n",
+ error->message);
+@@ -526,7 +526,7 @@ main(int argc, char *argv[])
+
+ app.timer = NULL;
+ app.loop = g_main_loop_new(NULL, FALSE);
+- app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SESSION,
++ app.proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ "org.lightmediascanner",
+diff --git a/src/bin/lightmediascannerd.c b/src/bin/lightmediascannerd.c
+index 319db42..6db81cc 100644
+--- a/src/bin/lightmediascannerd.c
++++ b/src/bin/lightmediascannerd.c
+@@ -1721,7 +1721,7 @@ main(int argc, char *argv[])
+ introspection_data = g_dbus_node_info_new_for_xml(introspection_xml, NULL);
+ g_assert(introspection_xml != NULL);
+
+- id = g_bus_own_name(G_BUS_TYPE_SESSION, "org.lightmediascanner",
++ id = g_bus_own_name(G_BUS_TYPE_SYSTEM, "org.lightmediascanner",
+ G_BUS_NAME_OWNER_FLAGS_NONE,
+ NULL, on_name_acquired, NULL, NULL, NULL);
+
+--
+2.20.1
+
diff --git a/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf b/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
new file mode 100644
index 00000000..8a9e35b0
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/dbus-lightmediascanner.conf
@@ -0,0 +1,12 @@
+<?xml version="1.0"?> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <policy user="root">
+ <allow own="org.lightmediascanner"/>
+ <allow send_destination="org.lightmediascanner"/>
+ <allow receive_type="signal" receive_sender="org.lightmediascanner" receive_interface="org.freedesktop.DBus.Properties"/>
+ </policy>
+
+ <policy at_console="true">
+ <allow send_destination="org.lightmediascanner"/>
+ </policy>
+</busconfig>
diff --git a/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch b/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
new file mode 100644
index 00000000..9528bec7
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/id3-plugin-support-out-of-tree-build.patch
@@ -0,0 +1,11 @@
+--- a/src/plugins/Makefile.am 2015-10-25 16:12:29.331415823 +0000
++++ b/src/plugins/Makefile.am 2015-10-25 16:14:37.593415808 +0000
+@@ -93,7 +93,7 @@
+ id3_id3_la_SOURCES = id3/id3.c id3/id3v1_genres.c
+ id3_id3_la_LIBADD = $(PLUGINS_LIBADD)
+
+-id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
++$(srcdir)/id3/id3v1_genres.c: $(srcdir)/id3/id3v1_genres.def $(srcdir)/id3/id3v1_genres_gen.awk
+ $(AWK) -f $(srcdir)/id3/id3v1_genres_gen.awk $(srcdir)/id3/id3v1_genres.def > $@
+
+ EXTRA_DIST += id3/id3v1_genres.def id3/id3v1_genres_gen.awk
diff --git a/recipes-multimedia/lightmediascanner/files/lightmediascanner.service b/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
new file mode 100644
index 00000000..63b48ebf
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/lightmediascanner.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Lightmediascanner (LMS)
+After=run-agl-postinsts.service systemd-remount-fs.service systemd-tmpfiles-setup.service tmp.mount
+ConditionPathIsReadWrite=/var/volatile/tmp
+
+[Service]
+Type=dbus
+Restart=on-failure
+RestartSec=0
+BusName=org.lightmediascanner
+SmackProcessLabel=User::App::agl-service-mediascanner
+ExecStart=/usr/bin/lightmediascannerd --startup-scan --db-path=/var/volatile/tmp/lightmediascannerd.db --directory=/media
+
+[Install]
+WantedBy=multi-user.target
+Alias=dbus-org.lightmediascanner.service
diff --git a/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch b/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
new file mode 100644
index 00000000..6a0b8ff9
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/files/plugin-ogg-fix-chucksize-issue.patch
@@ -0,0 +1,53 @@
+From 3e66b97221440b17a184feb48692dce7e0561cac Mon Sep 17 00:00:00 2001
+From: Matt Ranostay <matt.ranostay@konsulko.com>
+Date: Wed, 8 Mar 2017 16:30:01 -0800
+Subject: [PATCH] plugin: ogg: fix chucksize issue
+
+There are some OGG files that have metadata chucks that go over the
+hardcoded 10 * 4096 size due to album art. This patchset just parses
+each chuck and continues till it runs out of valid chunks.
+
+Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
+---
+ src/plugins/ogg/ogg.c | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/src/plugins/ogg/ogg.c b/src/plugins/ogg/ogg.c
+index 1c0818e..c94dc38 100644
+--- a/src/plugins/ogg/ogg.c
++++ b/src/plugins/ogg/ogg.c
+@@ -47,8 +47,6 @@
+ int CHUNKSIZE = 4096;
+ #endif
+
+-#define MAX_CHUNKS_PER_PAGE 10
+-
+ struct stream {
+ struct lms_stream base;
+ int serial;
+@@ -122,10 +120,8 @@ _set_lms_info(struct lms_string_size *info, const char *tag)
+
+ static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
+ {
+- int i;
+-
+- for (i = 0; i < MAX_CHUNKS_PER_PAGE && ogg_sync_pageout(osync, page) != 1;
+- i++) {
++ while(ogg_sync_pageout(osync, page) != 1)
++ {
+ lms_ogg_buffer_t buffer = lms_get_ogg_sync_buffer(osync, CHUNKSIZE);
+ int bytes = fread(buffer, 1, CHUNKSIZE, fp);
+
+@@ -136,9 +132,6 @@ static bool _ogg_read_page(FILE *fp, ogg_sync_state *osync, ogg_page *page)
+ ogg_sync_wrote(osync, bytes);
+ }
+
+- if (i > MAX_CHUNKS_PER_PAGE)
+- return false;
+-
+ return true;
+ }
+
+--
+2.7.4
+
diff --git a/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend b/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
new file mode 100644
index 00000000..b47b2796
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/lightmediascanner_%.bbappend
@@ -0,0 +1,42 @@
+# Disable everything but the roygalty-free formats
+PACKAGECONFIG = "ogg flac wave m3u pls jpeg png"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://lightmediascanner.service \
+ file://plugin-ogg-fix-chucksize-issue.patch \
+ file://0002-switch-from-G_BUS_TYPE_SESSION-to-G_BUS_TYPE_SYSTEM.patch \
+ file://dbus-lightmediascanner.conf \
+ "
+
+CFLAGS_append = " -D_FILE_OFFSET_BITS=64"
+
+inherit systemd
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE_${PN} = "lightmediascanner.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+do_install_append() {
+ # Install LMS systemd service
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 644 -p -D ${WORKDIR}/lightmediascanner.service ${D}${systemd_system_unitdir}/lightmediascanner.service
+ fi
+
+ install -d ${D}/etc/dbus-1/system.d
+ install -m 0644 ${WORKDIR}/dbus-lightmediascanner.conf ${D}/etc/dbus-1/system.d/org.lightmediascanner.conf
+}
+
+FILES_${PN} += " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${systemd_system_unitdir}/lightmediascanner.service', '', d)} \
+ "
+
+EXTRA_OECONF = "--enable-static --with-dbus-services=${datadir}/dbus-1/system-services"
+PACKAGECONFIG[mp4] = "--enable-mp4,--disable-mp4,libmp4v2"
+
+# add support MP3 because of the format of music files for AGL CES/ALS2017 Demo
+PACKAGECONFIG_append = " id3 mp4"
+
+# add required character sets for id3 tag scanning
+RDEPENDS_${PN}_append = " glibc-gconv-utf-16 glibc-gconv-iso8859-1"
diff --git a/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb b/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
new file mode 100644
index 00000000..f2158760
--- /dev/null
+++ b/recipes-multimedia/lightmediascanner/lightmediascanner_0.5.1.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Lightweight media scanner"
+DESCRIPTION = "Lightweight media scanner meant to be used in not-so-powerful devices, like embedded systems or old machines."
+SECTION = "libs/multimedia"
+
+LICENSE = "LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+ file://src/lib/lightmediascanner.c;endline=21;md5=6d8889bccb4c6c27e8b786342a3eb267"
+
+DEPENDS = "file gawk glib-2.0 sqlite3"
+
+PV = "0.5.1+git${SRCPV}"
+SRCREV = "adfddb3486276a5ed2f5008c9e43a811e1271cc9"
+SRC_URI = "git://github.com/profusion/lightmediascanner.git \
+ file://id3-plugin-support-out-of-tree-build.patch \
+ file://0001-Define-comparison_fn_t-for-non-glibc-systems.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-static --disable-mp4"
+
+PACKAGECONFIG ??= "ogg flac wave id3 m3u pls asf rm jpeg png"
+PACKAGECONFIG[generic] = "--enable-generic,--disable-generic,libav"
+PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg libvorbis libtheora"
+PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
+PACKAGECONFIG[wave] = "--enable-wave,--disable-wave"
+PACKAGECONFIG[id3] = "--enable-id3,--disable-id3"
+PACKAGECONFIG[m3u] = "--enable-m3u,--disable-m3u"
+PACKAGECONFIG[pls] = "--enable-pls,--disable-pls"
+PACKAGECONFIG[asf] = "--enable-asf,--disable-asf"
+PACKAGECONFIG[rm] = "--enable-rm,--disable-rm"
+PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg"
+PACKAGECONFIG[png] = "--enable-png,--disable-png"
+
+do_install_append() {
+ # Install "test" binary for corresponding package
+ install -d ${D}/${bindir}
+ install -m 755 ${B}/src/bin/.libs/test ${D}/${bindir}/test-lms
+ # Remove .la files for loadable modules
+ rm -f ${D}/${libdir}/${PN}/plugins/*.la
+}
+
+FILES_${PN} += "${datadir}/dbus-1"
+FILES_${PN}-dbg += "${libdir}/${PN}/plugins/.debug"
+
+PACKAGES_prepend = "${PN}-test "
+FILES_${PN}-test_prepend = "${bindir}/test-lms "
+
+PACKAGES += "${PN}-meta"
+ALLOW_EMPTY_${PN}-meta = "1"
+
+PACKAGES_DYNAMIC = "${PN}-plugin-*"
+
+python populate_packages_prepend () {
+ lms_libdir = d.expand('${libdir}/${PN}')
+ pkgs = []
+
+ pkgs += do_split_packages(d, oe.path.join(lms_libdir, "plugins"), '^(.*)\.so$', d.expand('${PN}-plugin-%s'), 'LightMediaScanner plugin for %s', prepend=True, extra_depends=d.expand('${PN}'))
+ metapkg = d.getVar('PN') + '-meta'
+ d.setVar('RDEPENDS_' + metapkg, ' '.join(pkgs))
+}