...
 
Commits (833)

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -33,6 +33,220 @@ macOS:
* Remove Growl notification support
Changes between 3.0.2 and 3.0.3:
--------------------------------
Core:
* Update subtitles display while paused
Access:
* Enable srt support on binary builds
Decoders:
* Allow videotoolbox hardware decoding to be disabled
* Disable VideoToolbox for 10bits H.264
* Fix VideoToolbox with some invalid HEVC streams
* Fix subsdec wide character support
* Fix 1st order Ambisonics in AAC
Demux:
* Miscellaneous ogg improvements & bugfixes, including oggds
* Fix forced tracks selection
* Fix Topfield files
* Probe AAC/ADTS inside TS
* Fix tracks detection issues with DolbyVision and Bluray streams
macOS:
* Fix "Open Network Stream" URL box focus
* Add option to disable hardware acceleration for video decoding
* Remove option to force dolby mode from simple preferences
Video Output:
* Fix crashes on Direct3D11
Qt:
* Fix tooltip display on some desktop environments
* Fix spurious movement of the main Window
* Fix playlist being displayed in fullscreen
Misc:
* Fix amem output
* Fix numerous issues on fonts fallback and font shaping
* Fix subtitles toggle through hotkeys
* Fix audioscrobbling
* Fix buffer over-read in avcodec audio encoding with non-default layouts
* Numerous 3rd party libraries updated, fixing security issues
Translations:
* Update of most languages
Changes between 3.0.1 and 3.0.2:
--------------------------------
Core:
* Fix snapshotting with subtitles when using hardware acceleration
* Fix green/missing line/column when the picture dimensions are odd
Decoders:
* Important improvements in hardware decoding for macOS, notably faster,
supporting more samples and removing crashes/deadlocks
* Improve compatibility for DxVA2 and D3D11 decoding, fix crashes when seeking
and fix blacklisting of broken drivers
* Fix SSA subtitles forced alignment
* Fix E-AC-3 stuttering
* Fix MIDI playback on macOS
* Add playback support for ProRes 4444 XQ
Demux:
* Fix wrong colors in some AVI files
* Fix IFO files playback to start DVDs
* Fix a crash with missing/invalid MPEG SDT
* Update VP8/9/10 ISOBMFF bindings and improve HDR for those cases
* Fix TTML inside MP4
* Improve MP4 read of color information
* Fix flac seeking and improve flac parsing
* Improve mkv opening & seeking speed
* Fix display of chapters with no name defined
* Miscellaneous MKV crash fixes
* Fix crash with multi-region DVDs
* Fix audio being muted on DVD chapter change
* Fix audio being muted when seeking in a BluRay disc
Access:
* Avoid a crash/assert in FTP after seeking
Audio output:
* Fix mmdevice default audio device handling
* Fix "reset audio volume" being forcefully deactivated
* Allow a default device to be used by VLC
* Only warn once about misconfiguration for AUhal devices on macOS
* Improve resampling and latency computation for CoreAudio
* Passthrough is now disabled by default
Audio filters:
* Fix audio stutter after unpausing with headphones
* Fix silence when dolby-surround was mis-selected in preferences
Video output:
* Fix OpenGL crashes or bad display with semi-planar chromas
* Fix OpenGL interop (zero-copy) disabled for tvOS
* Major rewrite of the iOS video output to fix numerous crashes
* Important improvements of the D3D11 video output to use less memory
and less GPU for HDR tone-mapping
* Fix crop on vertical videos with Direct3D11
* Fix Direct3D9 filters settings not being applied properly
* Fix transform filters with hardware decoding
* Fix snapshot and filters with HEVC hardware decoding
* Fix a buffer overrun during GPU/CPU image copy
* Fix glitches on DVD menus with Direct3D11
* Fix non-HDR content playback on HDR screens with Direct3D11
* Fix YUV full range displayed incorrectly in Direct3D11
* Fix miscellaneous crashes in Direct3D11
* Fix potential black screen with 10bits videos on Direct3D11
macOS:
* Fix Growl notifications on recent macOS versions
* Fix conversion output file name encoding
* Fix crash reporting on macOS 10.7 and 10.8
* Fix crash on exit
* Fix remember playback position
* Fix Blu-ray disc Java menu
* Fix swiping on time slider to change position
* Fix problems with restoring user name from keychain
* Fix localization issues
Qt:
* Fix last folder used in open dialogs
* Allow to customize the seek jump when using the mousewheel
* Fix fullscreen controller positionment on multiscreen setups
* Fix pasted URLs not being trimmed
* Fix jump size not being configurable
* Fix missing time labels updates
* Fix playback speed slider not accepting 1.0x value
* Fix raw input dump
* Fix window size after a fullscreen playback
Misc:
* Fix lua rc & oldrc interfaces host specification
* Fix crashes when searching for renderers
* Relocate localedir for Linux (improves snap i18n support)
* Fix VDPAU GLX usage on Linux
* Improve support for NetBSD
* Fix MSI script for Windows
* Fix libvlc_media_list not going to next media
* Fix character encoding on win32 consoles
* Miscellaneous chromecast improvements
* Fix missing OSD navigation feedback
* Various VLSub improvements
* lua: Fix scripts not being loaded on some filesystems
* lua: Add vlc.io APIs to handle UTF-8 paths
Changes between 3.0.0 and 3.0.1:
--------------------------------
Core:
* Fix use-after-free when cleaning playlists
* Fix crash on exit on Windows
Video output:
* Fix HLG tone mapping on some systems like macOS.
* Fix screensaver inhibition on Windows XP
* Fix various Direct3D11 crashes
* Fix HDR tone mapping in Direct3d11
* Fix pink screen on Windows
Decoder:
* Fix potential stack buffer overflow with faad
* Enable Cineform HD in avcodec
Hardware Decoder:
* macOS: Improve HEVC 10bit performance with Videotoolbox
* android: Add MPEG2 support via MediaCodec
* Fix HEVC decoding with some files on Android/macOS/iOS
* Improve Direct3D11 memory usage
Demux:
* Improve MKV seeking speed
* Fix xspf base URL handling
* Fix reading mp4 trun with moof based offsets
* Fix adaptive http redirections
* Replace old API, fixing adaptive TLS leak
* Use mime type as fallback for HLS segment type
* Fix subtitle (srt,ssa..) seek when having a single entry
* Flag non default HDMV subset video streams
* Increase TS probing amount for 4K streams
* Miscellaneous MKV, MP4 & AVI crash fixes
Packetizer:
* Fix out of bounds read in mpeg4video
Stream Output:
* Improve chromecast loading speed
* Improve local/chromecast transition during playback
* Fix chromecast loading with some versions of Windows
* Fix chromecast loading with some chromecast devices (TVs and Android boxes)
* Fix wrong first cover art when casting
* Fix casting to VP9
macOS Interface:
* Re-add option to disable the fullscreen controller panel
* Auto-layout improvements
* Remove misleading playback warning indicator
* Fix crash with the interface for lua extensions (like VLSub)
* Fix show sidebar setting being ignored on restart
* Fix MKV files association
* Fix chromecast audio detection
Qt Interface:
* Improve scaling on HiDPI displays
Snap:
* Improve interface look and feel.
Changes between 2.2.8 and 3.0.0:
--------------------------------
......
......@@ -23,7 +23,7 @@ endif
#
# Main VLC executable
#
vlc_LDADD = ../lib/libvlc.la $(LIBPTHREAD)
vlc_LDADD = ../lib/libvlc.la
vlc_CPPFLAGS = $(AM_CPPFLAGS)
if !HAVE_WIN32
vlc_SOURCES = vlc.c override.c
......
......@@ -22,7 +22,7 @@
# include <config.h>
#endif
#include <stddef.h>
#include <string.h>
/**
* Copy a string to a sized buffer. The result is always nul-terminated
......@@ -37,16 +37,13 @@
*/
size_t strlcpy (char *tgt, const char *src, size_t bufsize)
{
size_t length;
size_t length = strlen(src);
for (length = 1; (length < bufsize) && *src; length++)
*tgt++ = *src++;
if (bufsize > length)
memcpy(tgt, src, length + 1);
else
if (bufsize > 0)
memcpy(tgt, src, bufsize - 1), tgt[bufsize - 1] = '\0';
if (bufsize)
*tgt = '\0';
while (*src++)
length++;
return length - 1;
return length;
}
......@@ -38,12 +38,6 @@ AC_USE_SYSTEM_EXTENSIONS
VLC_PROG_CC_C11
AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
AH_TOP([
#ifndef _REENTRANT
# define _REENTRANT
#endif
])
AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
......@@ -102,6 +96,7 @@ case "${host_os}" in
;;
linux*)
SYS=linux
CFLAGS="${CFLAGS} -pthread"
;;
bsdi*)
SYS=bsdi
......@@ -129,8 +124,8 @@ case "${host_os}" in
dnl Force gcc "-arch" flag
ARCH_flag=""
case "${host}" in
i?86*)
case "${host_cpu}" in
i?86)
ARCH_flag="-arch i386"
;;
ppc64*)
......@@ -139,7 +134,7 @@ case "${host_os}" in
ppc*)
ARCH_flag="-arch ppc"
;;
x86_64*)
x86_64)
ARCH_flag="-arch x86_64"
;;
arm*)
......@@ -249,8 +244,8 @@ case "${host_os}" in
dnl
dnl NSIS/MSI Installer prefix and WIN64
dnl
case "${host}" in
amd64*|x86_64*)
case "${host_cpu}" in
amd64|x86_64)
HAVE_WIN64="1"
WINDOWS_ARCH="x64"
PROGRAMFILES="PROGRAMFILES64"
......@@ -794,20 +789,6 @@ AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
AC_SUBST(LIBDL)
dnl Check for thread library
LIBPTHREAD=""
AS_IF([test "${SYS}" != "mingw32"], [
VLC_SAVE_FLAGS
LIBS=""
AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
])
])
VLC_RESTORE_FLAGS
])
AC_SUBST(LIBPTHREAD)
AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
LIBRT="$ac_cv_search_clock_nanosleep"
......@@ -936,7 +917,7 @@ dnl
AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros -Wvla-larger-than=1024], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
dnl
......@@ -2930,25 +2911,6 @@ AS_IF( [test "${enable_telx}" != "no" ],[
VLC_ADD_PLUGIN([telx])
])
dnl
dnl libass subtitle rendering module
dnl
AC_ARG_ENABLE(libass,
[ --enable-libass Subtitle support using libass (default enabled)])
AS_IF( [test "${enable_libass}" != "no"], [
PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
[
VLC_ADD_PLUGIN([libass])
AC_CHECK_HEADERS(fontconfig/fontconfig.h,
[VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
VLC_ADD_LIBS([libass],[-lfontconfig])
])
],[
AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
])
])
dnl
dnl ARIB subtitles rendering module
dnl
......@@ -3068,38 +3030,54 @@ AC_ARG_ENABLE(xcb,
enable_xcb="no"
])
])
AC_ARG_ENABLE(xvideo,
[ --enable-xvideo XVideo support (default enabled)],, [
enable_xvideo="$enable_xcb"
])
have_xcb="no"
have_xkbcommon_x11="no"
have_xcb_keysyms="no"
have_xcb_randr="no"
have_xcb_xvideo="no"
AS_IF([test "${enable_xcb}" != "no"], [
dnl libxcb
PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
have_xcb="yes"
PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
PKG_CHECK_MODULES(XPROTO, [xproto])
xcb_err=""
AS_IF([test "${enable_xvideo}" != "no"], [
PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
dnl libxcb
PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
PKG_CHECK_MODULES([XCB_SHM], [xcb-shm],, [
xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
PKG_CHECK_MODULES([XCB_XV], [xcb-xv >= 1.1.90.1],, [
xcb_err="$xcb_err ${XCB_XV_PKG_ERRORS}."])
dnl xproto
PKG_CHECK_MODULES(XPROTO, [xproto],, [
xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
AS_IF([test -n "$xcb_err"], [
AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
])
dnl xkbcommon
PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
have_xkbcommon_x11="yes"
], [
AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
])
PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
dnl xcb-utils
PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
have_xcb_keysyms="yes"
], [
AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
])
have_xcb="yes"
])
AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
dnl
......@@ -3147,48 +3125,55 @@ dnl Wayland
dnl
AC_ARG_ENABLE(wayland,
[AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
have_wayland="no"
have_wayland_egl="no"
have_wayland="no"
AS_IF([test "${enable_wayland}" != "no"], [
PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
AC_MSG_CHECKING([for the Wayland protocols])
PKG_CHECK_EXISTS([wayland-protocols >= 1.4], [
WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
AC_MSG_RESULT([${WAYLAND_PROTOCOLS}])
], [
AC_MSG_RESULT([not found])
AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors 'wayland-protocols >= 1.4')])
])
wl_err=""
AC_MSG_CHECKING([for the Wayland scanner])
PKG_CHECK_EXISTS([wayland-scanner], [
WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
AC_MSG_RESULT([${WAYLAND_SCANNER}])
dnl wayland
PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
])
PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
])
PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
])
PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
], [
wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
])
dnl wayland-protocols
PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.12], [
WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
], [
wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
])
AS_IF([test -n "$wl_err"], [
AS_IF([test -n "$enable_wayland"], [
AC_MSG_ERROR([$wl_err])
], [
AC_MSG_RESULT([not found])
AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors wayland-scanner)])
AC_MSG_WARN([$wl_err])
])
], [
have_wayland="yes"
])
AS_IF([test "${have_egl}" = "yes"], [
PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
have_wayland_egl="yes"
], [
AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
])
])
dnl xkbcommon