Commit Graph

9 Commits

Author SHA1 Message Date
Julian Winkler
f249e1c487 MediaCodec: implement software decoding
The decoding is done by libavcodec, libswscale converts YUV to RGB data, which is
then put into a GtkPicture as GdkMemoryTexture.
2024-06-02 18:12:59 +02:00
Julian Winkler
03887e8c2d MediaCodec: add support for hardware decocders with AV_PIX_FMT_DRM_PRIME
This change should enable hardware decoding using v4l2 m2m, but it
hasn't been tested with v4l2 m2m yet.
2024-06-02 18:06:17 +02:00
Julian Winkler
3cc7070839 MediaCodec: don't access ATL_codec_context in render_frame callback
The ATL_codec_context may have been freed already, when MediaCodec.release() was called
2024-05-13 22:32:48 +02:00
Julian Winkler
d5c2c122fc MediaCodec: make use of GtkGraphicsOffload when gtk >= 4.14
This replaces our custom subsurface implementation and has the
advantages, that the subsurface gets repositioned automatically and it
also supports underlay surfaces, so that the application can put control
widgets on top of the SurfaceView.

Our custom subsurface implementation will still be used for GL rendering
2024-04-13 15:25:39 +02:00
Julian Winkler
b7f06e41c1 implement release() methods in MediaCodec and related classes 2024-02-18 10:08:43 +01:00
Julian Winkler
f107328bf4 MediaCodec: don't use JNI after GetPrimitiveArrayCritical()
this was found, because of having -Xcheck:jni enabled
2024-02-08 14:22:30 +01:00
Mis012
837ad31c3f api-impl-jni/media/android_media_MediaCodec.c: resize the viewport in sync with the dummy widget 2023-11-03 23:21:43 +01:00
Mis012
621cb866c1 api-impl{-jni}: fix code style issues missed during review 2023-10-17 21:57:48 +02:00
Julian Winkler
b340032e9f impement android.media.MediaCodec using libavcodec
The current implementation requires a VA-API driver and a Wayland
compositor with YUV-buffer support. GNOME supports YUV-buffers
since the recent version 45 release
2023-10-14 18:29:33 +02:00