[vlc-commits] [Git][videolan/vlc][master] 27 commits: meson: add DMO codec
Steve Lhomme (@robUx4)
gitlab at videolan.org
Sat Nov 9 11:20:43 UTC 2024
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
ff6582b7 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add DMO codec
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
df13d100 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: only set cdata variable if boolean options are enabled
Otherwise it defines the value, rather than commenting it.
- - - - -
c0822fbd by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: generate the config.h after the modules
So they can add defines with local detection.
- - - - -
27e9e2b2 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: require meson 1.1.0
So we can use enable_auto_if().
We already require 1.2.3 in tools since f45dcaf4a3e3bdc214e579ef229718b52e9d4fed.
So it's compatible with newer Python.
- - - - -
029f5697 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add global windowsappcompat support
Now that we require meson 0.63 or more.
- - - - -
393ae7e3 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add d3d11 library in d3d11_common_lib
For code that is creating a decoder device via d3d11_fmt.cpp.
- - - - -
07d15477 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add d3d11va/dxva2 plugins
- - - - -
3cb30ace by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: enable AMF HQScaler
- - - - -
c3103cd8 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add AMF video filters
- - - - -
1f8fe56b by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: use the same OpenGL plugin names as autotools
- - - - -
42702abe by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: use the same libplacebo plugin names as autotools
- - - - -
2ea51d7d by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: use the same http PUT plugin name as autotools
- - - - -
1afe1d0f by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: use the same screen plugin name as autotools
- - - - -
9ebc955f by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: fix PROCESS_MITIGATION_IMAGE_LOAD_POLICY detection
configure.ac uses windows.h. It's not properly detected with winnt.h.
- - - - -
a701ac54 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add missing HAVE_DCOMP_H define
It's by the d3d11 output and Qt.
- - - - -
a0c3ad6a by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add dxgi/d3d11 header detection
as done in autotools.
- - - - -
a464c115 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add HAVE_ZLIB define when zlib is detected
Just as in autoconf.
- - - - -
e8ed24f5 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: only set cdata variable if compiler detection succeeds
Otherwise it defines the value, rather than commenting it.
- - - - -
9ec7bde7 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add missing compiler defines
Even if they are not used. We do the detection.
- - - - -
4cd9bdcb by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: put the HAVE_ARIBB24 define in config.h
As done by autoconf.
- - - - -
b0d6a3d8 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: use the same libbluray plugin name as autotools
- - - - -
7c40e5ba by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add missing libcom_cppflags in Windows modules using COM
Anything using d3d11_common_lib.
- - - - -
80a8d200 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add "directx" option to turn of some d3d11/d3d9 modules
As in autotools.
- - - - -
38cc9961 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: move the d3d11/d3d9 common lib in video_chroma
'video_chroma' is the first modules directory evaludated anyway.
- - - - -
f233833c by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: move deinterlacecommon_lib to share with other modules
- - - - -
3f6000a1 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add d3d11 filters
- - - - -
162e77f9 by Steve Lhomme at 2024-11-09T11:02:35+00:00
meson: add d3d9 filters
- - - - -
18 changed files:
- buildsystem/simd_checks/meson.build
- config.h.meson
- meson.build
- meson_options.txt
- modules/access/meson.build
- modules/access/screen/meson.build
- modules/access_output/meson.build
- modules/codec/meson.build
- modules/demux/meson.build
- + modules/hw/d3d11/meson.build
- + modules/hw/d3d9/meson.build
- + modules/hw/meson.build
- modules/meson.build
- modules/video_chroma/meson.build
- modules/video_filter/meson.build
- modules/video_output/libplacebo/meson.build
- modules/video_output/opengl/meson.build
- modules/video_output/win32/meson.build
Changes:
=====================================
buildsystem/simd_checks/meson.build
=====================================
@@ -18,7 +18,9 @@ have_sse2_intrinsics = cc.compiles('''
frobzor = (uint64_t)_mm_movepi64_pi64(a);
}
''', args: ['-msse2'], name: 'SSE2 intrinsics check')
-cdata.set('HAVE_SSE2_INTRINSICS', have_sse2_intrinsics)
+if have_sse2_intrinsics
+ cdata.set('HAVE_SSE2_INTRINSICS', 1)
+endif
# Check for SSE2 inline assembly support
can_compile_sse2 = cc.compiles('''
@@ -27,7 +29,9 @@ can_compile_sse2 = cc.compiles('''
asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
}
''', args: ['-msse'], name: 'SSE2 inline asm check')
-cdata.set('CAN_COMPILE_SSE2', can_compile_sse2)
+if can_compile_sse2
+ cdata.set('CAN_COMPILE_SSE2', 1)
+endif
have_sse2 = can_compile_sse2
# Check for SSE3 inline assembly support
@@ -37,7 +41,9 @@ can_compile_sse3 = cc.compiles('''
asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
}
''', args: ['-msse'], name: 'SSE3 inline asm check')
-cdata.set('CAN_COMPILE_SSE3', can_compile_sse3)
+if can_compile_sse3
+ cdata.set('CAN_COMPILE_SSE3', 1)
+endif
# Check for SSSE3 inline assembly support
can_compile_2_sse3 = cc.compiles('''
@@ -46,7 +52,9 @@ can_compile_2_sse3 = cc.compiles('''
asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
}
''', args: ['-msse'], name: 'SSSE3 inline asm check')
-cdata.set('CAN_COMPILE_SSSE3', can_compile_2_sse3)
+if can_compile_2_sse3
+ cdata.set('CAN_COMPILE_SSSE3', 1)
+endif
have_sse3 = can_compile_sse3 and can_compile_2_sse3
# Check for SSE4.1 inline assembly support
@@ -56,7 +64,9 @@ can_compile_sse4_1 = cc.compiles('''
asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
}
''', args: ['-msse'], name: 'SSE4.1 inline asm check')
-cdata.set('CAN_COMPILE_SSE4_1', can_compile_sse4_1)
+if can_compile_sse4_1
+ cdata.set('CAN_COMPILE_SSE4_1', 1)
+endif
have_sse4_1 = can_compile_sse4_1
# Check for SSE4.2 inline assembly support
@@ -66,7 +76,9 @@ can_compile_sse4_2 = cc.compiles('''
asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
}
''', args: ['-msse'], name: 'SSE4.2 inline asm check')
-cdata.set('CAN_COMPILE_SSE4_2', can_compile_sse4_2)
+if can_compile_sse4_2
+ cdata.set('CAN_COMPILE_SSE4_2', 1)
+endif
have_sse4_2 = can_compile_sse4_2
# Check for SSE4A inline assembly support
@@ -76,7 +88,9 @@ can_compile_sse4A = cc.compiles('''
asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
}
''', args: ['-msse'], name: 'SSE4A inline asm check')
-cdata.set('CAN_COMPILE_SSE4A', can_compile_sse4A)
+if can_compile_sse4A
+ cdata.set('CAN_COMPILE_SSE4A', 1)
+endif
have_sse4A = can_compile_sse4A
# Check for fully workin AVX2 intrinsics
@@ -97,7 +111,9 @@ have_avx2_intrinsics = cc.compiles('''
frobzor = (uint64_t)_mm256_extract_epi64(a, 0);
}
''', args: ['-mavx2'], name: 'AVX2 intrinsics check')
-cdata.set('HAVE_AVX2_INTRINSICS', have_avx2_intrinsics)
+if have_avx2_intrinsics
+ cdata.set('HAVE_AVX2_INTRINSICS', 1)
+endif
# Check for AVX inline assembly support
can_compile_avx = cc.compiles('''
@@ -106,7 +122,9 @@ can_compile_avx = cc.compiles('''
asm volatile("vxorps %%ymm1,%%ymm2,%%ymm3"::"r"(p):"ymm1", "ymm2", "ymm3");
}
''', args: ['-mavx'], name: 'AVX inline asm check')
-cdata.set('CAN_COMPILE_AVX', can_compile_avx)
+if can_compile_avx
+ cdata.set('CAN_COMPILE_AVX', 1)
+endif
have_avx = can_compile_avx
# Check for AVX2 inline assembly support
@@ -116,7 +134,9 @@ can_compile_avx2 = cc.compiles('''
asm volatile("vpunpckhqdq %%ymm1,%%ymm2,%%ymm3"::"r"(p):"ymm1", "ymm2", "ymm3");
}
''', args: ['-mavx'], name: 'AVX2 inline asm check')
-cdata.set('CAN_COMPILE_AVX2', can_compile_avx2)
+if can_compile_avx2
+ cdata.set('CAN_COMPILE_AVX2', 1)
+endif
have_avx2 = can_compile_avx2
# TODO: ARM Neon checks and SVE checks
=====================================
config.h.meson
=====================================
@@ -3,6 +3,12 @@
/* Define to 1 to allow running VLC as root (uid 0). */
#mesondefine ALLOW_RUN_AS_ROOT
+/* Define to 1 if AVX inline assembly is available. */
+#mesondefine CAN_COMPILE_AVX
+
+/* Define to 1 if AVX2 inline assembly is available. */
+#mesondefine CAN_COMPILE_AVX2
+
/* Define to 1 if SSE2 inline assembly is available. */
#mesondefine CAN_COMPILE_SSE2
@@ -61,6 +67,12 @@
/* Define to 1 if you have the `aligned_alloc' function. */
#mesondefine HAVE_ALIGNED_ALLOC
+/* AMD HQScaler supported */
+#mesondefine HAVE_AMF_SCALER
+
+/* Define if libaribb24 is available. */
+#mesondefine HAVE_ARIBB24
+
/* Define to 1 if you have the <arpa/inet.h> header file. */
#mesondefine HAVE_ARPA_INET_H
@@ -76,6 +88,9 @@
/* Support for __attribute__((packed)) for structs */
#mesondefine HAVE_ATTRIBUTE_PACKED
+/* Define to 1 if AVX2 intrinsics are available. */
+#mesondefine HAVE_AVX2_INTRINSICS
+
/* Define to 1 if you have the `backtrace' function. */
#mesondefine HAVE_BACKTRACE
@@ -89,12 +104,24 @@
/* Define if the compiler supports typeof. */
#mesondefine HAVE_CXX_TYPEOF
+/* Define to 1 if you have the <d3d11_4.h> header file. */
+#mesondefine HAVE_D3D11_4_H
+
+/* Define to 1 if you have the <dcomp.h> header file. */
+#mesondefine HAVE_DCOMP_H
+
/* Define to 1 if you have the `dirfd' function. */
#mesondefine HAVE_DIRFD
/* Define to 1 if you have the `dup3' function. */
#mesondefine HAVE_DUP3
+/* Define to 1 if you have the <dxgi1_6.h> header file. */
+#mesondefine HAVE_DXGI1_6_H
+
+/* Define to 1 if you have the <dxgidebug.h> header file. */
+#mesondefine HAVE_DXGIDEBUG_H
+
/* Define to 1 if you have the `eventfd' function. */
#mesondefine HAVE_EVENTFD
@@ -198,6 +225,12 @@
+/* Define to 1 if you have the <libavcodec/d3d11va.h> header file. */
+#mesondefine HAVE_LIBAVCODEC_D3D11VA_H
+
+/* Define to 1 if you have the <libavcodec/dxva2.h> header file. */
+#mesondefine HAVE_LIBAVCODEC_DXVA2_H
+
/* TODO: Properly check for the avformat header
*/
#define HAVE_LIBAVFORMAT_AVFORMAT_H 1
@@ -432,6 +465,9 @@
/* Define to 1 if you have the <xlocale.h> header file. */
#mesondefine HAVE_XLOCALE_H
+/* Define to 1 if you have zlib. */
+#mesondefine HAVE_ZLIB
+
/* Define to 1 if you have the <zlib.h> header file. */
#mesondefine HAVE_ZLIB_H
=====================================
meson.build
=====================================
@@ -1,7 +1,7 @@
project('VLC', ['c', 'cpp'],
version: '4.0.0-dev',
default_options: ['c_std=gnu17', 'cpp_std=c++17'],
- meson_version: '>=0.60.0')
+ meson_version: '>=1.1.0')
vlc_copyright_years = '1996-2018'
vlc_version_codename = 'Otto Chriek'
@@ -139,6 +139,9 @@ subdir('buildsystem/simd_checks')
# zlib library
z_dep = dependency('zlib', required: false)
+if z_dep.found()
+ cdata.set('HAVE_ZLIB', 1)
+endif
# Math library
m_lib = cc.find_library('m', required: false)
@@ -235,8 +238,11 @@ check_c_headers = [
['valgrind/valgrind.h'],
['X11/Xlib.h'],
['xlocale.h'],
- ['zlib.h'],
+ ['zlib.h', { 'args' : [contrib_inc_args] }],
['wordexp.h'],
+ ['dxgi1_6.h'],
+ ['dxgidebug.h'],
+ ['d3d11_4.h'],
['GL/wglew.h',
{ 'prefix' : ['#include <windows.h>', '#include <GL/glew.h>'],
'args' : [contrib_inc_args] }],
@@ -347,7 +353,7 @@ windows_version_test = '''
endforeach
# Check for HAVE_PROCESS_MITIGATION_IMAGE_LOAD_POLICY type
- if cc.has_type('PROCESS_MITIGATION_IMAGE_LOAD_POLICY', prefix: '#include <winnt.h>')
+ if cc.has_type('PROCESS_MITIGATION_IMAGE_LOAD_POLICY', prefix: '#include <windows.h>')
cdata.set('HAVE_PROCESS_MITIGATION_IMAGE_LOAD_POLICY', 1)
endif
@@ -441,8 +447,7 @@ ucrt_version_test = '''
if get_option('winstore_app')
have_win_store = true
windowsappcompat_lib = cc.find_library('windowsappcompat')
- # TODO: enable when meson 0.63 is required
- # add_project_dependencies(windowsappcompat_lib, language: ['c', 'cpp'])
+ add_project_dependencies(windowsappcompat_lib, language: ['c', 'cpp'])
else
have_win_desktop = true
endif
@@ -981,7 +986,9 @@ cdata.set_quoted('PKGDATADIR', pkgdatadir_path)
cdata.set_quoted('LOCALEDIR', localedir_path)
# Enable stream outputs
-cdata.set('ENABLE_SOUT', get_option('stream_outputs'))
+if get_option('stream_outputs')
+ cdata.set('ENABLE_SOUT', 1)
+endif
# Enable VLM
if get_option('videolan_manager')
@@ -993,10 +1000,14 @@ endif
# Allow running as root
# (useful for people running on embedded platforms)
-cdata.set('ALLOW_RUN_AS_ROOT', get_option('run_as_root'))
+if get_option('run_as_root')
+ cdata.set('ALLOW_RUN_AS_ROOT', 1)
+endif
# Optimize for memory usage vs speed
-cdata.set('OPTIMIZE_MEMORY', get_option('optimize_memory'))
+if get_option('optimize_memory')
+ cdata.set('OPTIMIZE_MEMORY', 1)
+endif
# Allow binary package maintainer to pass a custom string
# to avoid cache problem
@@ -1046,11 +1057,6 @@ if flex.found() and bison.found()
arguments: ['-o', '@OUTPUT@', '@INPUT@'])
endif
-# Generate config.h
-configure_file(input: 'config.h.meson',
- output: 'config.h',
- configuration: cdata)
-
# Some missing functions are implemented in compat
subdir('compat')
@@ -1069,6 +1075,11 @@ subdir('bin')
# VLC plugins
subdir('modules')
+# Generate config.h
+configure_file(input: 'config.h.meson',
+ output: 'config.h',
+ configuration: cdata)
+
if (get_option('tests').allowed())
# Integration and non-regression tests, some unittest are there too but the
# modules/, src/ and lib/ folders should be favoured for those.
=====================================
meson_options.txt
=====================================
@@ -640,6 +640,36 @@ option('harfbuzz',
value: 'auto',
description: 'Harfbuzz support')
+option('d3d11va',
+ type: 'feature',
+ value: 'auto',
+ description: 'Direct3D11 avcodec support')
+
+option('dxva2',
+ type: 'feature',
+ value: 'auto',
+ description: 'DXVA2 avcodec support')
+
+option('amf_scaler',
+ type: 'feature',
+ value: 'auto',
+ description: 'AMF HQScaler support')
+
+option('amf_frc',
+ type: 'feature',
+ value: 'auto',
+ description: 'AMF Frame Doubler support')
+
+option('amf_vqenhancer',
+ type: 'feature',
+ value: 'auto',
+ description: 'AMF VQ Enhancer support')
+
+option('directx',
+ type: 'feature',
+ value: 'auto',
+ description: 'DirectX support')
+
# TODO: Missing live555
# TODO: Missing v4l2
# TODO: Missing nvdec
@@ -651,12 +681,9 @@ option('harfbuzz',
# TODO: Missing gst-decode
# TODO: Missing merge-ffmpeg
# TODO: Missing libva
-# TODO: Missing dxva2
-# TODO: Missing d3d11va
# TODO: Missing tremor
# TODO: Missing x26410b
# TODO: Missing vdpau
-# TODO: Missing directx
# TODO: Missing kva
# TODO: Missing mmal
# TODO: Missing sndio
=====================================
modules/access/meson.build
=====================================
@@ -288,7 +288,7 @@ endif
libbluray_dep = dependency('libbluray', version: '>= 1.1.0', required: get_option('bluray'))
if libbluray_dep.found()
vlc_modules += {
- 'name' : 'bluray',
+ 'name' : 'libbluray',
'sources' : files('bluray.c'),
'dependencies' : [libbluray_dep]
}
=====================================
modules/access/screen/meson.build
=====================================
@@ -20,19 +20,21 @@ if get_option('screen').allowed()
screen_link_with = []
if host_system == 'windows'
+ screen_name = 'screen_win'
screen_files += files('win32.c', 'dxgi.cpp')
gdi32_dep = cc.find_library('gdi32')
screen_deps += [gdi32_dep, cc.find_library('d3d11')]
screen_cppargs += libcom_cppflags
screen_link_with += d3d11_common_lib
else
+ screen_name = 'screen'
screen_files += files('mac.c')
applicationservices_dep = dependency('ApplicationServices', required: true)
screen_deps += [applicationservices_dep]
endif
vlc_modules += {
- 'name' : 'screen',
+ 'name' : screen_name,
'sources' : screen_files,
'dependencies' : screen_deps,
'cpp_args' : screen_cppargs,
=====================================
modules/access_output/meson.build
=====================================
@@ -39,7 +39,7 @@ endif
# HTTP PUT
vlc_modules += {
- 'name' : 'access_output_http_put',
+ 'name' : 'access_http_put',
'sources' : files('http-put.c'),
'include_directories' : include_directories('../access/http'),
'link_with' : [vlc_http_lib]
=====================================
modules/codec/meson.build
=====================================
@@ -261,11 +261,13 @@ vlc_modules += {
# aribsub
aribb24_dep = dependency('aribb24', version: '>= 1.0.1', required: get_option('aribsub'))
+if aribb24_dep.found()
+ cdata.set('HAVE_ARIBB24', 1)
+endif
vlc_modules += {
'name' : 'aribsub',
'sources' : files('arib/aribsub.c'),
'dependencies' : [aribb24_dep],
- 'cpp_args' : ['-DHAVE_ARIBB24'],
'enabled' : aribb24_dep.found()
}
@@ -605,33 +607,7 @@ vlc_modules += {
libva_dep.found()
}
-
if host_system == 'windows'
- d3d11_common_lib = static_library('d3d11_common',
- files(
- '../video_chroma/d3d11_fmt.cpp',
- '../video_chroma/dxgi_fmt.c',
- ),
- include_directories: [vlc_include_dirs],
- cpp_args : libcom_cppflags,
- pic: true,
- install: false,
- dependencies: [
- cc.find_library('dxguid'),
- cc.find_library('wbemuuid'),
- cc.find_library('uuid'),
- ]
- )
- d3d9_common_lib = static_library('d3d9_common',
- files(
- '../video_chroma/d3d9_fmt.c',
- '../video_chroma/dxgi_fmt.c',
- ),
- include_directories: [vlc_include_dirs],
- pic: true,
- install: false
- )
-
mft_deps = [ cc.find_library('mfplat'), cc.find_library('d3d11') ]
vlc_modules += {
'name' : 'mft',
@@ -647,8 +623,67 @@ if host_system == 'windows'
'../packetizer/hevc_nal.c'
),
'link_with' : [ d3d11_common_lib ],
+ 'cpp_args' : libcom_cppflags,
'dependencies' : mft_deps
}
+
+ if (get_option('d3d11va').
+ enable_auto_if(cc.check_header('libavcodec/d3d11va.h', args: [contrib_inc_args]))
+ .allowed())
+ cdata.set('HAVE_LIBAVCODEC_D3D11VA_H', 1)
+ vlc_modules += {
+ 'name' : 'd3d11va',
+ 'sources' : files(
+ 'avcodec/d3d11va.c',
+ 'avcodec/directx_va.c',
+ 'avcodec/va_surface.c',
+ '../packetizer/h264_nal.c',
+ '../packetizer/hevc_nal.c',
+ 'avcodec/dxva_blocklist.c',
+ ),
+ 'cpp_args' : libcom_cppflags,
+ 'link_with' : [ d3d11_common_lib ],
+ 'include_directories' : [
+ vlc_include_dirs,
+ include_directories('avcodec')
+ ],
+ 'dependencies' : [avcodec_dep, avutil_dep],
+ }
+ endif
+
+ if (get_option('dxva2').
+ enable_auto_if(cc.check_header('libavcodec/dxva2.h', args: [contrib_inc_args]))
+ .allowed())
+ cdata.set('HAVE_LIBAVCODEC_DXVA2_H', 1)
+ vlc_modules += {
+ 'name' : 'dxva2',
+ 'sources' : files(
+ 'avcodec/dxva2.c',
+ 'avcodec/directx_va.c',
+ 'avcodec/va_surface.c',
+ '../packetizer/h264_nal.c',
+ '../packetizer/hevc_nal.c',
+ 'avcodec/dxva_blocklist.c',
+ ),
+ 'link_with' : [ d3d9_common_lib ],
+ 'include_directories' : [
+ vlc_include_dirs,
+ include_directories('avcodec')
+ ],
+ 'dependencies' : [avcodec_dep, avutil_dep],
+ }
+ endif
+
+ vlc_modules += {
+ 'name' : 'dmo',
+ 'sources' : files(
+ 'dmo/dmo.c',
+ 'dmo/buffer.c',
+ ),
+ 'dependencies': [
+ cc.find_library('uuid'),
+ ]
+ }
endif
# OpenMAX IL codec
@@ -762,16 +797,19 @@ vlc_modules += {
vpx_alpha_sources = files('vpx_alpha.c')
vpx_alpha_with = [ ]
vpx_alpha_deps = [ ]
+vpx_alpha_cxx_args = [ ]
if host_system == 'windows'
vpx_alpha_sources += files('alpha_d3d11.cpp')
vpx_alpha_with += [ d3d11_common_lib ]
vpx_alpha_deps += [ cc.find_library('d3d11') ]
+ vpx_alpha_cxx_args += libcom_cppflags
endif
vlc_modules += {
'name' : 'vpx_alpha',
'sources' : vpx_alpha_sources,
'link_with' : vpx_alpha_with,
'dependencies' : [vpx_alpha_deps],
+ 'cpp_args' : vpx_alpha_cxx_args,
}
# libaom AV1 codec
=====================================
modules/demux/meson.build
=====================================
@@ -339,11 +339,6 @@ vlc_modules += {
aribb24_dep = dependency('aribb24', version: '>= 1.0.1', required: get_option('aribb24'))
libdvbpsi_dep = dependency('libdvbpsi', version: '>= 1.2.0', required: get_option('libdvbpsi'))
if libdvbpsi_dep.found()
- arrib24_define = []
- if aribb24_dep.found()
- arrib24_define += '-DHAVE_ARIBB24=1'
- endif
-
vlc_modules += {
'name' : 'ts',
'sources' : files(
@@ -370,7 +365,6 @@ if libdvbpsi_dep.found()
'../codec/opus_header.c',
),
'dependencies' : [libdvbpsi_dep, aribb24_dep],
- 'c_args' : arrib24_define
}
endif
=====================================
modules/hw/d3d11/meson.build
=====================================
@@ -0,0 +1,20 @@
+#
+# Direct3d11 modules
+#
+
+if get_option('directx').allowed()
+ vlc_modules += {
+ 'name' : 'direct3d11_filters',
+ 'sources' : files(
+ 'd3d11_filters.c',
+ 'd3d11_deinterlace.c',
+ 'd3d11_decoder.cpp',
+ 'd3d11_device.c',
+ 'd3d11_surface.c',
+ 'd3d11_processor.c',
+ ),
+ 'link_with' : [ d3d11_common_lib, chroma_copy_lib, deinterlacecommon_lib ],
+ 'cpp_args' : libcom_cppflags,
+ 'include_directories' : [vlc_include_dirs],
+ }
+endif
=====================================
modules/hw/d3d9/meson.build
=====================================
@@ -0,0 +1,17 @@
+#
+# Direct3d9 modules
+#
+
+if get_option('directx').allowed()
+ vlc_modules += {
+ 'name' : 'direct3d9_filters',
+ 'sources' : files(
+ 'd3d9_filters.c',
+ 'dxva2_deinterlace.c',
+ 'dxa9.c',
+ 'd3d9_device.c',
+ ),
+ 'link_with' : [ d3d9_common_lib, chroma_copy_lib, deinterlacecommon_lib ],
+ 'include_directories' : [vlc_include_dirs],
+ }
+endif
=====================================
modules/hw/meson.build
=====================================
@@ -0,0 +1,9 @@
+# Hardware/GPU modules
+
+if host_system == 'windows'
+ # d3d11 interface module
+ subdir('d3d11')
+
+ # d3d9 interface module
+ subdir('d3d9')
+endif
=====================================
modules/meson.build
=====================================
@@ -212,6 +212,16 @@ vlc_json_lib = static_library('vlc_json',
pic: true
)
+# deinterlace common helper lib
+deinterlacecommon_lib = static_library(
+ 'deinterlace_common',
+ files('video_filter/deinterlace/common.c'),
+ include_directories: [vlc_include_dirs],
+ pic: true,
+ install: false
+)
+
+
# Array that holds all enabled VLC module dicts
vlc_modules = []
vlc_rust_modules = []
@@ -243,6 +253,9 @@ subdir('audio_output')
# control modules
subdir('control')
+# hardware modules
+subdir('hw')
+
# gui modules
subdir('gui')
=====================================
modules/video_chroma/meson.build
=====================================
@@ -109,6 +109,35 @@ vlc_modules += {
'sources' : files('orient.c'),
}
+d3d11_common_lib = []
+if host_system == 'windows'
+ d3d11_common_lib = static_library('d3d11_common',
+ files(
+ 'd3d11_fmt.cpp',
+ 'dxgi_fmt.c',
+ ),
+ include_directories: [vlc_include_dirs],
+ cpp_args : libcom_cppflags,
+ pic: true,
+ install: false,
+ dependencies: [
+ cc.find_library('dxguid'),
+ cc.find_library('wbemuuid'),
+ cc.find_library('uuid'),
+ cc.find_library('d3d11'),
+ ]
+ )
+ d3d9_common_lib = static_library('d3d9_common',
+ files(
+ 'd3d9_fmt.c',
+ 'dxgi_fmt.c',
+ ),
+ include_directories: [vlc_include_dirs],
+ pic: true,
+ install: false
+ )
+endif
+
# CVPX chroma converter
# TODO: Set minimum versions for tvOS and iOS
vlc_modules += {
=====================================
modules/video_filter/meson.build
=====================================
@@ -36,6 +36,36 @@ vlc_modules += {
'sources' : files('antiflicker.c')
}
+if host_system == 'windows'
+ vlc_modules += {
+ 'name' : 'amf_frc',
+ 'sources' : files(
+ 'amf_frc.c',
+ '../hw/amf/amf_helper.c',
+ ),
+ 'link_with': [ d3d11_common_lib ],
+ 'dependencies': [ contrib_dep, cc.find_library('d3d11')],
+ 'enabled' : get_option('amf_frc').allowed() \
+ and cc.find_library('d3d11').found() \
+ and cc.check_header('AMF/core/PropertyStorage.h', args: [contrib_inc_args]) \
+ and cc.check_header('AMF/components/FRC.h', args: [contrib_inc_args]),
+ }
+
+ vlc_modules += {
+ 'name' : 'amf_vqenhancer',
+ 'sources' : files(
+ 'amf_vqenhancer.c',
+ '../hw/amf/amf_helper.c',
+ ),
+ 'link_with': [ d3d11_common_lib ],
+ 'dependencies': [ contrib_dep, cc.find_library('d3d11') ],
+ 'enabled' : get_option('amf_vqenhancer').allowed() \
+ and cc.find_library('d3d11').found() \
+ and cc.check_header('AMF/core/PropertyStorage.h', args: [contrib_inc_args]) \
+ and cc.check_header('AMF/components/VQEnhancer.h', args: [contrib_inc_args]),
+ }
+endif
+
# Ball filter
vlc_modules += {
'name' : 'ball',
@@ -259,15 +289,6 @@ vlc_modules += {
'enabled' : host_system == 'darwin',
}
-# deinterlace common helper lib
-deinterlacecommon_lib = static_library(
- 'deinterlace_common',
- files('deinterlace/common.c'),
- include_directories: [vlc_include_dirs],
- pic: true,
- install: false
-)
-
# deinterlace filter
vlc_modules += {
'name' : 'deinterlace',
=====================================
modules/video_output/libplacebo/meson.build
=====================================
@@ -1,7 +1,7 @@
# Libplacebo-based video outputs
vlc_modules += {
- 'name' : 'libplacebo',
+ 'name' : 'placebo',
'sources' : files('instance.c', 'display.c'),
'link_with' : [libplacebo_utils],
'dependencies' : [libplacebo_dep],
@@ -14,7 +14,7 @@ vulkan_dep = dependency('vulkan',
if vulkan_dep.found()
vlc_modules += {
- 'name' : 'libplacebo_vk',
+ 'name' : 'placebo_vk',
'sources' : files('../vulkan/platform.c', 'instance_vulkan.c'),
'link_with' : [libplacebo_utils],
'dependencies' : [libplacebo_dep],
@@ -24,7 +24,7 @@ endif
## OpenGL
if opengl_dep.found()
vlc_modules += {
- 'name' : 'libplacebo_gl',
+ 'name' : 'placebo_gl',
'sources' : files('instance_opengl.c'),
'link_with' : [libplacebo_utils],
'dependencies' : [libplacebo_dep],
@@ -33,7 +33,7 @@ endif
if opengles2_dep.found()
vlc_modules += {
- 'name' : 'libplacebo_gles2',
+ 'name' : 'placebo_gles2',
'sources' : files('instance_opengl.c'),
'link_with' : [libplacebo_utils],
'c_args' : '-DUSE_OPENGL_ES2',
=====================================
modules/video_output/opengl/meson.build
=====================================
@@ -28,7 +28,7 @@ if opengl_dep.found() and not (have_ios or have_tvos)
])
vlc_modules += {
- 'name' : 'libgl',
+ 'name' : 'gl',
'sources' : [
files('display.c'),
opengl_vout_commonsources
@@ -61,7 +61,7 @@ if host_system in ['darwin', 'android'] or opengl_dep.found() or opengles2_dep.f
endif
vlc_modules += {
- 'name' : 'interop_sw',
+ 'name' : 'glinterop_sw',
'sources' : files('interop_sw.c'),
'dependencies' : interop_sw_deps,
'c_args' : interop_sw_cargs,
@@ -74,7 +74,7 @@ if have_win_desktop
opengl32_lib = cc.find_library('opengl32', required: false)
if opengl32_lib.found() and not missing_win_glew
vlc_modules += {
- 'name' : 'interop_dxva2',
+ 'name' : 'glinterop_dxva2',
'sources' : files('interop_dxva2.c'),
'c_args' : [ contrib_inc_args ],
'dependencies' : [ opengl32_lib ],
=====================================
modules/video_output/win32/meson.build
=====================================
@@ -22,26 +22,39 @@ else
cc.find_library('user32')
]
endif
+if get_option('amf_scaler').allowed()
+ if cc.check_header('AMF/core/PropertyStorage.h', args: [contrib_inc_args]) \
+ and cc.check_header('AMF/components/HQScaler.h', args: [contrib_inc_args])
+ cdata.set('HAVE_AMF_SCALER', 1)
+ d3d11_sources += files('../../hw/amf/amf_helper.c')
+ d3d11_cxxargs += contrib_inc_args
+ d3d11_cargs += contrib_inc_args
+ endif
+endif
-vlc_modules += {
- 'name' : 'direct3d11',
- 'sources' : d3d11_sources,
- 'link_with' : d3d11_link_with,
- 'c_args' : d3d11_cargs,
- 'cpp_args' : d3d11_cxxargs,
- 'dependencies' : d3d11_deps
-}
-
-if have_win_desktop
- # Direct3D9 video output
+if get_option('directx').allowed()
vlc_modules += {
- 'name' : 'direct3d9',
- 'sources' : files('direct3d9.c', 'common.c', 'events.c', 'sensors.cpp', 'win32touch.c'),
- 'link_with' : [ d3d9_common_lib, chroma_copy_lib ],
- 'dependencies' : [
- cc.find_library('user32')
- ]
+ 'name' : 'direct3d11',
+ 'sources' : d3d11_sources,
+ 'link_with' : d3d11_link_with,
+ 'c_args' : d3d11_cargs,
+ 'cpp_args' : d3d11_cxxargs,
+ 'dependencies' : d3d11_deps
}
+endif
+
+if have_win_desktop
+ if get_option('directx').allowed()
+ # Direct3D9 video output
+ vlc_modules += {
+ 'name' : 'direct3d9',
+ 'sources' : files('direct3d9.c', 'common.c', 'events.c', 'sensors.cpp', 'win32touch.c'),
+ 'link_with' : [ d3d9_common_lib, chroma_copy_lib ],
+ 'dependencies' : [
+ cc.find_library('user32')
+ ]
+ }
+ endif
# GDI video output
vlc_modules += {
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/9fa2f2d31ec9acf1be20545b8177a88240baa65b...162e77f9cd927fdcf93a76dc410755b04f5f2e01
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/9fa2f2d31ec9acf1be20545b8177a88240baa65b...162e77f9cd927fdcf93a76dc410755b04f5f2e01
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list