Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/VLC/modules/video_output/   (VLC Media Plyer ©)  Datei vom 23.9.2026 mit Größe 9 kB image not shown  

Quelle  meson.build  Sprache: unbekannt

 
Spracherkennung für: .build vermutete Sprache: Python {Python[26] R[26] Shell[26]} [Methode: maximale Elemente, drei Dimensionen]

#
# Video output modules
#

# Declared here, as its used by both the
# libplacebo and opengl subfolder build file.
if have_win_store
    # even if it's there, don't use it
    missing_win_glew = true
elif host_system == 'windows'
    missing_win_glew = not cdata.has('HAVE_GL_WGLEW_H')
else
    missing_win_glew = false
endif

if missing_win_glew or have_ios
    opengl_dep = disabler()
else
    opengl_dep = dependency('gl', required: false)
endif
opengles2_dep = dependency('glesv2', required: get_option('gles2'))
egl_dep = dependency('egl', required: false)

# Declared here so it's available in opengl subdir for egl_display_gbm
drm_dep = dependency('libdrm', version: '>= 2.4.83', required: get_option('drm'))
drm_includes = declare_dependency()
if drm_dep.found()
    drm_includes = declare_dependency(dependencies: drm_dep.partial_dependency(
                                          includes: true, compile_args: true),
                                      compile_args: '-DHAVE_LIBDRM=1')
endif

# Declared here, as it's used by both the libplacebo and wayland subfolders
vulkan_dep = dependency('vulkan', version: '>= 1.0.26', required: get_option('vulkan'))

if host_system == 'darwin'
    subdir('apple')

    vlc_modules += {
        'name' : 'window_macosx',
        'sources' : files('window_macosx.m'),
        'objc_args' : ['-fobjc-arc', '-fobjc-exceptions'],
        'dependencies' : [
            frameworks['Cocoa'],
        ],
        'plugin_dir' : 'video_output',
    }
endif

subdir('libplacebo')
subdir('opengl')

if have_wayland
    subdir('wayland')
endif

if host_system == 'windows'
    subdir('win32')
endif

# Dummy video output
vlc_modules += {
    'name' : 'vdummy',
    'sources' : files('vdummy.c'),
    'plugin_dir' : 'video_output',
}

# Dummy window provider
vlc_modules += {
    'name' : 'wdummy',
    'sources' : files('wdummy.c'),
    'plugin_dir' : 'video_output',
}

android_lib = []

# Android window provider (vout window + AWINDOW decoder device)
if host_system == 'android'
    android_lib = cc.find_library('android')
    egl_lib = cc.find_library('EGL')
    glesv2_lib = cc.find_library('GLESv2')
    vlc_modules += {
        'name' : 'android_window',
        'sources' : files('android/window.c'),
        'link_with' : [libandroid_utils, libandroid_env],
        'dependencies' : [android_lib, egl_lib, glesv2_lib],
    }
    # gl_common_dep pulls in desktop OpenGL (-lGL) which doesn't exist on Android.
    # Build the android display module with its own copy of the opengl sources,
    # using OpenGL ES 2 headers/libs instead.
    android_gl_sources = files(
        'opengl/filter.c',
        'opengl/filters.c',
        'opengl/gl_api.c',
        'opengl/gl_util.c',
        'opengl/importer.c',
        'opengl/interop.c',
        'opengl/picture.c',
        'opengl/sampler.c',
        'opengl/sub_renderer.c',
        'opengl/renderer.c',
        'opengl/vout_helper.c',
    )
    vlc_modules += {
        'name' : 'android_display',
        'sources' : [files('android/display.c'), android_gl_sources],
        'c_args' : ['-DUSE_OPENGL_ES2'],
        'include_directories' : [vlc_include_dirs],
        'link_with' : [libandroid_utils, libandroid_env],
        'dependencies' : [android_lib, egl_lib, glesv2_lib, m_lib],
        'plugin_dir' : 'video_output',
    }

    # EGL display module for Android
    vlc_modules += {
        'name' : 'egl_android',
        'sources' : files('opengl/egl.c'),
        'c_args' : ['-DUSE_PLATFORM_ANDROID=1'],
        'link_with' : [libandroid_utils, libandroid_env],
        'dependencies' : [android_lib, egl_lib, glesv2_lib],
        'plugin_dir' : 'video_output',
    }

    # OpenGL ES 2 interop for Android Surface (SurfaceTexture / ANativeWindow)
    vlc_modules += {
        'name' : 'glinterop_asurface',
        'sources' : files('opengl/interop_asurface.c'),
        'c_args' : ['-DUSE_OPENGL_ES2'],
        'link_with' : [libandroid_utils, libandroid_env],
        'dependencies' : [android_lib, egl_lib, glesv2_lib],
        'plugin_dir' : 'video_output',
    }

    # OpenGL ES 2 interop for Android Image (AImageReader)
    vlc_modules += {
        'name' : 'glinterop_aimage',
        'sources' : files('opengl/interop_aimage.c'),
        'c_args' : ['-DUSE_OPENGL_ES2'],
        'link_with' : [libandroid_utils],
        'dependencies' : [android_lib, egl_lib, glesv2_lib],
        'plugin_dir' : 'video_output',
    }
endif

# Video splitter
vlc_modules += {
    'name' : 'video_splitter',
    'sources' : files('splitter.c'),
    'plugin_dir' : 'video_output',
}

# YUV video output
vlc_modules += {
    'name' : 'yuv',
    'sources' : files('yuv.c'),
    'plugin_dir' : 'video_output',
}

# Flaschen video output
vlc_modules += {
    'name' : 'flaschen',
    'sources' : files('flaschen.c'),
    'dependencies' : [socket_libs],
    'plugin_dir' : 'video_output',
}

# vmem
vlc_modules += {
    'name' : 'vmem',
    'sources' : files('vmem.c'),
    'plugin_dir' : 'video_output',
}

# wextern
vlc_modules += {
    'name' : 'wextern',
    'sources' : files('wextern.c'),
    'plugin_dir' : 'video_output',
}

# vgl
vlc_modules += {
    'name' : 'vgl',
    'sources' : files('vgl.c'),
    'plugin_dir' : 'video_output',
}

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,
    'plugin_dir' : 'video_output',
    'enabled' : decklink_dep.found(),
}

# Kernel Mode Setting
if drm_dep.found()
    vlc_modules += {
        'name' : 'kms',
        'sources' : files('kms.c'),
        'dependencies' : [drm_dep],
        'plugin_dir' : 'video_output',
    }
endif

# Coloured ASCII art (Caca)
caca_dep = dependency('caca', version: '>= 0.99.beta14', required: get_option('caca'))
caca_deps = [ caca_dep ]
if not (host_system in ['windows', 'darwin'])
    caca_deps += x11_dep
endif
if caca_dep.found()
    vlc_modules += {
        'name' : 'caca',
        'sources' : files('caca.c'),
        'dependencies' : [caca_deps],
        'plugin_dir' : 'video_output',
    }
endif

#
# Vulkan video outputs
#
if vulkan_dep.found()
    vlc_modules += {
        'name' : 'vk_win32',
        'sources' : files('vulkan/platform.c', 'vulkan/platform_win32.c'),
        'c_args' : ['-DVK_USE_PLATFORM_WIN32_KHR', '-DPLATFORM_NAME=Win32'],
        'dependencies' : [vulkan_dep],
        'plugin_dir' : 'video_output',
        'enabled': host_system == 'windows' and not have_win_store,
    }

    vlc_modules += {
        'name' : 'vk_android',
        'sources' : files('vulkan/platform.c', 'vulkan/platform_android.c'),
        'c_args' : ['-DVK_USE_PLATFORM_ANDROID_KHR', '-DPLATFORM_NAME=Android'],
        'dependencies' : [vulkan_dep],
        'plugin_dir' : 'video_output',
        'enabled': host_system == 'android'
    }
endif

#
# x11 video outputs
#

if xcb_dep.found()
    vlc_xcb_events_lib = library('vlc_xcb_events',
        files('xcb/events.c'),
        include_directories: [vlc_include_dirs],
        link_args: gc_sections_linkargs,
        dependencies: [xcb_dep, libvlccore_dep],
        install: true,
        install_dir: pkglibdir_path,
        )

    if xcb_randr_dep.found() and xproto_dep.found()
        vlc_modules += {
            'name' : 'xcb_window',
            'sources' : files('xcb/window.c'),
            'dependencies' : [xcb_dep, xcb_randr_dep, xproto_dep],
            'plugin_dir' : 'video_output',
        }
    endif

    if xcb_render_dep.found() and xcb_shm_dep.found()
        vlc_modules += {
            'name' : 'xcb_render',
            'sources' : files(
              'xcb/pictures.c',
              'xcb/render.c'
            ),
            'dependencies' : [xcb_dep, xcb_render_dep, xcb_shm_dep, m_lib],
            'link_with' : [vlc_xcb_events_lib],
            'plugin_dir' : 'video_output',
        }
    endif

    if xcb_shm_dep.found()
        vlc_modules += {
            'name' : 'xcb_x11',
            'sources' : files(
              'xcb/pictures.c',
              'xcb/x11.c'
            ),
            'dependencies' : [xcb_dep, xcb_shm_dep],
            'link_with' : [vlc_xcb_events_lib],
            'plugin_dir' : 'video_output',
        }
    endif
endif

if x11_dep.found() and egl_dep.found()
    vlc_modules += {
        'name' : 'egl_x11',
        'sources' : files('opengl/egl.c'),
        'c_args' : ['-DUSE_PLATFORM_X11=1'],
        'dependencies' : [egl_dep, x11_dep],
        'plugin_dir' : 'video_output',
    }
endif

if x11_dep.found() and opengl_dep.found()
    vlc_modules += {
        'name' : 'glx',
        'sources' : files('glx.c'),
        'dependencies' : [x11_dep, opengl_dep],
        'plugin_dir' : 'video_output',
    }
endif

#
# OS/2 video output
#
if host_system == 'os/2'
    vlc_modules += {
        'name' : 'drawable_os2',
        'sources' : files('drawable_os2.c'),
        'plugin_dir' : 'video_output',
    }

    vlc_modules += {
        'name' : 'window_os2',
        'sources' : files('window_os2.c'),
        'plugin_dir' : 'video_output',
    }

    if get_option('kva').allowed()
        kva_lib = cc.find_library('kva',
                                   has_headers: ['kva.h'],
                                   required: get_option('kva').enabled())

        vlc_modules += {
            'name' : 'kva',
            'sources' : files('kva.c'),
            'dependencies' : [kva_lib],
            'plugin_dir' : 'video_output',
            'enabled' : kva_lib.found(),
        }
    endif
endif

[Dauer der Verarbeitung: 0.3 Sekunden, vorverarbeitet 2026-10-24]