• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1androidmedia_sources = [
2  'gstamcaudiodec.c',
3  'gstamc.c',
4  'gstamcsurfacetexture.c',
5  'gstamcvideodec.c',
6  'gstamcvideoenc.c',
7]
8
9androidmedia_java_sources = [
10  'org/freedesktop/gstreamer/androidmedia/GstAhcCallback.java',
11  'org/freedesktop/gstreamer/androidmedia/GstAhsCallback.java',
12  'org/freedesktop/gstreamer/androidmedia/GstAmcOnFrameAvailableListener.java',
13]
14
15amc_opt = get_option('androidmedia')
16mgl_opt = get_option('magicleap')
17
18if host_system != 'android' or (amc_opt.disabled() and mgl_opt.disabled())
19  subdir_done()
20endif
21
22if not gstgl_dep.found()
23  if amc_opt.enabled() or mgl_opt.enabled()
24    error('androidmedia plugin enabled but GL support was not detected')
25  endif
26  subdir_done()
27endif
28
29# Check if we have MLSDK
30ml_deps = []
31have_mlsdk = true
32foreach lib : ['ml_mediacodec', 'ml_mediacodeclist', 'ml_mediaformat']
33  dep = cc.find_library(lib, required : mgl_opt)
34  have_mlsdk = have_mlsdk and dep.found()
35  ml_deps += dep
36endforeach
37
38extra_deps = []
39extra_cargs = []
40if have_mlsdk
41  androidmedia_sources += [
42    'magicleap/gstamc-codec-ml.c',
43    'magicleap/gstamc-codeclist-ml.c',
44    'magicleap/gstamc-format-ml.c',
45    'magicleap/gstamc-surfacetexture-ml.c',
46  ]
47  extra_deps = ml_deps
48  have_jni_h = false
49  extra_cargs += [
50    '-DPLUGIN_NAME=mlmedia',
51    '-DPLUGIN_DESCRIPTION="Magic Leap Media plugin"'
52  ]
53  plugin_name = 'gstmlmedia'
54else
55  have_jni_h = cc.has_header('jni.h', required : amc_opt)
56  extra_cargs += [
57    '-DHAVE_JNI_H',
58    '-DPLUGIN_NAME=androidmedia',
59    '-DPLUGIN_DESCRIPTION="Android Media plugin"'
60  ]
61  androidmedia_sources += [
62    'gstahcsrc.c',
63    'gstahssrc.c',
64    'gst-android-graphics-imageformat.c',
65    'gst-android-hardware-camera.c',
66    'gst-android-hardware-sensor.c',
67    'gstjniutils.c',
68    'jni/gstamc-codec-jni.c',
69    'jni/gstamc-codeclist-jni.c',
70    'jni/gstamc-format-jni.c',
71    'jni/gstamcsurface.c',
72    'jni/gstamcsurfacetexture-jni.c',
73  ]
74  plugin_name = 'gstandroidmedia'
75endif
76
77if have_jni_h or have_mlsdk
78  gstandroidmedia = library(plugin_name,
79    androidmedia_sources,
80    c_args : [gst_plugins_bad_args, extra_cargs],
81    include_directories : [configinc],
82    dependencies : [gstgl_dep, gstpbutils_dep, gstaudio_dep, gstvideo_dep,
83                    gstphotography_dep, gmodule_dep, orc_dep, extra_deps],
84    install : true,
85    install_dir : plugins_install_dir)
86  pkgconfig.generate(gstandroidmedia, install_dir : plugins_pkgconfig_install_dir)
87  plugins += [gstandroidmedia]
88
89  install_data(androidmedia_java_sources,
90    install_dir : join_paths(get_option('datadir'), 'gst-android/ndk-build/androidmedia')
91  )
92endif
93