Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2018-09-05 00:32:00 +0300
committerRonald S. Bultje <rsbultje@gmail.com>2018-09-22 14:59:19 +0300
commite2892ffa2dd1e893d0229c5fcbe0bbbee8e11c20 (patch)
tree9ba42513c2916db89d47f8b34fa0141d6aeb4dde /meson.build
parentd32eb2d935a31288c34ccaa42b09bc60eacdfd68 (diff)
Initial decoder implementation.
With minor contributions from: - Jean-Baptiste Kempf <jb@videolan.org> - Marvin Scholz <epirat07@gmail.com> - Hugo Beauzée-Luyssen <hugo@videolan.org>
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build99
1 files changed, 97 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index 4b66eb6..66e2f7d 100644
--- a/meson.build
+++ b/meson.build
@@ -37,7 +37,15 @@ else
thread_dependency = cc.find_library('pthread')
endif
-dav1d_inc_dirs = include_directories('include')
+dav1d_inc_dirs = include_directories(['include', 'include/dav1d'])
+
+#
+# Option handling
+#
+dav1d_bitdepths = get_option('bitdepths')
+foreach bitdepth : dav1d_bitdepths
+ cdata.set('CONFIG_@0@BPC'.format(bitdepth), 1)
+endforeach
#
# OS/Compiler feature detection
@@ -121,15 +129,102 @@ config_h_target = configure_file(output: 'config.h', configuration: cdata)
subdir('include')
+#
+# dav1d library
+#
+libdav1d_tmpl_sources = files(
+ 'src/ipred.c',
+ 'src/itx.c',
+ 'src/ipred_prepare.c',
+ 'src/lf_apply.c',
+ 'src/loopfilter.c',
+ 'src/mc.c',
+ 'src/cdef_apply.c',
+ 'src/cdef.c',
+ 'src/lr_apply.c',
+ 'src/looprestoration.c',
+ 'src/recon.c'
+)
+
+# Build a helper library for each bitdepth
+bitdepth_objs = []
+foreach bitdepth : dav1d_bitdepths
+ bitdepth_lib = static_library(
+ 'dav1d_bitdepth_@0@'.format(bitdepth),
+ libdav1d_tmpl_sources, config_h_target,
+ include_directories: dav1d_inc_dirs,
+ c_args: ['-DBITDEPTH=@0@'.format(bitdepth), stackalign_flag],
+ install: false,
+ build_by_default: false,
+ )
+ bitdepth_objs += bitdepth_lib.extract_all_objects()
+endforeach
+
+entrypoints_src = files(
+ 'src/lib.c',
+ 'src/thread_task.c'
+)
+entrypoints_lib = static_library(
+ 'libdav1dentrypoint',
+ entrypoints_src,
+ include_directories: dav1d_inc_dirs,
+ c_args: [stackrealign_flag],
+ install: false,
+)
+entrypoints_objs = entrypoints_lib.extract_all_objects()
+
+libdav1d_sources = files(
+ 'src/picture.c',
+ 'src/data.c',
+ 'src/ref.c',
+ 'src/getbits.c',
+ 'src/obu.c',
+ 'src/decode.c',
+ 'src/cdf.c',
+ 'src/msac.c',
+ 'src/tables.c',
+ 'src/scan.c',
+ 'src/dequant_tables.c',
+ 'src/intra_edge.c',
+ 'src/lf_mask.c',
+ 'src/ref_mvs.c',
+ 'src/warpmv.c',
+ 'src/wedge.c',
+ 'src/qm.c',
+)
+
libdav1d = library('dav1d',
- rev_target,
+ libdav1d_sources, rev_target,
version: '0.0.1',
+ objects: [bitdepth_objs, entrypoints_objs],
include_directories: dav1d_inc_dirs,
c_args: [stackalign_flag],
dependencies: thread_dependency,
install: true
)
+install_subdir('include/dav1d/', install_dir: 'include')
+
+#
+# dav1d cli tool
+#
+dav1d_sources = files(
+ 'tools/dav1d.c',
+ 'tools/dav1d_cli_parse.c',
+ 'tools/input/input.c',
+ 'tools/input/ivf.c',
+ 'tools/output/md5.c',
+ 'tools/output/output.c',
+ 'tools/output/y4m2.c',
+ 'tools/output/yuv.c'
+)
+
+dav1d = executable('dav1d',
+ dav1d_sources, rev_target,
+ link_with: libdav1d,
+ include_directories: [dav1d_inc_dirs, include_directories('tools')]
+)
+
#
# pkg-config boilerplate
#