alarm/vlc-rpi to 3.0.21-1

Had to disable taglib support due to build breakage
This commit is contained in:
graysky 2024-06-19 16:51:28 -04:00
parent da70893aec
commit dafe48d556
3 changed files with 2900 additions and 1233 deletions

View file

@ -1,108 +0,0 @@
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
}
}

View file

@ -6,34 +6,130 @@
pkgname=vlc-rpi
_pkgname=vlc
_vlcver=3.0.20
_vlcver=3.0.21
# optional fixup version including hyphen
_vlcfixupver=
pkgver=${_vlcver}${_vlcfixupver//-/.r}
pkgrel=5
pkgrel=1
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3 and above'
url='https://www.videolan.org/vlc/'
arch=(aarch64)
license=('LGPL2.1' 'GPL2')
license=(
'GPL-2.0-or-later'
'LGPL-2.1-or-later'
)
# NOTE: switch to ffmpeg-rpi which is basically debian's stuff patched with hw accel
depends=('a52dec' 'libdvbpsi' 'libxpm' 'libdca' 'libproxy' 'lua52' 'libidn'
'libmatroska' 'taglib' 'libmpcdec' 'ffmpeg-rpi' 'faad2' 'libmad'
'libmpeg2' 'xcb-util-keysyms' 'libtar' 'libxinerama' 'libsecret'
'libupnp' 'libixml.so' 'libupnp.so' 'libarchive' 'qt5-base'
'qt5-x11extras' 'qt5-svg' 'freetype2' 'fribidi' 'harfbuzz'
'fontconfig' 'libxml2' 'gnutls' 'libplacebo' 'aribb24'
'linux-rpi' 'libomxil-bellagio')
makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray'
'flac' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3'
'librsvg' 'libgme' 'xosd' 'twolame' 'aalib' 'avahi' 'systemd-libs'
'libmtp' 'libmicrodns' 'libdvdcss' 'smbclient'
'vcdimager' 'libssh2' 'mesa' 'protobuf' 'libnfs' 'mpg123'
'libdvdread' 'libdvdnav' 'libogg' 'libshout' 'libmodplug' 'libvpx'
'libvorbis' 'speex' 'opus' 'libtheora' 'libpng' 'libjpeg-turbo'
'libx265.so' 'libx264.so' 'zvbi' 'libass' 'libkate' 'libtiger'
'sdl_image' 'libpulse' 'alsa-lib' 'jack' 'libsamplerate' 'libsoxr'
'lirc' 'libgoom2' 'projectm' 'aom' 'srt' 'dav1d' 'libomxil-bellagio'
'aribb25' 'pcsclite' 'wayland-protocols')
depends=(
'a52dec'
'abseil-cpp'
'aribb24'
'bash'
'cairo'
'dbus'
'faad2'
'ffmpeg-rpi'
'fontconfig'
'freetype2'
'fribidi'
'gcc-libs'
'gdk-pixbuf2'
'glib2'
'glibc'
'gnutls'
'harfbuzz'
'hicolor-icon-theme'
'libarchive'
'libdca'
'libdvbpsi'
'libglvnd'
'libidn'
'libmad'
'libomxil-bellagio'
'libmatroska'
'libmpcdec'
'libmpeg2'
'libproxy'
'libsecret'
'libtar'
'libupnp' 'libixml.so' 'libupnp.so'
#'libva'
#'libx11'
#'libxcb'
'libxinerama'
'libxml2'
'libxpm'
'lua'
'qt5-base'
'qt5-svg'
'qt5-x11extras'
#'taglib'
#'wayland'
'xcb-util-keysyms'
'zlib'
)
makedepends=(
'aalib'
'alsa-lib'
'aom'
'aribb25'
'avahi'
'dav1d'
'flac'
'fluidsynth'
'gst-plugins-base-libs'
'gtk3'
'jack'
'libass'
'libavc1394'
'libbluray'
'libcaca'
'libdc1394'
'libdvdcss'
'libdvdnav'
'libdvdread'
'libgme'
'libgoom2'
'libjpeg-turbo'
'libkate'
'libmicrodns'
'libmodplug'
'libmtp'
'libnotify'
'libnfs'
'libogg'
'libomxil-bellagio'
'libpng'
'libpulse'
'librsvg'
'libsamplerate'
'libshout'
'libsoxr'
'libssh2'
'libtheora'
'libtiger'
'libvorbis'
'libvpx'
'lirc'
'live-media'
'mesa'
'mpg123'
'opus'
'pcsclite'
'projectm'
'protobuf'
'sdl_image'
'smbclient'
'speex'
'srt'
'systemd-libs'
'twolame'
'vcdimager'
'wayland-protocols'
'x264' 'libx264.so'
'x265' 'libx265.so'
'xosd'
'zvbi'
)
# 'chromaprint: Chromaprint audio fingerprinter'
optdepends=('avahi: service discovery using bonjour protocol'
@ -62,7 +158,7 @@ optdepends=('avahi: service discovery using bonjour protocol'
'mpg123: mpg123 codec'
'protobuf: chromecast streaming'
'libmicrodns: mDNS services discovery (chromecast etc)'
'lua52-socket: http interface'
'lua-socket: http interface'
'libdvdread: DVD input module'
'libdvdnav: DVD with navigation input module'
'libogg: Ogg and OggSpots codec'
@ -109,19 +205,17 @@ source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcv
99-vlc.rules
vlc.config.txt
0001-vlc-live-media-2021.patch
0002-libplacebo-5.patch
# credit to jc and RPi-Distro maintainers for this work, see:
# https://github.com/jc-kynesim/vlc.git
# https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches
0003-test-3.0.20-rpi_1.patch
0002-test-3.0.21-rpi_2.patch
update-vlc-plugin-cache.hook)
sha256sums=('adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5'
sha256sums=('24dbbe1d7dfaeea0994d5def0bbde200177347136dbfe573f5b6a4cee25afbb0'
'SKIP'
'61125ab0da600d813f1aebd8445fcf03e176389cfb8aa28591f8225a13043089'
'f7d129441b5f1f1ce03f7056ebe2707d8c431a69a11afe153a9990dd61ce75ec'
'753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291'
'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989'
'833e29aa4e1c17ef95dfaafc64bf37fbf8fa54f38211605f3394275919b6b2f2'
'616833e99372317d9a1e1a73254ee48f71a803eb13e8dd04db158e7c3db0eb5c'
'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13')
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key
@ -145,13 +239,12 @@ prepare() {
build() {
cd ${_pkgname}-${_vlcver}
export CFLAGS+=" -I/usr/include/samba-4.0 -ffat-lto-objects -I/usr/include/ffmpeg-rpi"
export CFLAGS+=" -I/usr/include/samba-4.0 -ffat-lto-objects -I/usr/include/ffmpeg-rpi -Wno-incompatible-pointer-types"
export CPPFLAGS+=" -I/usr/include/samba-4.0"
# building with lua ends in errors whereas lua5.2 builds and runs
export CXXFLAGS+=" -std=c++17 -I/usr/include/ffmpeg-rpi"
export PKG_CONFIG_PATH="/usr/lib/ffmpeg-rpi/pkgconfig"
export LUAC=/usr/bin/luac5.2
export LUA_LIBS="$(pkg-config --libs lua5.2)"
export LUAC=/usr/bin/luac
export LUA_LIBS="$(pkg-config --libs lua)"
export RCC=/usr/bin/rcc-qt5
export PKG_CONFIG_PATH="/usr/lib/ffmpeg-rpi/pkgconfig/:$PKG_CONFIG_PATH"
@ -198,6 +291,7 @@ build() {
--enable-a52 \
--enable-dca \
--enable-flac \
--enable-fluidsynth \
--enable-libmpeg2 \
--enable-vorbis \
--enable-speex \
@ -244,14 +338,15 @@ build() {
--enable-libxml2 \
--disable-libgcrypt \
--enable-gnutls \
--enable-taglib \
--disable-taglib \
--enable-secret \
--enable-kwallet \
--disable-update-check \
--enable-notify \
--enable-libplacebo \
--disable-libplacebo \
--enable-vlc \
--enable-aribsub \
--enable-aribcam \
--enable-aom \
--enable-srt \
--enable-dav1d