[vlc-commits] [Git][videolan/vlc][master] 6 commits: meson: add DSM access module

Steve Lhomme (@robUx4) gitlab at videolan.org
Tue Nov 19 14:41:54 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
d47a7d98 by Alexandre Janniaux at 2024-11-19T14:11:44+00:00
meson: add DSM access module

Co-authored-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
5799e79a by Alexandre Janniaux at 2024-11-19T14:11:44+00:00
meson: add live555 access module

The version check is simplified compared to the ancient code in configure.ac.
The pkg-config support was added in 16bf702b95d00888edf28752f732229841b8e137 (2013).

The version number check is based on 768cafce8ddda08d12685319381b17f548e4c8e3.
VLC 3 uses 2016.11.28.

Co-authored-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
70bfbba4 by Alexandre Janniaux at 2024-11-19T14:11:44+00:00
meson: add decklink access module

Co-authored-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
abf56073 by Steve Lhomme at 2024-11-19T14:11:44+00:00
meson: add decklinkoutput module

- - - - -
0d25ac31 by Steve Lhomme at 2024-11-19T14:11:44+00:00
meson: add sdi stream output module

- - - - -
e053987d by Alexandre Janniaux at 2024-11-19T14:11:44+00:00
meson: add nfs access module

Co-authored-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -


4 changed files:

- meson_options.txt
- modules/access/meson.build
- modules/stream_out/meson.build
- modules/video_output/meson.build


Changes:

=====================================
meson_options.txt
=====================================
@@ -625,6 +625,16 @@ option('udev',
     value: 'auto',
     description: 'Linux udev services discovery')
 
+option('dsm',
+    type: 'feature',
+    value: 'auto',
+    description: 'SMB/CIFS access/sd support')
+
+option('live555',
+    type: 'feature',
+    value: 'auto',
+    description: 'RTSP input through live555')
+
 option('rist',
     type: 'feature',
     value: 'auto',
@@ -730,9 +740,17 @@ option('nvdec',
     value: 'auto',
     description: 'NVDEC decoder support')
 
-# TODO: Missing live555
+option('decklink',
+    type: 'feature',
+    value: 'auto',
+    description: 'DeckLink support')
+
+option('nfs',
+    type: 'feature',
+    value: 'auto',
+    description: 'support nfs protocol via libnfs')
+
 # TODO: Missing v4l2
-# TODO: Missing decklink
 # TODO: Missing rpi-omxil
 # TODO: Missing gst-decode
 # TODO: Missing merge-ffmpeg
@@ -755,6 +773,5 @@ option('nvdec',
 # TODO: Missing vsxu
 # TODO: Missing kwallet
 # TODO: Missing osx_notifications
-# TODO: Missing dsm
 # TODO: Missing asdcplib
 # TODO: Missing chromecast


=====================================
modules/access/meson.build
=====================================
@@ -8,6 +8,30 @@ vlc_modules += {
     'sources' : files('data.c')
 }
 
+decklink_dep = disabler()
+if get_option('decklink').allowed()
+decklink_cpp_args = []
+if host_system == 'windows'
+    decklink_cpp_args += libcom_cppflags
+endif
+# TODO allow providing a custom location for the DeckLink SDK
+if contrib_dir != ''
+    decklink_dep = declare_dependency(
+        link_args: '-L' + contrib_libdir,
+        compile_args: [f'-I at contrib_incdir@/decklink'])
+    if not cpp.check_header('DeckLinkAPI.h', dependencies: [ decklink_dep ])
+        decklink_dep = disabler()
+    endif
+endif
+vlc_modules += {
+    'name' : 'decklink',
+    'sources' : files('decklink.cpp', 'sdi.c', 'sdi.h', 'vlc_decklink.h'),
+    'dependencies' : [dl_lib, decklink_dep],
+    'cpp_args' : decklink_cpp_args,
+    'enabled' : decklink_dep.found(),
+}
+endif
+
 # Filesystem access module
 vlc_modules += {
     'name' : 'filesystem',
@@ -169,6 +193,18 @@ if (get_option('linsys')
     endif
 endif
 
+live555_dep = dependency('live555', version: '>= 2011.12.23', required: get_option('live555'))
+# TODO support without pkg-config
+vlc_modules += {
+    'name' : 'live555',
+    'sources' : files('live555.cpp', 'live555_dtsgen.h',
+                      'mms/asf.c', 'mms/asf.h',
+                      'mms/buffer.c', 'mms/buffer.h',
+                      '../codec/opus_header.c', '../codec/opus_header.h'),
+    'dependencies' : [live555_dep, socket_libs],
+    'enabled' : live555_dep.found(),
+}
+
 # Shared memory frame buffer capture
 vlc_modules += {
     'name' : 'shm',
@@ -353,9 +389,27 @@ if host_system == 'windows' and have_win_desktop
     }
 endif
 
+# vlc_access_cache helper lib
+vlc_access_cache_lib = static_library(
+    'vlc_access_cache',
+    files('cache.c',),
+    include_directories: [vlc_include_dirs],
+    pic: true,
+    install: false
+)
 
 ## Network stream access modules
 
+# Smb v1
+libdsm_dep = dependency('libdsm', version: '>= 0.2.0', required: get_option('dsm'))
+vlc_modules += {
+    'name' : 'dsm',
+    'sources' : files('dsm/access.c', 'dsm/sd.c', 'smb_common.h'),
+    'dependencies' : [libdsm_dep],
+    'link_with' : [vlc_access_cache_lib],
+    'enabled' : libdsm_dep.found(),
+}
+
 # FTP
 vlc_modules += {
     'name' : 'ftp',
@@ -389,6 +443,15 @@ vlc_modules += {
 # New HTTP(S)
 subdir('http')
 
+# Network file sharing
+nfs_dep = dependency('libnfs', version: '>= 1.10.0', required: get_option('nfs'))
+vlc_modules += {
+    'name' : 'nfs',
+    'sources' : files('nfs.c'),
+    'dependencies' : [nfs_dep, socket_libs],
+    'enabled' : nfs_dep.found(),
+}
+
 # TCP
 vlc_modules += {
     'name' : 'tcp',


=====================================
modules/stream_out/meson.build
=====================================
@@ -147,6 +147,36 @@ vlc_modules += {
     'enabled' : libchromaprint_dep.found(),
 }
 
+
+vlc_modules += {
+    'name' : 'stream_out_sdi',
+    'sources' : files(
+        'sdi/sdiout.cpp',
+        'sdi/sdiout.hpp',
+        'sdi/Ancillary.cpp',
+        'sdi/Ancillary.hpp',
+        'sdi/AES3Audio.cpp',
+        'sdi/AES3Audio.hpp',
+        'sdi/DBMHelper.cpp',
+        'sdi/DBMHelper.hpp',
+        'sdi/DBMSDIOutput.cpp',
+        'sdi/DBMSDIOutput.hpp',
+        'sdi/SDIAudioMultiplex.cpp',
+        'sdi/SDIAudioMultiplex.hpp',
+        'sdi/SDIGenerator.cpp',
+        'sdi/SDIGenerator.hpp',
+        'sdi/SDIOutput.cpp',
+        'sdi/SDIOutput.hpp',
+        'sdi/SDIStream.cpp',
+        'sdi/SDIStream.hpp',
+        'sdi/V210.cpp',
+        'sdi/V210.hpp'
+    ),
+    'dependencies' : [dl_lib, decklink_dep],
+    'cpp_args' : decklink_cpp_args,
+    'enabled' : decklink_dep.found(),
+}
+
 # Chromecast module
 subdir('chromecast')
 


=====================================
modules/video_output/meson.build
=====================================
@@ -93,6 +93,22 @@ vlc_modules += {
     'sources' : files('vgl.c')
 }
 
+vlc_modules += {
+    'name' : 'decklinkoutput',
+    'sources' : files('decklink.cpp',
+                    '../stream_out/sdi/Ancillary.cpp',
+                    '../stream_out/sdi/Ancillary.hpp',
+                    '../stream_out/sdi/DBMHelper.cpp',
+                    '../stream_out/sdi/DBMHelper.hpp',
+                    '../stream_out/sdi/SDIGenerator.cpp',
+                    '../stream_out/sdi/SDIGenerator.hpp',
+                    '../stream_out/sdi/V210.cpp',
+                    '../stream_out/sdi/V210.hpp'),
+    'dependencies' : [dl_lib, decklink_dep],
+    'cpp_args' : decklink_cpp_args,
+    'enabled' : decklink_dep.found(),
+}
+
 # Kernel Mode Setting
 drm_dep = dependency('libdrm', version: '>= 2.4.83', required: get_option('drm'))
 if drm_dep.found()



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/d0f9cb8d122fa707d90543f38f6c4e1e261bd057...e053987d940ccae7004ad7d6d74dd0429ec145fa

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/d0f9cb8d122fa707d90543f38f6c4e1e261bd057...e053987d940ccae7004ad7d6d74dd0429ec145fa
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