[vlc-devel] [PATCH 00/13] Refactor SurfaceTexture for Android
Thomas Guillem
thomas at gllm.fr
Mon Jun 15 13:33:36 CEST 2020
Hello,
Very nice set, thanks for clearing this mess ;)
I spotted some issues, cf. my comments.
On Fri, Jun 12, 2020, at 11:40, Alexandre Janniaux wrote:
> Hi,
>
> This patchset is the second step for Android refactor, generalizing
> the work of Louis Régnier on SurfaceTexture to create them directly
> in the core, regardless of the Android API version.
>
> In the long term, it will bring three main benefits:
>
> + The JNI binding doesn't need to provide the SurfaceTexture anymore
> and thus doesn't need to create the current TextureView. This will
> be the case after this patchset.
>
> + The SurfaceTexture can be created by any clients, and in particular
> MediaCodec, which will stop needing a AWindow instance given through
> libvlc_media_player_set_android_context in the end (not this patchset
> though because of the AWindowHandler dependency) and the future
> GL implementation for GPU filters which was the initial push for this
> refactor.
>
> + In the future, we may provide single-buffered SurfaceTexture and
> reduce the amount of memory used on the phones for filters.
>
> The patchset is divided in multiple steps:
>
> + patch 1 and 2 are reordering patches so as to avoid the forward
> declaration of most functions.
>
> + patch 3 refactors the current handling of SurfaceTexture (JNI, NDK)
> into a dedicated structure.
>
> + patch 4, 5, 6 are loading SurfaceTexture and Surface classes and
> constructors to be able to create SurfaceTexture with any API
> version.
>
> + patch 7 refactors the current SurfaceTexture creation in the case
> of NDK in order to generalize to JNI.
>
> + patch 8 does the actual generalization to all Android API instead
> of using a surface given by the JNI binding
>
> + patch 9 exposes the new SurfaceTexture API for creation and
> deletion, but introduce a hack to keep the "shared surface"
> behaviour while refactoring. It will be removed in last patch.
>
> + patch 10 switch MediaCodec to create the SurfaceTexture directly
> instead of relying on the SurfaceTexture in the AWindowHandler.
>
> + patch 11 removes some usage of the AWindowHandler where the
> SurfaceTexture object should be used.
>
> + patch 12 removes the now useless JNI SurfaceTexture AWindow wrapper
>
> + patch 13 cleans up previous hacks and remove any concept of
> SurfaceTexture from the public API of AWindowHandler.
>
> Thank you for reviewing,
>
> Regards,
> --
> Alexandre Janniaux
> Videolabs
>
>
> Alexandre Janniaux (13):
> android: utils: reorder android JNIEnv helper
> android: utils: reorder SurfaceTexture implementation
> android: utils: refactor SurfaceTexture handling
> android: utils: load SurfaceTexture constructors
> android: utils: load Surface JNI API
> android: utils: load SurfaceTexture JNI API
> android: utils: refactor creation of SurfaceTexture
> android: utils: extend vlc_asurfacetexture to all version
> android: utils: expose vlc_surfacetexture API
> mediacodec: create SurfaceTexture in decoder
> android: utils: switch from AWH to surfacetexture
> android: utils: remove AWindow SurfaceTexture functions
> android: utils: remove AWindow_SurfaceTexture
>
> modules/codec/omxil/mediacodec.c | 38 +-
> modules/video_output/android/display.c | 2 +-
> modules/video_output/android/utils.c | 837 ++++++++++++------
> modules/video_output/android/utils.h | 68 +-
> modules/video_output/opengl/interop_android.c | 11 +-
> 5 files changed, 619 insertions(+), 337 deletions(-)
>
> --
> 2.27.0
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list