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