mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-21 05:26:23 +00:00
105 lines
2.8 KiB
Meson
105 lines
2.8 KiB
Meson
androidmedia_sources = [
|
|
'gstamcaudiodec.c',
|
|
'gstamc.c',
|
|
'gstamc-codec.c',
|
|
'gstamc-format.c',
|
|
'gstamcsurfacetexture.c',
|
|
'gstamcvideodec.c',
|
|
'gstamcvideoenc.c',
|
|
'gstahcsrc.c',
|
|
'gstahssrc.c',
|
|
'gst-android-graphics-imageformat.c',
|
|
'gst-android-hardware-camera.c',
|
|
'gst-android-hardware-sensor.c',
|
|
'gstjniutils.c',
|
|
'jni/gstamc-jni.c',
|
|
'jni/gstamc-codec-jni.c',
|
|
'jni/gstamc-codeclist-jni.c',
|
|
'jni/gstamc-format-jni.c',
|
|
'jni/gstamcsurface.c',
|
|
'jni/gstamcsurfacetexture-jni.c',
|
|
]
|
|
|
|
ndk_sources = [
|
|
'ndk/gstamc-codec-ndk.c',
|
|
'ndk/gstamc-format-ndk.c',
|
|
]
|
|
|
|
androidmedia_headers = [
|
|
'gstahcsrc.h',
|
|
'gstahssrc.h',
|
|
'gstamcaudiodec.h',
|
|
'gstamc-codec.h',
|
|
'gstamc-codeclist.h',
|
|
'gstamc-constants.h',
|
|
'gstamc-format.h',
|
|
'gstamc.h',
|
|
'gstamcsurfacetexture.h',
|
|
'gstamcvideodec.h',
|
|
'gstamcvideoenc.h',
|
|
'gst-android-graphics-imageformat.h',
|
|
'gst-android-hardware-camera.h',
|
|
'gst-android-hardware-sensor.h',
|
|
'gstjniutils.h',
|
|
'gstsensors.h',
|
|
]
|
|
|
|
androidmedia_java_sources = [
|
|
'org/freedesktop/gstreamer/androidmedia/GstAhcCallback.java',
|
|
'org/freedesktop/gstreamer/androidmedia/GstAhsCallback.java',
|
|
'org/freedesktop/gstreamer/androidmedia/GstAmcOnFrameAvailableListener.java',
|
|
]
|
|
|
|
doc_sources = []
|
|
foreach s: androidmedia_sources + ndk_sources + androidmedia_headers
|
|
doc_sources += meson.current_source_dir() / s
|
|
endforeach
|
|
|
|
plugin_sources += {
|
|
'androidmedia': pathsep.join(doc_sources)
|
|
}
|
|
|
|
amc_opt = get_option('androidmedia')
|
|
amc_opt = amc_opt.require(gstgl_dep.found(),
|
|
error_message: 'androidmedia plugin requires GL support',
|
|
)
|
|
amc_opt = amc_opt.require(host_system == 'android',
|
|
error_message: 'androidmedia plugin requires android system',
|
|
)
|
|
|
|
have_jni_h = cc.has_header('jni.h', required : amc_opt)
|
|
|
|
if amc_opt.disabled() or not have_jni_h
|
|
subdir_done()
|
|
endif
|
|
|
|
extra_deps = []
|
|
extra_cargs = [
|
|
'-DHAVE_JNI_H',
|
|
'-DPLUGIN_NAME=androidmedia',
|
|
'-DPLUGIN_DESCRIPTION="Android Media plugin"'
|
|
]
|
|
|
|
# Build an Ndk support if its headers exists. We don't actually link into it
|
|
# but use only type definations (and then rely on dlopen and dlsym), so this
|
|
# doesn't affect compatibility with older Android versions.
|
|
if cc.check_header('media/NdkMediaCodec.h')
|
|
androidmedia_sources += ndk_sources
|
|
extra_cargs += [ '-DHAVE_NDKMEDIA' ]
|
|
extra_deps += [ cc.find_library('android', required : true) ]
|
|
endif
|
|
|
|
gstandroidmedia = library('gstandroidmedia',
|
|
androidmedia_sources,
|
|
c_args : [gst_plugins_bad_args, extra_cargs],
|
|
include_directories : [configinc],
|
|
dependencies : [gstgl_dep, gstpbutils_dep, gstaudio_dep, gstvideo_dep,
|
|
gstphotography_dep, gmodule_dep, orc_dep, extra_deps],
|
|
install : true,
|
|
install_dir : plugins_install_dir)
|
|
|
|
plugins += [gstandroidmedia]
|
|
|
|
install_data(androidmedia_java_sources,
|
|
install_dir : join_paths(get_option('datadir'), 'gst-android/ndk-build/androidmedia')
|
|
)
|