[Interest] Video Filters on Android

René Hansen renehh at gmail.com
Wed Apr 4 18:07:08 CEST 2018


You'll probably find it at */vendor/lib/libOpenCL.so.*

I'm not sure which version of OpenGL ES you need, but you have both
versions available to link against using the NDK at least.

I've been wanting to do a writeup on the whole QML videofilter -> OpenCL
pipeline through shared GL context, but haven't really found the time.
There's not that many great examples to go by out there for Android and it
seems to me at least, that it's a bit of a greenfield effort, even though
the Qt guys have put in some great initial building blocks.


/René



On Wed, 4 Apr 2018 at 17:30 Jason H <jhihn at gmx.com> wrote:

> Thanks! I'm trying to do this on a Pixel 2 XL, but there is no
> libOpenCL.so on it! (directory listing included later)
>
> I'm searching for it. I'm looking at the Aredno SDK,
>
> I'm sort of at a loss for what all I need to include for android. You
> mention GLESv2, but you also mention v3.
>
> taimen:/system/lib $ ls -1 lib*
> lib-imsvideocodec.so
> lib-imsvt.so
> lib-imsvtextutils.so
> lib-imsvtutils.so
> libEGL.so
> libETC1.so
> libFFTEm.so
> libGLESv1_CM.so
> libGLESv2.so
> libGLESv3.so
> libOpenMAXAL.so
> libOpenSLES.so
> libRS.so
> libRSCacheDir.so
> libRSCpuRef.so
> libRSDriver.so
> libRS_internal.so
> libRScpp.so
> libaaudio.so
> libaaudioservice.so
> libandroid.so
> libandroid_net.so
> libandroid_runtime.so
> libandroid_servers.so
> libandroidfw.so
> libappfuse.so
> libart-compiler.so
> libart-dexlayout.so
> libart.so
> libaudio-resampler.so
> libaudioclient.so
> libaudioeffect_jni.so
> libaudioflinger.so
> libaudiohal.so
> libaudiomanager.so
> libaudiopolicyenginedefault.so
> libaudiopolicymanager.so
> libaudiopolicymanagerdefault.so
> libaudiopolicyservice.so
> libaudioprocessing.so
> libaudiospdif.so
> libaudioutils.so
> libbacktrace.so
> libbase.so
> libbcinfo.so
> libbinder.so
> libblas.so
> libc++.so
> libc.so
> libc_malloc_debug.so
> libcamera2ndk.so
> libcamera_client.so
> libcamera_metadata.so
> libcameraservice.so
> libchrome.so
> libclcore.bc
> libclcore_debug.bc
> libclcore_debug_g.bc
> libclcore_g.bc
> libclcore_neon.bc
> libcompiler_rt.so
> libcrypto.so
> libcutils.so
> libdebuggerd_client.so
> libdiag_system.so
> libdl.so
> libdmengine.so
> libdmjavaplugin.so
> libdng_sdk.so
> libdrmframework.so
> libdrmframework_jni.so
> libdvr.so
> libdvr_loader.so
> libeaselcomm.so
> libeffectsconfig.so
> libevent.so
> libexif.so
> libexpat.so
> libfilterfw.so
> libfilterpack_facedetect.so
> libfilterpack_imageproc.so
> libfmq.so
> libfrsdk.so
> libft2.so
> libgatekeeper.so
> libgraphicsenv.so
> libgui.so
> libhardware.so
> libhardware_legacy.so
> libharfbuzz_ng.so
> libheif.so
> libhidlbase.so
> libhidlmemory.so
> libhidltransport.so
> libhwbinder.so
> libhwui.so
> libicui18n.so
> libicuuc.so
> libimg_utils.so
> libimscamera_jni.so
> libimsmedia_jni.so
> libinput.so
> libinputflinger.so
> libinputservice.so
> libiprouteutil.so
> libjavacore.so
> libjavacrypto.so
> libjnigraphics.so
> libjpeg.so
> libkeystore_binder.so
> libldacBT_abr.so
> libldacBT_enc.so
> liblog.so
> liblz4.so
> liblzma.so
> libm.so
> libmdnssd.so
> libmedia.so
> libmedia_helper.so
> libmedia_jni.so
> libmedia_omx.so
> libmediadrm.so
> libmedialogservice.so
> libmediametrics.so
> libmediandk.so
> libmediaplayerservice.so
> libmediautils.so
> libmemtrack.so
> libmemunreachable.so
> libmidi.so
> libminikin.so
> libmtp.so
> libnativebridge.so
> libnativehelper.so
> libnativeloader.so
> libnativewindow.so
> libnbaio.so
> libnetd_client.so
> libnetlink.so
> libnetutils.so
> libneuralnetworks.so
> libnl.so
> libopenjdk.so
> libopenjdkjvm.so
> libopenjdkjvmti.so
> libopus.so
> libpac.so
> libpackagelistparser.so
> libpcre2.so
> libpdfium.so
> libpiex.so
> libpixelflinger.so
> libpng.so
> libpower.so
> libpowermanager.so
> libprocessgroup.so
> libprocinfo.so
> libprotobuf-cpp-full.so
> libprotobuf-cpp-lite.so
> libradio_metadata.so
> librcc.so
> libresourcemanagerservice.so
> librs_jni.so
> librtp_jni.so
> libschedulerservicehidl.so
> libselinux.so
> libsensor.so
> libsensorservice.so
> libsensorservicehidl.so
> libserviceutility.so
> libsigchain.so
> libskia.so
> libsoftkeymaster.so
> libsonic.so
> libsonivox.so
> libsoundpool.so
> libsoundtrigger.so
> libsoundtriggerservice.so
> libspeexresampler.so
> libsqlite.so
> libssl.so
> libstagefright.so
> libstagefright_amrnb_common.so
> libstagefright_enc_common.so
> libstagefright_flacdec.so
> libstagefright_foundation.so
> libstagefright_http_support.so
> libstagefright_httplive.so
> libstagefright_omx.so
> libstagefright_omx_utils.so
> libstagefright_soft_aacdec.so
> libstagefright_soft_aacenc.so
> libstagefright_soft_amrdec.so
> libstagefright_soft_amrnbenc.so
> libstagefright_soft_amrwbenc.so
> libstagefright_soft_avcdec.so
> libstagefright_soft_avcenc.so
> libstagefright_soft_flacdec.so
> libstagefright_soft_flacenc.so
> libstagefright_soft_g711dec.so
> libstagefright_soft_gsmdec.so
> libstagefright_soft_hevcdec.so
> libstagefright_soft_mp3dec.so
> libstagefright_soft_mpeg2dec.so
> libstagefright_soft_mpeg4dec.so
> libstagefright_soft_mpeg4enc.so
> libstagefright_soft_opusdec.so
> libstagefright_soft_rawdec.so
> libstagefright_soft_vorbisdec.so
> libstagefright_soft_vpxdec.so
> libstagefright_soft_vpxenc.so
> libstagefright_wfd.so
> libstagefright_xmlparser.so
> libstdc++.so
> libsurfaceflinger.so
> libsurfaceflinger_ddmconnection.so
> libsuspend.so
> libsync.so
> libsysutils.so
> libtextclassifier.so
> libtextclassifier_hash.so
> libtinyxml2.so
> libtombstoned_client.so
> libui.so
> libunwind.so
> libusbhost.so
> libutils.so
> libvintf.so
> libvixl-arm.so
> libvixl-arm64.so
> libvndksupport.so
> libvorbisidec.so
> libvulkan.so
> libwebviewchromium_loader.so
> libwebviewchromium_plat_support.so
> libwifi-service.so
> libwilhelm.so
> libxml2.so
> libz.so
> libziparchive.so
>
>
> *Sent:* Wednesday, April 04, 2018 at 4:54 AM
> *From:* "René Hansen" <renehh at gmail.com>
> *To:* "Jason H" <jhihn at gmx.com>
> *Cc:* "interestqt-project.org" <interest at qt-project.org>
> *Subject:* Re: [Interest] Video Filters on Android
> I never got that specific example to work, but assuming you're building
> with the Android NDK, you can include:
>
> #include <GLES2/gl2.h>
> #include <EGL/egl.h>
>
> Which will give you access to *eglGetCurrentContext()*.
>
> I'm using the r10e ndk, since that's what works with Qt at the moment.
> GLES v3 is available in toolchain v21:
>
> $ ls
> ~/Code/Android/android-ndk-r10e//platforms/android-21/arch-arm/usr/lib/
> crtbegin_dynamic.o      libGLESv2.so            libdl.so
> libstdc++.a
> crtbegin_so.o           libGLESv3.so            libjnigraphics.so
>  libstdc++.so
> crtbegin_static.o       libOpenMAXAL.so         liblog.so
>  libthread_db.so
> crtend_android.o        libOpenSLES.so          libm.a
> libz.a
> crtend_so.o             libandroid.so           libm.so
>  libz.so
> libEGL.so               libc.a                  libm_hard.a             rs
> libGLESv1_CM.so         libc.so                 libmediandk.so
>
> If you want to link against OpenCL, you still need to pull a
> *libOpenCL.so* from an actual device though.
>
>
> /René
>
> On Wed, 4 Apr 2018 at 01:52 Jason H <jhihn at gmx.com> wrote:
>
>>
>> http://blog.qt.io/blog/2015/03/20/introducing-video-filters-in-qt-multimedia/
>> announced video filter support, and hardware accelerated too!
>>
>> Code:
>> http://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/multimedia/video/qmlvideofilter_opencl
>>
>> I'm trying to get it running on Android, but I'm going down a rabbit hole
>> with OpenCL 2.0 and EGL 3.2. I have been hacking on it but I don't know
>> where EGLContext is declared.
>>
>> Had anyone gotten this running in Android?
>>
>> Thanks!
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20180404/1fa3f701/attachment.html>


More information about the Interest mailing list