-
-
Save Luoyayu/ee14c5a2a5aeecf45adfea2c7bbf0d15 to your computer and use it in GitHub Desktop.
给VLC打补丁, 使flac网络文件/流的Content-Type始终为"audio/flac", 以"修复"网易云音乐获取的flac网络文件Content-Type为"audio/mpeg"而导致VLC不能正确识别文件而播放失败的问题
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit 41caaa08cde60c4fec4bf2e5f9610e2a1b9e6a23 | |
Author: Vinson Lee <[email protected]> | |
Date: Thu Feb 5 14:48:53 2015 -0800 | |
lua: Define LUA_COMPAT_APIINTCASTS for Lua >= 5.3.0 compatibility. | |
In Lua 5.3.0, luaL_checkint was deprecated. | |
This patch fixes this build error with Lua 5.3.0. | |
lua/demux.c: In function ‘vlclua_demux_peek’: | |
lua/demux.c:55:5: error: implicit declaration of function ‘luaL_checkint’ [-Werror=implicit-function-declaration] | |
int n = luaL_checkint( L, 1 ); | |
^ | |
Signed-off-by: Vinson Lee <[email protected]> | |
Signed-off-by: Jean-Baptiste Kempf <[email protected]> | |
diff --git a/modules/lua/vlc.h b/modules/lua/vlc.h | |
index efd94f1..85c7fc1 100644 | |
--- a/modules/lua/vlc.h | |
+++ b/modules/lua/vlc.h | |
@@ -38,6 +38,7 @@ | |
#include <vlc_stream.h> | |
#include <vlc_demux.h> | |
+#define LUA_COMPAT_APIINTCASTS | |
#define LUA_COMPAT_MODULE | |
#include <lua.h> /* Low level lua C API */ | |
#include <lauxlib.h> /* Higher level C API */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/modules/access/http/resource.c b/modules/access/http/resource.c | |
index 9a28bb50f3..4919cb3a05 100644 | |
--- a/modules/access/http/resource.c | |
+++ b/modules/access/http/resource.c | |
@@ -315,6 +315,18 @@ char *vlc_http_res_get_type(struct vlc_http_resource *res) | |
if (status < 200 || status >= 300) | |
return NULL; | |
+ if(res->path){ | |
+ char *suffix = "\0"; | |
+ for(int i = (int) (strlen(res->path) - 1); i >= 0; --i){ | |
+ if(res->path[i] == '.'){ | |
+ suffix = res->path + i + 1; | |
+ break; | |
+ } | |
+ } | |
+ if(strcmp(suffix, "flac") == 0) | |
+ return strdup("audio/flac"); | |
+ } | |
+ | |
const char *type = vlc_http_msg_get_header(res->response, "Content-Type"); | |
return (type != NULL) ? strdup(type) : NULL; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> | |
# Contributor: Giovanni Scafora <[email protected]> | |
# Contributor: Sarah Hay <[email protected]> | |
# Contributor: Martin Sandsmark <[email protected]> | |
pkgname=vlc | |
_vlcver=3.0.6 | |
# optional fixup version including hyphen | |
_vlcfixupver= | |
pkgver=${_vlcver}${_vlcfixupver//-/.r} | |
pkgrel=9 | |
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player' | |
url='https://www.videolan.org/vlc/' | |
arch=('x86_64') | |
license=('LGPL2.1' 'GPL2') | |
depends=('a52dec' 'libdvbpsi' 'libxpm' 'libdca' 'libproxy' 'lua' 'libidn' | |
'libmatroska' 'taglib' 'libmpcdec' 'ffmpeg' 'faad2' 'libupnp' 'libmad' | |
'libmpeg2' 'xcb-util-keysyms' 'libtar' 'libxinerama' 'libsecret' | |
'libarchive' 'qt5-base' 'qt5-x11extras' 'qt5-svg' 'freetype2' | |
'fribidi' 'harfbuzz' 'fontconfig' 'libxml2' 'gnutls' 'libplacebo' | |
'wayland-protocols' 'aribb24') | |
makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray' | |
'flac' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3' | |
'librsvg' 'libgme' 'xosd' 'twolame' 'aalib' 'avahi' 'systemd-libs' | |
'libmtp' 'libupnp' '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' 'chromaprint' 'aom' 'srt' 'dav1d') | |
optdepends=('avahi: service discovery using bonjour protocol' | |
'aom: AOM AV1 codec' | |
'gst-plugins-base-libs: for libgst plugins' | |
'dav1d: dav1d AV1 decoder' | |
'libdvdcss: decoding encrypted DVDs' | |
'libavc1394: devices using the 1394ta AV/C' | |
'libdc1394: IEEE 1394 access plugin' | |
'kwallet: kwallet keystore' | |
'libva-vdpau-driver: vdpau backend nvidia' | |
'libva-intel-driver: video backend intel' | |
'libbluray: Blu-Ray video input' | |
'flac: Free Lossless Audio Codec plugin' | |
'twolame: TwoLAME mpeg2 encoder plugin' | |
'libgme: Game Music Emu plugin' | |
'vcdimager: navigate VCD with libvcdinfo' | |
'libmtp: MTP devices discovery' | |
'systemd-libs: udev services discovery' | |
'smbclient: SMB access plugin' | |
'libcdio: audio CD playback' | |
'ttf-freefont: subtitle font ' | |
'ttf-dejavu: subtitle font' | |
'libssh2: sftp access' | |
'libnfs: NFS access' | |
'mpg123: mpg123 codec' | |
'protobuf: chromecast streaming' | |
'libmicrodns: mDNS services discovery (chromecast etc)' | |
'lua-socket: http interface' | |
'live-media: RTSP input' | |
'libdvdread: DVD input module' | |
'libdvdnav: DVD with navigation input module' | |
'libogg: Ogg and OggSpots codec' | |
'libshout: shoutcast/icecast output plugin' | |
'libmodplug: MOD output plugin' | |
'libvpx: VP8 and VP9 codec' | |
'libvorbis: Vorbis decoder/encoder' | |
'speex: Speex codec' | |
'opus: opus codec' | |
'libtheora: theora codec' | |
'libpng: PNG support' | |
'libjpeg-turbo: JPEG support' | |
'librsvg: SVG plugin' | |
'x264: H264 encoding' | |
'x265: HEVC/H.265 encoder' | |
'zvbi: VBI/Teletext decoding' | |
'libass: Subtitle support' | |
'libkate: Kate codec' | |
'libtiger: Tiger rendering for Kate streams' | |
'sdl_image: SDL image support' | |
'srt: SRT input/output plugin' | |
'aalib: ASCII art video output' | |
'libcaca: colored ASCII art video output' | |
'libpulse: PulseAudio audio output' | |
'alsa-lib: ALSA audio output' | |
'jack: jack audio server' | |
'libsamplerate: audio Resampler' | |
'libsoxr: SoX audio Resampler' | |
'chromaprint: Chromaprint audio fingerprinter' | |
'lirc: lirc control' | |
'libgoom2: Goom visualization' | |
'projectm: ProjectM visualisation' | |
'ncurses: ncurses interface' | |
'libnotify: notification plugin' | |
'gtk3: notification plugin') | |
conflicts=('vlc-plugin') | |
replaces=('vlc-plugin') | |
options=('!emptydirs') | |
source=(https://download.videolan.org/${pkgname}/${_vlcver}/${pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc} | |
update-vlc-plugin-cache.hook | |
lua53_compat.patch | |
vlc-libvpx18.patch::https://github.com/videolan/vlc-3.0/commit/2688feb2742a6021ca211ae5c106b12c3d822946.patch | |
ncm.patch) | |
sha512sums=('7c72e98f30ce5c5a94d74e097fa9960442f89240079b042a729f8a33dd7fedee2538c86c99738ccef2eb27f29055f0221d4c70316e3312c5ebba9565eaa15c52' | |
'SKIP' | |
'80357bae69e32b353d3784932d854e294906798e14faffb87c3383c3b6f6bdc57cbabb9c6e3f3c1adf0f8ddbb24153e72104c963cf1934970c2983c96daef9df' | |
'33cda373aa1fb3ee19a78748e2687f2b93c8662c9fda62ecd122a2e649df8edaceb54dda3991bc38c80737945a143a9e65baa2743a483bb737bb94cd590dc25f' | |
'4392415e49232be0d1d39e70f15307b9fec01dfb6e720d4978e415b4798a13f20c401e6c7a7a099e164332ffa9555a01e9bb1ee6fa48fb9a83d497d6411d6a04' | |
'SKIP') | |
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key | |
prepare() { | |
cd ${pkgname}-${_vlcver} | |
sed -e 's:truetype/ttf-dejavu:TTF:g' -i modules/visualization/projectm.cpp | |
sed -e 's|-Werror-implicit-function-declaration||g' -i configure | |
sed 's|whoami|echo builduser|g' -i configure | |
sed 's|hostname -f|echo arch|g' -i configure | |
local src | |
for src in "${source[@]}"; do | |
src="${src%%::*}" | |
src="${src##*/}" | |
[[ $src = *.patch ]] || continue | |
msg2 "Applying patch $src..." | |
patch -Np1 < "../$src" | |
done | |
} | |
build() { | |
cd ${pkgname}-${_vlcver} | |
export CFLAGS+=" -I/usr/include/samba-4.0" | |
export CPPFLAGS+=" -I/usr/include/samba-4.0" | |
export CXXFLAGS+=" -std=c++11" | |
export LUAC=/usr/bin/luac | |
export LUA_LIBS="$(pkg-config --libs lua)" | |
export RCC=/usr/bin/rcc-qt5 | |
./configure --prefix=/usr \ | |
--sysconfdir=/etc \ | |
--with-kde-solid=/usr/share/solid/actions/ \ | |
--disable-rpath \ | |
--enable-nls \ | |
--enable-archive \ | |
--disable-live555 \ | |
--disable-dc1394 \ | |
--disable-dv1394 \ | |
--enable-dvdread \ | |
--disable-dvdnav \ | |
--disable-bluray \ | |
--disable-opencv \ | |
--disable-smbclient \ | |
--disable-sftp \ | |
--enable-nfs \ | |
--disable-realrtsp \ | |
--enable-dvbpsi \ | |
--enable-gme \ | |
--enable-ogg \ | |
--enable-shout \ | |
--enable-matroska \ | |
--enable-mod \ | |
--enable-mpc \ | |
--enable-mad \ | |
--enable-mpg123 \ | |
--enable-gst-decode \ | |
--enable-avcodec \ | |
--enable-libva \ | |
--enable-avformat \ | |
--enable-postproc \ | |
--enable-faad \ | |
--enable-vpx \ | |
--enable-twolame \ | |
--disable-fdkaac \ | |
--enable-a52 \ | |
--enable-dca \ | |
--enable-flac \ | |
--enable-libmpeg2 \ | |
--enable-vorbis \ | |
--enable-speex \ | |
--enable-opus \ | |
--enable-oggspots \ | |
--disable-schroedinger \ | |
--enable-png \ | |
--enable-jpeg \ | |
--enable-x264 \ | |
--enable-x265 \ | |
--enable-zvbi \ | |
--enable-libass \ | |
--enable-kate \ | |
--enable-tiger \ | |
--enable-vdpau \ | |
--enable-wayland \ | |
--enable-sdl-image \ | |
--enable-freetype \ | |
--enable-fribidi \ | |
--enable-harfbuzz \ | |
--enable-fontconfig \ | |
--enable-svg \ | |
--enable-svgdec \ | |
--enable-aa \ | |
--enable-caca \ | |
--enable-pulse \ | |
--enable-alsa \ | |
--enable-jack \ | |
--enable-samplerate \ | |
--enable-soxr \ | |
--enable-chromaprint \ | |
--disable-chromecast \ | |
--enable-libtar \ | |
--enable-ncurses \ | |
--enable-lirc \ | |
--enable-goom \ | |
--enable-projectm \ | |
--enable-avahi \ | |
--enable-mtp \ | |
--enable-upnp \ | |
--enable-microdns \ | |
--enable-libxml2 \ | |
--disable-libgcrypt \ | |
--enable-gnutls \ | |
--enable-taglib \ | |
--enable-secret \ | |
--disable-kwallet \ | |
--disable-update-check \ | |
--disable-notify \ | |
--disable-libplacebo \ | |
--disable-vlc \ | |
--enable-aribsub \ | |
--disable-aom \ | |
--disable-srt \ | |
--disable-qt \ | |
--disable-skins2 | |
#--enable-dav1d \ | |
make -j$(nproc) | |
} | |
package() { | |
cd ${pkgname}-${_vlcver} | |
make DESTDIR="${pkgdir}" install | |
for res in 16 32 48 128 256; do | |
install -Dm 644 "${srcdir}/vlc-${_vlcver}/share/icons/${res}x${res}/vlc.png" \ | |
"${pkgdir}/usr/share/icons/hicolor/${res}x${res}/apps/vlc.png" | |
done | |
install -Dm 644 "${srcdir}/update-vlc-plugin-cache.hook" -t "${pkgdir}/usr/share/libalpm/hooks" | |
} | |
# vim: ts=2 sw=2 et: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Trigger] | |
Type = File | |
Operation = Install | |
Operation = Upgrade | |
Operation = Remove | |
Target = usr/lib/vlc/plugins/* | |
[Action] | |
Description = Updating the vlc plugin cache... | |
When = PostTransaction | |
Exec = /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
pacman -Rdd lua52
makepkg -sr --skippgpcheck --noarchive
pacman -S lua52 --asdeps
backup
/opt/netease/netease-cloud-music/libs/
thencopy and replace
./pkg/vlc/usr/lib/*
to/opt/netease/netease-cloud-music/libs/