1
mirror of https://code.videolan.org/videolan/vlc synced 2024-09-04 09:11:33 +02:00
Commit Graph

3314 Commits

Author SHA1 Message Date
Thomas Guillem
b3eaf5a239 compat: remove qsort_r 2019-01-22 18:55:32 +01:00
Thomas Guillem
2bc72d3fae configure: detect broken qsort_r 2019-01-22 18:55:29 +01:00
Hugo Beauzée-Luyssen
b568777797 configure.ac: Don't check for clock_nanosleep on win32
Now that we use winpthreads, configure finds clock_nanosleep there,
causing -pthread to be added to the libvlccore requirement, while we
don't use it for win32.
2019-01-16 08:33:33 +01:00
Janne Grunau
9dc7a22eca build: avoid annoying _FORTIFY_SOURCE warnings (fixes #17341)
fixed patch with the duplicate "#if defined ..." removed

Janne
---8<---
Some toolchains predefine _FORTIFY_SOURCE resulting in countless
_FORTIFY_SOURCE is redefined warnings. Using _FORTIFY_SOURCE without
compiler optimizations also generates warnings.
_FORTIFY_SOURCE is a reserved identifier in C99 ("All identifiers that
begin with an underscore and either an uppercase letter or another
underscore are always reserved for any use.") so the toolchain is
perfectly free to predefine it.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2019-01-03 19:46:15 +02:00
Jean-Baptiste Kempf
643a30d5f8 Welcome to 2019 2019-01-02 07:58:14 +01:00
Rémi Denis-Courmont
19c8c3a7e6 xcb/render: X11 RENDER display plugin
This brings the modern (well, at least current) X11 rendering protocol
for video output (refs #12348).

Compared to plain X11, it can handle scaling and orientation.
Compared to XVideo, it can handle orientation, and can crop correctly
(without bleeding), but it expects packed RGB rather than YCbCr.

Also RENDER would be able to handle SPU blending (and SPU scaling),
though this is left for future work, which neither X11 nor XVideo can.
2018-12-19 21:10:29 +02:00
Rémi Denis-Courmont
797c455918 aarch64: allow run-time NEON detection
(if NEON is disabled in the C compiler settings)
2018-12-17 20:04:46 +02:00
Hugo Beauzée-Luyssen
94ba3ab496 configure.ac: Detect aarch64 as a 64bits windows 2018-12-12 17:37:52 +01:00
Rémi Denis-Courmont
edf6ff7544 cpu: generic support for ARM SVE
This adds generic support for the AArch64 Scalable Vector Extension.
2018-12-11 22:54:28 +02:00
Rémi Denis-Courmont
fdc57213fc xcb: require MIT-SHM extension version 1.2 2018-12-09 20:43:18 +02:00
Rémi Denis-Courmont
3ebd72e039 xdg_shell: use xdg-decoration (unstable v1) protocol
...rather than KDE-specific stuff.
2018-12-02 20:25:05 +02:00
Rémi Denis-Courmont
5ffb9dfe0e compat: replace qsort_r() where missing
This should sort properly on Windows and any other platform without
qsort_r(). It does _not_ fix any potential issues on any platforms with
an incompatible qsort_r() prototype (such as FreeBSD < 13).
2018-11-20 17:59:15 +02:00
David Fuhrmann
cedb3335b4 qtsound: Remove module
It has been replaced by avaudiocapture module.
2018-11-18 14:21:43 +01:00
Rémi Denis-Courmont
dc47f00dc2 configure: actually enable Qt by default
...as the help text claims.
2018-11-17 19:16:50 +02:00
Adrien Maglo
059b9e563b codec: add a dav1d AV1 decoder module
It is using the picture callback API so there's is no copy on output of the decoder.

Co-authored-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Co-authored-by: Steve Lhomme <robux4@ycbcr.xyz>
2018-11-09 12:08:17 +01:00
Niklas Haas
1386b85049 vout: add new vulkan/libplacebo vout
This uses libplacebo's rendering helpers for all video output, on top of
the vulkan graphics API. Some notes:

- The existing fourcc/chroma helpers don't really line up with what the
  libplacebo API expects, or in some cases return values that just don't
  seem to make sense. I was advised against touching them for fear of
  breaking the rest of VLC - so we add our own helpers that give us the
  information in the format we need for libplacebo.

- Not all libplacebo options are mapped. There's no ability to create
  custom filter functions (which libplacebo/mpv support), and there's
  also no support for ICC profiles / 3DLUTs (which libplacebo supports)
  nor for the new color blindness simulation parameters in libplacebo
  v0.6. We also don't map the VLC brightness/hue/gamma/etc. options to
  the libplacebo structs - we could do it for free as part of the video
  decode matrix, rather than needing to insert a CPU filter for it.

- How to create the vulkan surface will depend on the platform (much
  like in opengl), so we move context, surface and device creation into
  a single module (`vulkan/surface.c`) which will be conditionally
  compiled depending on the platform in order to provide support for
  multiple surfaces side-by-side (e.g. x11 and wayland). This does mean
  that the context/device-related options end up being separate per
  platform, but OTOH this is not that bad since different platforms
  might want different e.g. swapchain modes (an example being wayland,
  which can make better use of mailbox rather than fifo).

- libplacebo doesn't have a "configure" step, instead all rendering
  parameters are fully dynamic. So we could call UpdateParams() in our
  module at any point in time when the config values change.
  Unfortunately, there's no easy way for us to find out when this is the
  case, so right now changing the vulkan module options requires a
  module reinit to take effect. In theory we could change this. (As an
  aside: calling var_Inherit* per frame does work to get us the changes
  in "realtime", as soon as the user clicks "save", but this may block
  for arbitrary amounts of time so I was advised against doing it)

Due to the new functions, structs and enum members used, the minimum
libplacebo version has been bumped up to v0.5.0. In theory we could also
try and support v0.4.0 with some #ifdefs, but v0.5.0 has been out for
several months now so it should be a safe requirement.
2018-11-07 15:45:26 +01:00
Thomas Guillem
5cf3e998e7 configure: require next bitstream release
The version needed for RIST is not yet released.
2018-11-06 10:19:45 +01:00
Thomas Guillem
abf93d8f78 configure: add check for the bitstream project 2018-11-05 18:25:35 +01:00
Thomas Guillem
c3d17825dc configure: add share folder for pkg-config search path
Headers only projects install generally their .pc into the share directory.
2018-11-05 18:25:24 +01:00
Victorien Le Couviour--Tuffet
cf9bd77c67 compat: add lfind
Fixes android build with NDK 17 as lfind is not always available.
2018-10-23 14:53:25 +02:00
Victorien Le Couviour--Tuffet
0481899b5d vlc_fixups: fix struct if_nameindex definition
Fixes android ndk17 build
2018-10-23 14:53:25 +02:00
Devin Heitmueller
9ff9cfa3c1 Decklink: Make input/output modules build on OSX
The Decklink SDK has platform-specific implementations for various
calls which return strings.  Add some portability macros to
properly handle those calls and then normalize the result down to
a C char * as we would typically see in VLC.

Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com>
2018-10-20 20:37:29 +02:00
Marvin Scholz
8383fb08a4 configure: Fix --enable-decklink behavior
When explicitly enabled, configure should fail when it can't find the
Decklink SDK.
2018-09-19 12:46:35 +02:00
Marvin Scholz
6e97ba0810 configure: Remove unnecessary whitespace in help string 2018-09-19 12:46:35 +02:00
Marvin Scholz
09b51b3660 configure: Fix some missing quotes 2018-09-19 12:46:35 +02:00
Marvin Scholz
0231f56463 configure: Remove unnecessary quotes around AS_HELP_STRING
This fixes some extraneous unwanted whitespace/linebreak in some
option descriptions (for example qt).
2018-09-19 12:46:35 +02:00
Marvin Scholz
bbdc5aa257 configure: Consistently quote first arg of AC_ARG_* 2018-09-19 12:46:35 +02:00
Marvin Scholz
a746c38e2d configure: Consistently use AS_HELP_STRING everywhere 2018-09-19 12:46:35 +02:00
Marvin Scholz
bd888e285f configure: Fix missing bracket 2018-09-19 12:46:35 +02:00
Francois Cartegnie
752df69bf9 sout: add SDI stream output
Decklink vout backport, so
this is the currently the only support
2018-09-05 10:35:32 +02:00
David Fuhrmann
0d181b4172 qtsound: Fix configure detection and build
QTKit header includes objc header files, therefore the configure
check must be done with an objc file. Also, fix build of qtsound
module.
2018-08-08 00:04:23 +02:00
Steve Lhomme
1b70ed02e7 configure: don't require a too old version of libavutil
Add a comment of which version of a required libavcodec corresponds to what libavutil
version. This way we don't need defines for versions we don't support anymore.
2018-08-06 14:14:58 +02:00
Hugo Beauzée-Luyssen
3a10c750df Add a new medialibrary module 2018-07-18 00:16:39 +02:00
Martin Storsjö
0a27328b5a configure: Make the new value of _WIN32_WINNT available to configure tests
Definitions from AH_TOP aren't included in the configure checks.

This was the original intent of e807c8e91.

This makes sure configure checks and actual compilation are run
with the same version defined.
2018-07-12 08:59:05 +03:00
Martin Storsjö
255e2ce279 configure: Don't force _WIN32_WINNT to 0x0601 if it is set to a higher version
Since e807c8e91, we're explicitly unconditionally defining _WIN32_WINNT,
regardless if it was set before or not.

If it was set before (e.g. on the command line), to a higher version,
we should honor that.

This is cruicial for WinRT building, where _WIN32_WINNT is set to Windows
8 or higher on the command line.
2018-07-11 23:40:51 +03:00
Jean-Baptiste Kempf
e20677966f Revert "Port to new libmpcdec API"
This reverts commit 87cb4e591a.
2018-07-11 19:32:20 +02:00
Jean-Baptiste Kempf
b007abf4c3 Remove RealRTSP plugin
Move to 21st century!
2018-07-11 18:50:49 +02:00
Marvin Scholz
6b91f5059a configure: Fix description of font family options
These options do not take the path but the name of the font.

Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
2018-07-10 19:56:16 +03:00
Thomas Guillem
5775166f1b smb2: add libdsm netbios resolver
Because libsmb2 doesn't have any netbios name resolver.

Maybe, every VLC services discoveries should use the IP instead of the netbios
name for SMB shares.
2018-07-07 22:00:07 +02:00
Thomas Guillem
c6e7841663 access: add smb2 module
Using libsmb2 from Ronnie Sahlberg https://github.com/sahlberg/libsmb2
This is LGPL 2.1 fully async lib for accessing SMB2 and SMB3 shares.

This module use the async feature of the libsmb2 lib with the vlc interrupt
mechanism, therefore every network requests are cancellable almost immediately.

The 2.0.0 version is required since this version drop OpenSSL dependency and
allow to use Builtin NTLMSSP authentication instead of libkrb5.
2018-07-07 21:59:17 +02:00
Juha-Pekka Heikkila
adaec7b5a9 linux: kernel mode setting (KMS) vout plugin
Add new kernel mode setting video output plugin.
By default it tries to match vlc suggested video mode to anything
kms api offers. There are command line parameters to control
which video format to use for both vlc and for drm.

kms-vlc-chroma parameter to force VLC to use FourCC as output.
kms-drm-chroma parameter to overide DRM requested framebuffer type.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2018-07-02 09:13:32 +02:00
Rémi Denis-Courmont
902dd36bbd configure: remove LIBPTHREAD
POSIX threads are always enabled implicitly.
2018-06-18 20:08:17 +03:00
Rémi Denis-Courmont
c6dafa8519 configure: remove legacy _REENTRANT / _THREAD_SAFE 2018-06-18 20:08:17 +03:00
Rémi Denis-Courmont
fc8208ec86 configure: always pass -pthread on Linux
This appears to be the official way to get POSIX threads. In practice,
it pre-defines _REENTRANT to 1 and pulls -lpthread.
(This works with both GCC and Clang.)
2018-06-18 20:08:17 +03:00
Rémi Denis-Courmont
a50366bc97 configure: use $host_cpu where applicable 2018-06-16 21:34:58 +03:00
Rémi Denis-Courmont
50b6429920 configure: fix linking on RISC-V ISA 2018-06-16 21:31:45 +03:00
Martin Storsjö
1162a9ffec Qt: Require Qt 5.9.0 as minimum version
Qt 5.9 is the current LTS branch, first released in May 2017.
2018-06-16 15:20:21 +03:00
Thomas Guillem
d19599c421 libass: fix fontconfig detection
Use have_fontconfig and FONTCONFIG_LIBS for link flags.
2018-06-15 08:48:47 +02:00
Rémi Denis-Courmont
2dc0f81246 Revert "configure: warn about unbound size VLA"
This reverts commit c3eaddc7d5.
Too many false positives.
2018-06-10 13:08:44 +03:00
Rémi Denis-Courmont
a15818e56e configure: simplify Wayland checks
All (useful) parts of wayland source are now treated as a single block
of dependencies (same as libxcb). All errors are printed at once.
2018-05-30 20:37:23 +03:00