diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/memdmp/vlc4/APKBUILD | 260 | ||||
-rw-r--r-- | src/memdmp/vlc4/big-endian.patch | 16 | ||||
-rw-r--r-- | src/memdmp/vlc4/check-headless.patch | 13 | ||||
-rw-r--r-- | src/memdmp/vlc4/disable-sub-autodetect-fuzzy-1-test.patch | 20 | ||||
-rw-r--r-- | src/memdmp/vlc4/fribidi_allow_deprecated.patch | 10 | ||||
-rw-r--r-- | src/memdmp/vlc4/libplacebo-5.patch | 108 | ||||
-rw-r--r-- | src/memdmp/vlc4/musl-ioctl.patch | 24 | ||||
-rw-r--r-- | src/memdmp/vlc4/omxil-rpi-codecs.patch | 15 | ||||
-rw-r--r-- | src/memdmp/vlc4/taglib-2.0.patch | 97 | ||||
-rw-r--r-- | src/memdmp/vlc4/vlc.confd | 15 | ||||
-rw-r--r-- | src/memdmp/vlc4/vlc.initd | 32 | ||||
-rw-r--r-- | src/memdmp/vlc4/vlc4-daemon.pre-install | 15 | ||||
-rw-r--r-- | src/memdmp/vlc4/vlc4-libs.pre-deinstall | 6 | ||||
-rw-r--r-- | src/memdmp/vlc4/vlc4-libs.trigger | 7 |
14 files changed, 638 insertions, 0 deletions
diff --git a/src/memdmp/vlc4/APKBUILD b/src/memdmp/vlc4/APKBUILD new file mode 100644 index 0000000..daafee2 --- /dev/null +++ b/src/memdmp/vlc4/APKBUILD @@ -0,0 +1,260 @@ +# Contributor: Ćukasz Jendrysik <scadu@yandex.com> +# Contributor: Leonardo Arena <rnalrd@alpinelinux.org> +# Contributor: Natanael Copa <ncopa@alpinelinux.org> +# Maintainer: memdmp <memdmp@estrogen.zone> + +_reponame="vlc" +_repoowner="videolan" +_repourl="https://code.videolan.org/${_repoowner}/${_reponame}" # GITHUB_CODELOAD_URL due to github not having IPv6. +_reporef="70de580e9b8231fd0bb1da614ccbd95dcce9884a" # Must be a TAG OR BRANCH! Anything else may break shit. +_reporefdate="20250616" # YYYYMMDD of the ref +_buildtarget="Release" # or `Debug` for testing + +# https://code.videolan.org/videolan/vlc/-/archive/70de580e9b8231fd0bb1da614ccbd95dcce9884a/vlc-70de580e9b8231fd0bb1da614ccbd95dcce9884a.tar.gz + +pkgname=vlc4 +pkgver=3.99.99 +pkgrel=8 +pkgdesc="Multi-platform MPEG, VCD/DVD, and DivX player" +triggers="vlc4-libs.trigger=/usr/lib/vlc/plugins" +pkgusers="vlc" +pkggroups="vlc" +url="https://www.videolan.org/vlc/" +arch="all" +license="GPL-2.0-or-later" +subpackages=" + $pkgname-dev + $pkgname-doc + $pkgname-qt + $pkgname-daemon::noarch + $pkgname-libs + " +makedepends=" + a52dec-dev + abseil-cpp-dev + alsa-lib-dev + autoconf + automake + avahi-dev + bison + dav1d-dev + dbus-dev + eudev-dev + faad2-dev + ffmpeg4-dev + flac-dev + flex + freetype-dev + gnutls-dev + gtk+3.0-dev + gst-plugins-base-dev + libarchive-dev + libass-dev + libavc1394-dev + libbluray-dev + libcddb-dev + libdc1394-dev + libdvbpsi-dev + libdvdnav-dev + libdvdread-dev + libgcrypt-dev + libice-dev + libmad-dev + libmatroska-dev + libmicrodns-dev + libmpeg2-dev + libnotify-dev + libogg-dev + libplacebo5-dev + libraw1394-dev + librsvg-dev + libsamplerate-dev + libsecret-dev + libshout-dev + libsm-dev + libsrt-dev + libtheora-dev + libtool + libupnp-dev + libva-dev + libvdpau-dev + libvorbis-dev + libvpx-dev + libx11-dev + libxext-dev + libxinerama-dev + libxml2-dev + libxpm-dev + libxv-dev + live-media-dev + lua5.2-dev + mesa-dev + ncurses-dev + opus-dev + protobuf-dev + pulseaudio-dev + qt6-qt5compat-dev + qt6-qtbase-dev + qt6-qtbase-x11 + qt6-qtbase-private-dev + qt6-qtdeclarative-dev + qt6-qtdeclarative-private-dev + qt6-qtsvg-dev + qt6-qttools-dev + qt6-qtwayland-dev + samba-dev + sdl2-dev + speex-dev + speexdsp-dev + sysfsutils-dev + taglib-dev + v4l-utils-dev + wayland-dev + wayland-protocols + x264-dev + x265-dev + xcb-util-keysyms-dev + xcb-util-renderutil-dev + xdg-utils + " +source="${_repourl}/-/archive/${_reporef}/${_reponame}-${_reporef}.tar.gz + vlc.initd + vlc.confd + " +builddir="${srcdir}/${_reponame}-${_reporef}" + +# secfixes: +# 3.0.18-r0: +# - CVE-2022-41325 +# 3.0.12-r0: +# - CVE-2020-26664 +# 3.0.11-r0: +# - CVE-2020-13428 +# 3.0.9.2-r0: +# - CVE-2019-19721 +# - CVE-2020-6071 +# - CVE-2020-6072 +# - CVE-2020-6073 +# - CVE-2020-6077 +# - CVE-2020-6078 +# - CVE-2020-6079 +# 3.0.7.1-r2: +# - CVE-2019-13602 + +build() { + NOCONFIGURE=1 ./bootstrap + + case "$CARCH" in + aarch64|arm*) + local arch_opts="--enable-omxil --enable-omxil-vout --enable-rpi-omxil" + ;; + esac + + CFLAGS="$CFLAGS -fcommon -O2 -flto=auto" \ + CXXFLAGS="$CXXFLAGS -flto=auto -O2" \ + LUA=lua5.2 \ + LUAC=luac5.2 \ + ./configure \ + --build=$CBUILD \ + --host=$CHOST \ + --prefix=/usr \ + --disable-nls \ + --disable-rpath \ + --disable-static \ + --enable-a52 \ + --enable-avcodec \ + --enable-avformat \ + --enable-bluray \ + --enable-dav1d \ + --enable-dbus \ + --enable-dc1394 \ + --enable-dvbpsi \ + --enable-dvdnav \ + --enable-dvdread \ + --enable-faad \ + --enable-flac \ + --enable-gnutls \ + --enable-libcddb \ + --enable-libplacebo \ + --enable-libva \ + --enable-live555 \ + --enable-merge-ffmpeg \ + --enable-ncurses \ + --enable-realrtsp \ + --enable-shout \ + --enable-skins2 \ + --enable-sout \ + --enable-speex \ + --enable-srt \ + --enable-taglib \ + --enable-theora \ + --enable-upnp \ + --enable-v4l2 \ + --enable-vdpau \ + --enable-vlm \ + --enable-vorbis \ + --enable-wma-fixed \ + --enable-x264 \ + --enable-xvideo \ + $arch_opts + + make +} + +package() { + make -j1 DESTDIR="$pkgdir" install + # delete cache as it's autocreated by trigger + rm -rf "$pkgdir"/usr/lib/vlc/plugins/plugins.dat + # delete unneeded mozilla and kde support files + rm -rf "$pkgdir"/usr/lib/mozilla + rm -rf "$pkgdir"/usr/share/kde4 + + install -D -m755 "$srcdir"/vlc.initd "$pkgdir"/etc/init.d/vlc + install -D -m664 "$srcdir"/vlc.confd "$pkgdir"/etc/conf.d/vlc + install -d -o vlc -g vlc "$pkgdir"/var/log/vlc +} + +check() { + make check || { cat ./*/test-suite.log; false; } +} + +qt() { + pkgdesc="Qt frontend for VLC" + depends="vlc=$pkgver-r$pkgrel" + cd "$pkgdir" + # scan for elf files that directly or indirectly depends on + # libQt* libraries + for i in $(find . -type f ); do + if ldd $i 2>/dev/null | grep -q "libQt"; then + amove "$i" + fi + done + amove usr/share/icons \ + usr/share/applications \ + usr/share/metainfo \ + usr/bin/qvlc +} + +daemon() { + pkgdesc="Support for running VLC as a daemon" + install="vlc4-daemon.pre-install" + depends="vlc4=$pkgver-r$pkgrel" + + amove etc/init.d + amove etc/conf.d + amove var/log/vlc +} + +libs() { + depends="" + install="vlc4-libs.pre-deinstall" + default_libs + + amove usr/lib/vlc/vlc-cache-gen +} + +sha512sums=" +acf70b95bd217be4ca72a6098a35ec7b1c66119a73aeea6219c1f4656de68a88c53486dbff746de3d26272cc7d5258b46e6d99bdb1299089f4a0c83efd17134c vlc-70de580e9b8231fd0bb1da614ccbd95dcce9884a.tar.gz +55e245190b443dde9c7215ea5210612fcca164900a9a4b025ccf0d1e3fc5206d00b52355b256974421e37c609875627f1db19f0f5a084511aec0daf677ecc9d6 vlc.initd +d89190dca1b8b2c3faca5863dc6c7e6eb24e05178e6f75ed752fd3c6a73cb8a42d2625b6e56453296b7096ea868be642ecd42745dac20e7f13fc67dd3c3c7c49 vlc.confd +" diff --git a/src/memdmp/vlc4/big-endian.patch b/src/memdmp/vlc4/big-endian.patch new file mode 100644 index 0000000..acb6676 --- /dev/null +++ b/src/memdmp/vlc4/big-endian.patch @@ -0,0 +1,16 @@ +Patch-Source: https://git.adelielinux.org/adelie/packages/-/blob/c543943fea431ad69f2447a4fafc1d17957aff46/user/vlc/endian-fix.patch + +--- vlc-3.0.3/modules/video_chroma/copy.c.old 2018-04-18 16:19:34.000000000 +0000 ++++ vlc-3.0.3/modules/video_chroma/copy.c 2018-07-22 02:13:19.870000000 +0000 +@@ -1119,7 +1119,11 @@ + vlc_assert_unreachable(); + } + ++#ifndef WORDS_BIGENDIAN + uint32_t color_16_UV = (colors_16_P[2] << 16) | colors_16_P[1]; ++#else ++ uint32_t color_16_UV = (colors_16_P[1] << 16) | colors_16_P[2]; ++#endif + + PICCHECK(uint16_t, uint32_t, colors_16_P, color_16_UV, 2); + } diff --git a/src/memdmp/vlc4/check-headless.patch b/src/memdmp/vlc4/check-headless.patch new file mode 100644 index 0000000..25016f4 --- /dev/null +++ b/src/memdmp/vlc4/check-headless.patch @@ -0,0 +1,13 @@ +diff --git a/test/run_vlc.sh b/test/run_vlc.sh +index af35987..9a0175b 100755 +--- a/test/run_vlc.sh ++++ b/test/run_vlc.sh +@@ -2,7 +2,7 @@ + + set -e + +-VLC="./vlc --ignore-config --rc-fake-tty" ++VLC="./vlc -I dummy --ignore-config --rc-fake-tty" + + $VLC -H + $VLC -vv vlc://quit diff --git a/src/memdmp/vlc4/disable-sub-autodetect-fuzzy-1-test.patch b/src/memdmp/vlc4/disable-sub-autodetect-fuzzy-1-test.patch new file mode 100644 index 0000000..b3dd8a1 --- /dev/null +++ b/src/memdmp/vlc4/disable-sub-autodetect-fuzzy-1-test.patch @@ -0,0 +1,20 @@ +This test fails on x86 and s390x so disable it for now +reported upstream: https://trac.videolan.org/vlc/ticket/19321 + +diff --git a/test/libvlc/slaves.c b/test/libvlc/slaves.c +index 7b2c24fa43..7c47b3147b 100644 +--- a/test/libvlc/slaves.c ++++ b/test/libvlc/slaves.c +@@ -194,10 +194,12 @@ main (void) + assert(p_expected_slaves[i].psz_uri != NULL); + } + ++#if 0 + printf("== Testing --sub-autodetect-fuzzy 1 (everything) ==\n"); + test_media_has_slaves_from_parent(p_vlc, SLAVES_DIR "/test.mp4", + p_expected_slaves, + EXPECTED_SLAVES_COUNT); ++#endif + libvlc_release(p_vlc); + + printf("== Testing --sub-autodetect-fuzzy 2 (full, left, and right match) ==\n"); diff --git a/src/memdmp/vlc4/fribidi_allow_deprecated.patch b/src/memdmp/vlc4/fribidi_allow_deprecated.patch new file mode 100644 index 0000000..ca15ea2 --- /dev/null +++ b/src/memdmp/vlc4/fribidi_allow_deprecated.patch @@ -0,0 +1,10 @@ +--- a/modules/text_renderer/freetype/text_layout.c ++++ b/modules/text_renderer/freetype/text_layout.c +@@ -52,7 +52,6 @@ + + /* RTL */ + #if defined(HAVE_FRIBIDI) +-# define FRIBIDI_NO_DEPRECATED 1 + # include <fribidi.h> + #endif + diff --git a/src/memdmp/vlc4/libplacebo-5.patch b/src/memdmp/vlc4/libplacebo-5.patch new file mode 100644 index 0000000..006e900 --- /dev/null +++ b/src/memdmp/vlc4/libplacebo-5.patch @@ -0,0 +1,108 @@ +patch vaguely ported from: https://code.videolan.org/videolan/vlc/-/merge_requests/2233 + +diff --git a/modules/video_output/opengl/converter.h b/modules/video_output/opengl/converter.h +index 7000e1f..49fa667 100644 +--- a/modules/video_output/opengl/converter.h ++++ b/modules/video_output/opengl/converter.h +@@ -26,6 +26,9 @@ + #include <vlc_picture_pool.h> + #include <vlc_opengl.h> + ++#include <libplacebo/log.h> ++#include <libplacebo/shaders.h> ++ + /* if USE_OPENGL_ES2 is defined, OpenGL ES version 2 will be used, otherwise + * normal OpenGL will be used */ + #ifdef __APPLE__ +@@ -253,10 +256,6 @@ static inline bool HasExtension(const char *apis, const char *api) + return false; + } + +-struct pl_context; +-struct pl_shader; +-struct pl_shader_res; +- + /* + * Structure that is filled by "glhw converter" module probe function + * The implementation should initialize every members of the struct that are +@@ -273,7 +272,7 @@ struct opengl_tex_converter_t + vlc_gl_t *gl; + + /* libplacebo context, created by the caller (optional) */ +- struct pl_context *pl_ctx; ++ pl_log pl_log; + + /* Function pointers to OpenGL functions, set by the caller */ + const opengl_vtable_t *vt; +@@ -337,7 +336,7 @@ struct opengl_tex_converter_t + bool yuv_color; + GLfloat yuv_coefficients[16]; + +- struct pl_shader *pl_sh; ++ pl_shader pl_sh; + const struct pl_shader_res *pl_sh_res; + + /* Private context */ +diff --git a/modules/video_output/opengl/fragment_shaders.c b/modules/video_output/opengl/fragment_shaders.c +index ecf7226..29f4148 100644 +--- a/modules/video_output/opengl/fragment_shaders.c ++++ b/modules/video_output/opengl/fragment_shaders.c +@@ -611,7 +611,7 @@ opengl_fragment_shader_init_impl(opengl_tex_converter_t *tc, GLenum tex_target, + + #ifdef HAVE_LIBPLACEBO + if (tc->pl_sh) { +- struct pl_shader *sh = tc->pl_sh; ++ pl_shader sh = tc->pl_sh; + struct pl_color_map_params color_params = pl_color_map_default_params; + color_params.intent = var_InheritInteger(tc->gl, "rendering-intent"); + color_params.tone_mapping_algo = var_InheritInteger(tc->gl, "tone-mapping"); +@@ -634,7 +634,7 @@ opengl_fragment_shader_init_impl(opengl_tex_converter_t *tc, GLenum tex_target, + pl_color_space_from_video_format(&tc->fmt), + dst_space, NULL, false); + +- struct pl_shader_obj *dither_state = NULL; ++ pl_shader_obj dither_state = NULL; + int method = var_InheritInteger(tc->gl, "dither-algo"); + if (method >= 0) { + +diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c +index 13d65e0..1ee99af 100644 +--- a/modules/video_output/opengl/vout_helper.c ++++ b/modules/video_output/opengl/vout_helper.c +@@ -570,8 +570,7 @@ opengl_deinit_program(vout_display_opengl_t *vgl, struct prgm *prgm) + + #ifdef HAVE_LIBPLACEBO + FREENULL(tc->uloc.pl_vars); +- if (tc->pl_ctx) +- pl_context_destroy(&tc->pl_ctx); ++ pl_log_destroy(&tc->pl_log); + #endif + + vlc_object_release(tc); +@@ -622,21 +621,21 @@ opengl_init_program(vout_display_opengl_t *vgl, struct prgm *prgm, + // create the main libplacebo context + if (!subpics) + { +- tc->pl_ctx = pl_context_create(PL_API_VER, &(struct pl_context_params) { ++ tc->pl_log = pl_log_create(PL_API_VER, &(struct pl_log_params) { + .log_cb = log_cb, + .log_priv = tc, + .log_level = PL_LOG_INFO, + }); +- if (tc->pl_ctx) { ++ if (tc->pl_log) { + # if PL_API_VER >= 20 +- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, &(struct pl_shader_params) { ++ tc->pl_sh = pl_shader_alloc(tc->pl_log, &(struct pl_shader_params) { + .glsl.version = tc->glsl_version, + .glsl.gles = tc->is_gles, + }); + # elif PL_API_VER >= 6 +- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, NULL, 0); ++ tc->pl_sh = pl_shader_alloc(tc->pl_log, NULL, 0); + # else +- tc->pl_sh = pl_shader_alloc(tc->pl_ctx, NULL, 0, 0); ++ tc->pl_sh = pl_shader_alloc(tc->pl_log, NULL, 0, 0); + # endif + } + } diff --git a/src/memdmp/vlc4/musl-ioctl.patch b/src/memdmp/vlc4/musl-ioctl.patch new file mode 100644 index 0000000..5dee3e8 --- /dev/null +++ b/src/memdmp/vlc4/musl-ioctl.patch @@ -0,0 +1,24 @@ +musl libc has a different interface + +--- a/modules/access/v4l2/lib.c ++++ b/modules/access/v4l2/lib.c +@@ -49,7 +49,7 @@ static int (*v4l2_fd_open_cb)(int, int) = fd_open; + //int (*v4l2_open) (const char *, int, ...) = open; + //int (*v4l2_dup) (const char *, int, ...) = dup; + int (*v4l2_close) (int) = close; +-int (*v4l2_ioctl) (int, unsigned long int, ...) = ioctl; ++int (*v4l2_ioctl) (int, int, ...) = ioctl; + ssize_t (*v4l2_read) (int, void *, size_t) = read; + //ssize_t (*v4l2_write) (int, const void *, size_t) = write; + void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t) = mmap; +--- a/modules/access/v4l2/v4l2.h ++++ b/modules/access/v4l2/v4l2.h +@@ -28,7 +28,7 @@ + /* libv4l2 functions */ + extern int v4l2_fd_open(int, int); + extern int (*v4l2_close) (int); +-extern int (*v4l2_ioctl) (int, unsigned long int, ...); ++extern int (*v4l2_ioctl) (int, int, ...); + extern ssize_t (*v4l2_read) (int, void *, size_t); + extern void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t); + extern int (*v4l2_munmap) (void *, size_t); diff --git a/src/memdmp/vlc4/omxil-rpi-codecs.patch b/src/memdmp/vlc4/omxil-rpi-codecs.patch new file mode 100644 index 0000000..9b7accf --- /dev/null +++ b/src/memdmp/vlc4/omxil-rpi-codecs.patch @@ -0,0 +1,15 @@ +--- vlc-2.2.0/modules/codec/omxil/omxil_core.c.orig 2015-02-28 08:37:54.044936036 -0200 ++++ vlc-2.2.0/modules/codec/omxil/omxil_core.c 2015-02-28 08:38:38.738271654 -0200 +@@ -204,6 +204,12 @@ + #ifdef RPI_OMX + { "video_decoder.avc", "OMX.broadcom.video_decode" }, + { "video_decoder.mpeg2", "OMX.broadcom.video_decode" }, ++ { "video_decoder.mpeg4", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vp6", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vp8", "OMX.broadcom.video_decode" }, ++ { "video_decoder.theora", "OMX.broadcom.video_decode" }, ++ { "video_decoder.mjpg", "OMX.broadcom.video_decode" }, ++ { "video_decoder.vc1", "OMX.broadcom.video_decode" }, + { "iv_renderer", "OMX.broadcom.video_render" }, + #endif + { 0, 0 } diff --git a/src/memdmp/vlc4/taglib-2.0.patch b/src/memdmp/vlc4/taglib-2.0.patch new file mode 100644 index 0000000..930e55f --- /dev/null +++ b/src/memdmp/vlc4/taglib-2.0.patch @@ -0,0 +1,97 @@ +Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/vlc/-/raw/40b8a8a1fc24f594a0b828fbde521c644964efaf/taglib-2.patch +diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp +index 84b401c..a3bdac7 100644 +--- a/modules/meta_engine/taglib.cpp ++++ b/modules/meta_engine/taglib.cpp +@@ -185,7 +185,7 @@ public: + ByteVector res(length, 0); + ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length); + if (i_read < 0) +- return ByteVector::null; ++ return ByteVector(); + else if ((size_t)i_read != length) + res.resize(i_read); + return res; +@@ -216,7 +216,7 @@ public: + + void seek(long offset, Position p) + { +- uint64_t pos = 0; ++ offset_t pos = 0; + switch (p) + { + case Current: +@@ -237,12 +237,12 @@ public: + return; + } + +- long tell() const ++ offset_t tell() const + { + return m_previousPos; + } + +- long length() ++ offset_t length() + { + uint64_t i_size; + if (vlc_stream_GetSize( m_stream, &i_size ) != VLC_SUCCESS) +@@ -256,7 +256,7 @@ public: + + private: + stream_t* m_stream; +- int64_t m_previousPos; ++ offset_t m_previousPos; + }; + #endif /* TAGLIB_VERSION_1_11 */ + +@@ -465,7 +465,7 @@ static void ReadMetaFromASF( ASF::Tag* tag, demux_meta_t* p_demux_meta, vlc_meta + static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest) + { + #define SET( accessor, meta ) \ +- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \ ++ if( !tag->accessor().isEmpty() ) \ + vlc_meta_Set##meta( dest, tag->accessor().toCString(true) ) + #define SETINT( accessor, meta ) \ + if( tag->accessor() ) \ +@@ -806,15 +806,15 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta + { + MP4::Item list; + #define SET( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \ + } + #define SET_EXTRA( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \ + } + +@@ -824,9 +824,9 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta + #undef SET + #undef SET_EXTRA + +- if( tag->itemListMap().contains("covr") ) ++ if( tag->itemMap().contains("covr") ) + { +- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList(); ++ MP4::CoverArtList list = tag->itemMap()["covr"].toCoverArtList(); + const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg"; + + msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes", +@@ -1337,7 +1337,7 @@ static int WriteMeta( vlc_object_t *p_this ) + if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) ) + WriteMetaToId3v2( riff_aiff->tag(), p_item ); + else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) ) +- WriteMetaToId3v2( riff_wav->tag(), p_item ); ++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item ); + } + else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) ) + { diff --git a/src/memdmp/vlc4/vlc.confd b/src/memdmp/vlc4/vlc.confd new file mode 100644 index 0000000..9a58842 --- /dev/null +++ b/src/memdmp/vlc4/vlc.confd @@ -0,0 +1,15 @@ +# Sample vlc params suitable for running as a daemon + +## --file-logging enable file logging +## --logfile logfile name/path +## -vvv verbose logging +## -I dummy disable X11 interface +## --sout PARAMS encoding parameters + + +## Do NOT quote 'PARAMS' otherwise shell expansions will broke vlc +## +## The --daemon option will automatically be added so no need to add it +## here. + +VLC_OPTS="--quiet -I dummy alsa://hw:0,0 --file-logging --logfile /var/log/vlc/vlc.log --sout #transcode{acodec=mp3,ab=48,channels=1,samplerate=22050}:std{access=http,mux=ogg,dst=:8080}" diff --git a/src/memdmp/vlc4/vlc.initd b/src/memdmp/vlc4/vlc.initd new file mode 100644 index 0000000..541a071 --- /dev/null +++ b/src/memdmp/vlc4/vlc.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run + +description="VideoLAN daemon" +pidfile="/var/run/vlc/${RC_SVCNAME}.pid" +command="/usr/bin/vlc" + +depend() { + need net + after firewall +} + +start_pre() { + checkpath --directory --owner vlc:vlc --mode 775 ${pidfile%/*} +} + +start() { + ebegin "Starting ${RC_SVCNAME}" + start-stop-daemon --start \ + --user vlc \ + --pidfile ${pidfile} \ + --exec ${command} \ + -- \ + --daemon --pidfile ${pidfile} ${VLC_OPTS} + eend $? +} + +stop() { + ebegin "Stopping ${RC_SVCNAME}" + start-stop-daemon --stop \ + --pidfile ${pidfile} + eend $? +} diff --git a/src/memdmp/vlc4/vlc4-daemon.pre-install b/src/memdmp/vlc4/vlc4-daemon.pre-install new file mode 100644 index 0000000..aed6c18 --- /dev/null +++ b/src/memdmp/vlc4/vlc4-daemon.pre-install @@ -0,0 +1,15 @@ +#!/bin/sh + +groups="vlc audio video" + +for group in $groups; do + addgroup -S $group 2>/dev/null +done +adduser -S -D -h /home/vlc -s /bin/sh -G vlc -g vlc vlc 2>/dev/null + +# make sure vlc are in all groups +for group in $groups; do + addgroup vlc $group 2>/dev/null +done + +exit 0 diff --git a/src/memdmp/vlc4/vlc4-libs.pre-deinstall b/src/memdmp/vlc4/vlc4-libs.pre-deinstall new file mode 100644 index 0000000..2b29179 --- /dev/null +++ b/src/memdmp/vlc4/vlc4-libs.pre-deinstall @@ -0,0 +1,6 @@ +#!/bin/sh + +rm -r -f usr/lib/vlc/plugins/plugins.dat 2>/dev/null +rmdir -p usr/lib/vlc/plugins 2>/dev/null + +exit 0 diff --git a/src/memdmp/vlc4/vlc4-libs.trigger b/src/memdmp/vlc4/vlc4-libs.trigger new file mode 100644 index 0000000..b12b509 --- /dev/null +++ b/src/memdmp/vlc4/vlc4-libs.trigger @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -f /usr/lib/vlc/vlc-cache-gen ]; then + exec /usr/lib/vlc/vlc-cache-gen "$@" >/dev/null 2>&1 +fi +exit 0 + |