1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
backend_inc = include_directories('.')
gst_inspect = find_program(
'gst-inspect-1.0',
join_paths(gst_dep.get_pkgconfig_variable('toolsdir'), 'gst-inspect-1.0'),
required: false
)
assert(gst_inspect.found(),
'Cannot find required GStreamer-1.0 tool "gst-inspect-1.0". It should be part of gstreamer-1_0-utils. Please install it.')
gst_base_plugins = [
'playbin',
'videoscale'
]
foreach plugin: gst_base_plugins
r = run_command(gst_inspect, plugin, check: false)
assert(r.returncode() == 0,
'Cannot find required GStreamer-1.0 plugin "' + plugin + '". It should be part of gst-plugins-base. Please install it.')
endforeach
gst_good_plugins = [
'autoaudiosink',
'scaletempo',
'gtkglsink',
'glsinkbin'
]
foreach plugin: gst_good_plugins
r = run_command(gst_inspect, plugin, check: false)
assert(r.returncode() == 0,
'Cannot find required GStreamer-1.0 plugin "' + plugin + '". It should be part of gst-plugins-good. Please install it.')
endforeach
sources = files(
'bacon-time-label.c',
'bacon-video-controls-actor.c',
'bacon-video-spinner-actor.c',
'bacon-video-widget-gst-missing-plugins.c',
'bacon-video-widget.c',
'clock.c',
'totem-aspect-frame.c'
)
enum = 'bacon-video-widget-enums'
enum_headers = files('bacon-video-widget.h')
enum_sources = gnome.mkenums(
enum,
sources: enum_headers,
c_template: enum + '.c.template',
h_template: enum + '.h.template'
)
libbacon_video_widget_incs = [
top_inc,
gst_inc
]
libbacon_video_widget_deps = [
gst_dep,
dependency('gstreamer-base-1.0', version: gst_req_version),
dependency('gstreamer-plugins-base-1.0', version: gst_req_version),
gst_pbutils_dep,
gst_tag_dep,
dependency('gstreamer-audio-1.0'),
gst_video_dep,
dependency('clutter-1.0', version: '>= 1.17.3'),
dependency('clutter-gst-3.0', version: '>= 2.99.2'),
clutter_gtk_dep,
dependency('cairo', version: '>= 1.14.0'),
dependency('gsettings-desktop-schemas'),
m_dep,
libtotem_gst_helpers_dep,
libtotem_gst_pixbuf_helpers_dep,
libtotem_time_helpers_dep,
gtk_dep,
gmodule_dep,
]
libbacon_video_widget_cflags = common_flags + warn_flags + [
'-DDATADIR="@0@"'.format(totem_pkgdatadir)
]
libbacon_video_widget = static_library(
'baconvideowidget',
sources: sources + enum_sources,
include_directories: libbacon_video_widget_incs,
dependencies: libbacon_video_widget_deps,
c_args: libbacon_video_widget_cflags
)
libbacon_video_widget_dep = declare_dependency(
link_with: libbacon_video_widget,
include_directories: backend_inc,
dependencies: libbacon_video_widget_deps,
sources: enum_sources
)
backend_test = 'bvw-test'
executable(
backend_test,
backend_test + '.c',
include_directories: libbacon_video_widget_incs,
dependencies: [libbacon_video_widget_dep, x11_dep],
c_args: libbacon_video_widget_cflags + [
'-DLOGO_PATH="@0@"'.format(join_paths(totem_pkgdatadir, meson.project_name(), 'totem_logo.png')),
'-DG_LOG_DOMAIN="@0@"'.format(backend_test)
]
)
|