vtdec: Correctly retrieve reorder queue length from SPS
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-bad / sys / applemedia / meson.build
1 applemedia_sources = [
2     'plugin.m',
3     'vtutil.c',
4     'corevideomemory.c',
5     'corevideobuffer.c',
6     'coremediabuffer.c',
7     'videotexturecache.m',
8     'videotexturecache-gl.m',
9     'atdec.c',
10     'glcontexthelper.c'
11 ]
12
13 applemedia_args = [
14     '-Dgst_core_media_buffer_new=gst_core_media_buffer_priv_new',
15     '-Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type',
16     '-Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer',
17     '-Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new',
18     '-Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type'
19 ]
20
21 applemedia_objc_args = []
22 applemedia_option = get_option('applemedia')
23 if not ['darwin', 'ios'].contains(host_system) or applemedia_option.disabled()
24   subdir_done()
25 endif
26
27 if ['darwin', 'ios'].contains(host_system)
28   objc = meson.get_compiler('objc')
29   if not objc.has_argument('-fobjc-arc')
30     error('ARC is required for building')
31   endif
32
33   applemedia_objc_args += ['-fobjc-arc']
34
35   objcpp = meson.get_compiler('objcpp')
36 endif
37
38 applemedia_frameworks = []
39 corefoundation_dep = dependency('CoreFoundation', required : applemedia_option)
40 coremedia_dep = dependency('CoreMedia', required : applemedia_option)
41 corevideo_dep = dependency('CoreVideo', required : applemedia_option)
42 audiotoolbox_dep = dependency('AudioToolbox', required : applemedia_option)
43 applemedia_frameworks += [corefoundation_dep, coremedia_dep, corevideo_dep, audiotoolbox_dep]
44
45 avfoundation_dep = dependency('AVFoundation', required : applemedia_option)
46 if avfoundation_dep.found()
47     applemedia_sources += [
48         'avfvideosrc.m',
49         'avfassetsrc.m',
50         'avsamplevideosink.m',
51         'avfdeviceprovider.m',
52     ]
53     applemedia_frameworks += [avfoundation_dep]
54 endif
55
56 videotoolbox_dep = dependency('VideoToolbox', required : applemedia_option)
57 if videotoolbox_dep.found()
58     applemedia_sources += [
59         'vtenc.c',
60         'vtdec.c'
61     ]
62     applemedia_frameworks += [videotoolbox_dep]
63 endif
64
65 if host_system == 'ios'
66     applemedia_sources += [
67         'iosassetsrc.m',
68         'iosglmemory.c'
69     ]
70     applemedia_objc_args += ['-fobjc-abi-version=2', '-fobjc-legacy-dispatch']
71
72     ios_media_dep = dependency('appleframeworks', modules : ['Foundation', 'AssetsLibrary'], required : applemedia_option)
73     iosurface_dep = dependency('IOSurface', required : applemedia_option)
74     applemedia_frameworks += [ios_media_dep, iosurface_dep]
75 else
76     applemedia_sources += [
77         'iosurfaceglmemory.c'
78     ]
79     cocoa_dep = dependency('Cocoa', required : applemedia_option)
80     iosurface_dep = dependency('IOSurface', required : applemedia_option)
81     applemedia_opengl_dep = dependency('appleframeworks', modules : ['OpenGL'], required : applemedia_option)
82     applemedia_frameworks += [cocoa_dep, applemedia_opengl_dep, iosurface_dep]
83 endif
84
85 applemedia_found_deps = true
86 foreach framework : applemedia_frameworks
87     if not framework.found()
88         applemedia_found_deps = false
89     endif
90 endforeach
91
92 applemedia_objcpp_args = []
93 if gstvulkan_dep.found() and have_objcpp
94   moltenvk_dep = cc.find_library('MoltenVK', required : false)
95   metal_dep = dependency('appleframeworks', modules : ['Metal'], required : false)
96   if metal_dep.found() and moltenvk_dep.found() and cc.has_header ('MoltenVK/vk_mvk_moltenvk.h')
97     applemedia_frameworks += [moltenvk_dep, gstvulkan_dep, metal_dep]
98     applemedia_sources += [
99       'videotexturecache-vulkan.mm',
100       'iosurfacevulkanmemory.c',
101     ]
102     applemedia_args += ['-DAPPLEMEDIA_MOLTENVK']
103     # override_options : ['cpp_std=c++11'] doesn't seem to work for objcpp
104     applemedia_objcpp_args += objcpp.get_supported_arguments([
105       '-std=c++11',
106     ])
107   endif
108 endif
109
110 if applemedia_found_deps
111     gstapplemedia = library('gstapplemedia',
112         applemedia_sources,
113         c_args : gst_plugins_bad_args + applemedia_args,
114         objc_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args,
115         objcpp_args : gst_plugins_bad_args + applemedia_args + applemedia_objc_args + applemedia_objcpp_args,
116         link_args : noseh_link_args,
117         include_directories : [configinc, libsinc],
118         dependencies : [gstvideo_dep, gstaudio_dep, gstpbutils_dep, gst_dep, gstbase_dep, gstgl_dep, gstglproto_dep, gstcodecparsers_dep] + applemedia_frameworks,
119         override_options : ['cpp_std=c++11'],
120         install : true,
121         install_dir : plugins_install_dir,
122     )
123     plugins += [gstapplemedia]
124 endif