[vlc-commits] [Git][videolan/vlc][master] 15 commits: meson: add waveout module
Steve Lhomme (@robUx4)
gitlab at videolan.org
Wed Nov 13 08:12:01 UTC 2024
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
652d7fe0 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add waveout module
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
da039dcf by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add speex codec
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
3d956da0 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add SFTP module
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
f2456fd1 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add access_mms module
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
9a71793f by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add DShow access module
Co-authored-by: Alexandre Janniaux <ajanni at videolabs.io>
- - - - -
c9696e1c by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: match the VLC copyright year with autotools
2024 since 3a174676a3526236f964bec7f635c71076d77c3f
- - - - -
a96cd4b6 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: enable code that relies on HAVE_CSS
ie codec/webvtt/subsvtt.c
- - - - -
ba8fccf9 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: create hxxxhelper_lib to share with other modules
- - - - -
ec77bbe5 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add muxer modules
- - - - -
5008feb3 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add hls stream output module
- - - - -
5008eaf8 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: add hxxhelper test decoder module
- - - - -
720efbae by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: quote the PACKAGE_VERSION_DEV define
as with autotools
- - - - -
fc3b3344 by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: always define _FILE_OFFSET_BITS to 64
As in autotools. It's not added to cdata, just as with autotools.
- - - - -
ff134b5b by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: ss_family detection
It's a field of struct sockaddr_storage, not a structure.
Tie its existence to sockaddr_storage, just as in autotools.
- - - - -
13237cdf by Steve Lhomme at 2024-11-13T07:58:44+00:00
meson: only check sockaddr_storage one per platforms
The headers are not the same for _WIN32 and other paltforms.
We only check once, as with autotools.
- - - - -
11 changed files:
- config.h.meson
- meson.build
- meson_options.txt
- modules/access/meson.build
- modules/audio_output/meson.build
- modules/codec/meson.build
- modules/meson.build
- + modules/mux/meson.build
- + modules/stream_out/hls/meson.build
- modules/stream_out/meson.build
- test/modules/meson.build
Changes:
=====================================
config.h.meson
=====================================
@@ -98,6 +98,9 @@
standard. */
#mesondefine HAVE_BROKEN_QSORT_R
+/* Define if CSS engine is built */
+#mesondefine HAVE_CSS
+
/* Define to 1 if C++ headers define locale_t */
#mesondefine HAVE_CXX_LOCALE_T
@@ -590,7 +593,7 @@
// #undef ZVBI_COMPILED
/* Define to 64 for large files support. */
-#mesondefine _FILE_OFFSET_BITS
+#define _FILE_OFFSET_BITS 64
/* Alias fdatasync() to fsync() if missing. */
#mesondefine fdatasync
=====================================
meson.build
=====================================
@@ -3,7 +3,7 @@ project('VLC', ['c', 'cpp'],
default_options: ['c_std=gnu17', 'cpp_std=c++17'],
meson_version: '>=1.1.0')
-vlc_copyright_years = '1996-2018'
+vlc_copyright_years = '1996-2024'
vlc_version_codename = 'Otto Chriek'
# LibVLC library (ABI) version
@@ -865,19 +865,16 @@ endif
# Check for struct sockaddr_storage type
# Define it to `sockaddr` if missing
-have_sockaddr_storage = cc.has_type('struct sockaddr_storage', prefix: '#include <sys/socket.h>')
-
-if not have_sockaddr_storage
- have_sockaddr_storage = cc.has_type('struct sockaddr_storage', prefix: '#include <winsock2.h>')
+sockaddr_prefix = '#include <sys/types.h>\n'
+if host_system == 'windows'
+ sockaddr_prefix += '#include <winsock2.h>'
+else
+ sockaddr_prefix += '#include <sys/socket.h>'
endif
+have_sockaddr_storage = cc.has_type('struct sockaddr_storage', prefix: sockaddr_prefix)
if not have_sockaddr_storage
cdata.set('sockaddr_storage', 'sockaddr')
-endif
-
-# Check for struct ss_family type
-# Define it to `sa_family` if missing
-if not cc.has_type('struct ss_family', prefix: '#include <sys/socket.h>')
cdata.set('ss_family', 'sa_family')
endif
@@ -947,7 +944,7 @@ cdata.set('PACKAGE_VERSION_MAJOR', vlc_version_major)
cdata.set('PACKAGE_VERSION_MINOR', vlc_version_minor)
cdata.set('PACKAGE_VERSION_REVISION', vlc_version_revision)
cdata.set('PACKAGE_VERSION_EXTRA', vlc_version_extra)
-cdata.set('PACKAGE_VERSION_DEV', vlc_version_type)
+cdata.set_quoted('PACKAGE_VERSION_DEV', vlc_version_type)
cdata.set('LIBVLC_ABI_MAJOR', libvlc_abi_version_major)
cdata.set('LIBVLC_ABI_MINOR', libvlc_abi_version_minor)
@@ -1015,6 +1012,10 @@ if get_option('binary_version') != ''
cdata.set_quoted('DISTRO_VERSION', get_option('binary_version'))
endif
+if get_option('css_engine').allowed()
+ cdata.set('HAVE_CSS', 1)
+endif
+
# Font options
if get_option('default_font_path') != ''
=====================================
meson_options.txt
=====================================
@@ -340,6 +340,11 @@ option('soxr',
value : 'auto',
description : 'Enable/disable soxr support')
+option('speex',
+ type : 'feature',
+ value : 'auto',
+ description : 'Enable/disable speex support')
+
option('speexdsp',
type : 'feature',
value : 'auto',
@@ -670,6 +675,16 @@ option('directx',
value: 'auto',
description: 'DirectX support')
+option('libssh2',
+ type: 'feature',
+ value: 'auto',
+ description: 'libssh2 support')
+
+option('sftp',
+ type: 'feature',
+ value: 'auto',
+ description: 'SFTP file transfer via libssh2')
+
# TODO: Missing live555
# TODO: Missing v4l2
# TODO: Missing nvdec
=====================================
modules/access/meson.build
=====================================
@@ -338,6 +338,18 @@ if host_system == 'windows'
'dependencies' : [strmiids_lib],
'cpp_args' : libcom_cppflags
}
+
+ vlc_modules += {
+ 'name' : 'dshow',
+ 'sources' : files(
+ 'dshow/dshow.cpp',
+ 'dshow/filter.cpp',
+ 'dshow/crossbar.cpp',
+ ),
+ 'dependencies' : [ksuser_lib, strmiids_lib],
+ 'cpp_args' : libcom_cppflags,
+ 'enabled' : ksuser_lib.found() and have_win_desktop
+ }
endif
@@ -350,6 +362,15 @@ vlc_modules += {
'dependencies' : [socket_libs]
}
+# SFTP
+libssh2_dep = dependency('libssh2', required: get_option('libssh2'))
+vlc_modules += {
+ 'name' : 'sftp',
+ 'sources' : files('sftp.c'),
+ 'dependencies' : [libssh2_dep],
+ 'enabled': libssh2_dep.found() and get_option('sftp').allowed(),
+}
+
# Gopher
vlc_modules += {
'name' : 'gopher',
@@ -417,6 +438,18 @@ vlc_modules += {
'dependencies' : [socket_libs, threads_dep]
}
+# MMS
+vlc_modules += {
+ 'name' : 'access_mms',
+ 'sources' : files(
+ 'mms/mms.c',
+ 'mms/mmsh.c',
+ 'mms/mmstu.c',
+ 'mms/buffer.c',
+ 'mms/asf.c',
+ ),
+ 'dependencies' : [socket_libs]
+}
## Misc
=====================================
modules/audio_output/meson.build
=====================================
@@ -120,4 +120,11 @@ vlc_modules += {
.require(host_system == 'windows', error_message: 'WASAPI requires Windows')
.allowed() and ksuser_lib.found()
}
+
+vlc_modules += {
+ 'name' : 'waveout',
+ 'sources' : files('waveout.c'),
+ 'dependencies' : [cc.find_library('winmm')],
+ 'enabled' : have_win_desktop,
+}
endif
=====================================
modules/codec/meson.build
=====================================
@@ -475,6 +475,15 @@ vlc_modules += {
'enabled' : daaladec_dep.found() and daalaenc_dep.found(),
}
+# Speex codec plugin
+speex_dep = dependency('speex', version: '>= 1.0.5', required: get_option('speex'))
+vlc_modules += {
+ 'name' : 'speex',
+ 'sources' : files('speex.c'),
+ 'dependencies' : [speex_dep],
+ 'enabled' : speex_dep.found(),
+}
+
# Vorbis codec
vorbis_dep = dependency('vorbis', 'Vorbis', version: '>= 1.1', required: get_option('vorbis'))
vorbisenc_dep = dependency('vorbisenc', version: '>= 1.1', required: get_option('vorbis'))
@@ -510,12 +519,6 @@ if host_system == 'darwin'
'videotoolbox/dpb.h',
'videotoolbox/pacer.c',
'videotoolbox/pacer.h',
- 'hxxx_helper.c',
- '../packetizer/hxxx_nal.c',
- '../packetizer/hxxx_sei.c',
- '../packetizer/h264_slice.c',
- '../packetizer/h264_nal.c',
- '../packetizer/hevc_nal.c'
),
'dependencies' : [
frameworks['VideoToolbox'],
@@ -523,19 +526,13 @@ if host_system == 'darwin'
frameworks['CoreMedia'],
frameworks['CoreVideo'],
],
- 'link_with' : [libvlc_vtutils],
+ 'link_with' : [hxxxhelper_lib, libvlc_vtutils],
}
vlc_modules += {
'name' : 'videotoolbox_enc',
'sources' : files(
'videotoolbox/encoder.c',
- 'hxxx_helper.c',
- '../packetizer/hxxx_nal.c',
- '../packetizer/hxxx_sei.c',
- '../packetizer/h264_slice.c',
- '../packetizer/h264_nal.c',
- '../packetizer/hevc_nal.c'
),
'dependencies' : [
frameworks['VideoToolbox'],
@@ -543,7 +540,7 @@ if host_system == 'darwin'
frameworks['CoreMedia'],
frameworks['CoreVideo'],
],
- 'link_with' : [libvlc_vtutils],
+ 'link_with' : [hxxxhelper_lib, libvlc_vtutils],
}
endif
@@ -615,14 +612,8 @@ if host_system == 'windows'
'mft.cpp',
'mft_d3d.cpp',
'mft_d3d11.cpp',
- 'hxxx_helper.c',
- '../packetizer/hxxx_nal.c',
- '../packetizer/hxxx_sei.c',
- '../packetizer/h264_slice.c',
- '../packetizer/h264_nal.c',
- '../packetizer/hevc_nal.c'
),
- 'link_with' : [ d3d11_common_lib ],
+ 'link_with' : [ hxxxhelper_lib, d3d11_common_lib ],
'cpp_args' : libcom_cppflags,
'dependencies' : mft_deps
}
@@ -851,6 +842,13 @@ vlc_modules += {
'enabled' : dav1d_dep.found(),
}
+# tests
+vlc_modules += {
+ 'name': 'hxxxhelper_testdec',
+ 'sources': files('hxxx_helper_testdec.c'),
+ 'link_with' : [hxxxhelper_lib],
+ 'include_directories': [vlc_include_dirs],
+}
## Hardware encoders
=====================================
modules/meson.build
=====================================
@@ -197,6 +197,22 @@ rsvg_dep = dependency('librsvg-2.0', version: '>= 2.9.0', required: get_option('
# Rust support
cargo_bin = find_program('cargo', required: get_option('rust'))
+# hxxx common helper lib
+hxxxhelper_lib = static_library(
+ 'hxxxhelper',
+ files(
+ 'codec/hxxx_helper.c',
+ 'packetizer/hxxx_nal.c',
+ 'packetizer/hxxx_sei.c',
+ 'packetizer/h264_slice.c',
+ 'packetizer/h264_nal.c',
+ 'packetizer/hevc_nal.c',
+ ),
+ include_directories: [vlc_include_dirs],
+ pic: true,
+ install: false
+)
+
# JSON library
json_bison_files = bison_gen.process('demux/json/grammar.y')
json_lex_files = flex_gen.process('demux/json/lexicon.l')
@@ -304,6 +320,11 @@ subdir('visualization')
# lua module
subdir('lua')
+# muxer modules
+if get_option('stream_outputs')
+ subdir('mux')
+endif
+
# Qt check executable
# This has to be declared here as it needs to end up
# in the modules folder, not in gui/qt/ subfolder as
=====================================
modules/mux/meson.build
=====================================
@@ -0,0 +1,66 @@
+# muxer modules
+
+vlc_modules += {
+ 'name': 'mux_dummy',
+ 'sources': files('dummy.c'),
+}
+
+vlc_modules += {
+ 'name': 'mux_asf',
+ 'sources': files('asf.c'),
+}
+
+vlc_modules += {
+ 'name': 'mux_avi',
+ 'sources': files('avi.c'),
+}
+
+vlc_modules += {
+ 'name': 'mux_mp4',
+ 'sources': files(
+ 'mp4/mp4.c',
+ 'mp4/libmp4mux.c',
+ 'extradata.c',
+ '../packetizer/av1_obu.c'),
+ 'link_with': [hxxxhelper_lib],
+}
+
+vlc_modules += {
+ 'name': 'mux_mpjpeg',
+ 'sources': files('mpjpeg.c'),
+}
+
+vlc_modules += {
+ 'name': 'mux_ogg',
+ 'sources': files('ogg.c'),
+ 'dependencies': [ ogg_dep ],
+ 'enabled': ogg_dep.found(),
+}
+
+vlc_modules += {
+ 'name': 'mux_ps',
+ 'sources': files(
+ 'mpeg/pes.c',
+ 'mpeg/repack.c',
+ 'mpeg/ps.c'),
+}
+
+vlc_modules += {
+ 'name': 'mux_ts',
+ 'sources': files(
+ 'mpeg/pes.c',
+ 'mpeg/repack.c',
+ 'mpeg/csa.c',
+ 'mpeg/tables.c',
+ 'mpeg/tsutil.c',
+ 'mpeg/ts.c',
+ ),
+ 'dependencies': [ libdvbpsi_dep ],
+ 'enabled': libdvbpsi_dep.found(),
+}
+
+vlc_modules += {
+ 'name': 'mux_wav',
+ 'sources': files('wav.c'),
+}
+
=====================================
modules/stream_out/hls/meson.build
=====================================
@@ -0,0 +1,14 @@
+# HLS Stream output modules
+
+vlc_modules += {
+ 'name' : 'stream_out_hls',
+ 'sources' : files(
+ 'hls.c',
+ 'variant_maps.c',
+ 'storage.c',
+ 'segments.c',
+ 'codecs.c',
+ 'subtitles_segmenter.c'
+ ),
+ 'link_with' : [hxxxhelper_lib],
+}
=====================================
modules/stream_out/meson.build
=====================================
@@ -149,3 +149,6 @@ vlc_modules += {
# Chromecast module
subdir('chromecast')
+
+# HLS module
+subdir('hls')
=====================================
test/modules/meson.build
=====================================
@@ -92,15 +92,9 @@ vlc_tests += {
vlc_tests += {
'name' : 'test_modules_codec_hxxx_helper',
- 'sources' : files(
- 'codec/hxxx_helper.c',
- '../../modules/codec/hxxx_helper.c',
- '../../modules/packetizer/hxxx_nal.c',
- '../../modules/packetizer/h264_slice.c',
- '../../modules/packetizer/h264_nal.c',
- '../../modules/packetizer/hevc_nal.c'),
+ 'sources' : files('codec/hxxx_helper.c'),
'suite' : ['modules', 'test_modules'],
- 'link_with' : [libvlc, libvlccore],
+ 'link_with' : [libvlc, libvlccore, hxxxhelper_lib],
'module_depends' : vlc_plugins_targets.keys()
}
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3416bca8f7699472d2857cb002cbd3de757462ab...13237cdf511987958970a3a33c3806407348c313
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/3416bca8f7699472d2857cb002cbd3de757462ab...13237cdf511987958970a3a33c3806407348c313
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