[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