Julian Winkler
2077dc9406
MediaCodec: initialize audio resampler after the codec sample rate is known
2025-01-28 06:54:31 +01:00
Julian Winkler
ecd5996ad2
MediaCodec: inject SPS and PPS into the first video frame
...
For some reason, this is required to make livestreams functional
2025-01-28 06:54:31 +01:00
Julian Winkler
68e32eab45
MediaCodec: add mp3 and opus codecs
2025-01-26 22:27:19 +01:00
Julian Winkler
0dfcb9324f
drop GTK < 4.14 ifdefs
2024-12-22 23:40:11 +01:00
Julian Winkler
4b36bca4c6
refactor SurfaceViewWidget for frame_callback in the Wayland server
...
SurfaceViewWidget is now always a child of a GtkGraphicsOffload and
handles the GdkTexture on its own. This way the extra GtkPicture is no
longer needed and also the frame_callback of the Wayland server can be
implemented.
2024-11-17 17:11:14 +01:00
Julian Winkler
5160c33b62
MediaCodec: don't double reference hw_decice_ctx
2024-11-06 23:32:40 +01:00
Julian Winkler
7c9a32d041
MediaCodec: release all output buffers on release
...
This prevents leaking video memory
2024-11-06 23:32:39 +01:00
Mis012
6560512b47
improve --help output and code style in main.c, use ARRAY_SIZE consistently
2024-09-15 00:42:55 +02:00
Julian Winkler
29e5298178
MediaCodec: handle end-of-file properly
2024-07-31 18:21:14 +02:00
Julian Winkler
9d27fc138b
NotificationManager: handle non player part of MPRIS
...
This exposes the package name to MPRIS and allows to raise the
application to the front when clicking the MPRIS notification.
2024-07-17 22:43:16 +02:00
Julian Winkler
b54bed4784
implementing MediaSession using MPRIS
...
NotificationManager will now ignore MediaStyle notifications
2024-07-17 22:35:55 +02:00
Julian Winkler
5454d9ed3c
MediaCodec: throw IOException for unimplemented codecs
...
fixes SEGFAULT when libavcodec is built without aac decoder
2024-06-13 20:07:01 +02:00
Julian Winkler
5be3401af5
MediaCodec: fall back to software decoding, if hardware decoding doesn't work
2024-06-13 20:04:37 +02:00
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