From 15e1f0b9e2314d025a1fc48baa9f91ad621be2c9 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sat, 28 Feb 2026 12:35:11 +0100 Subject: [PATCH] fix: use mediacodec on android close #593 --- .../main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt | 2 +- .../app/src/main/kotlin/com/edde746/plezy/mpv/MpvPlayerCore.kt | 3 +++ lib/screens/video_player_screen.dart | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt index 4bdb1165..7d82d0cb 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt @@ -605,7 +605,7 @@ class ExoPlayerPlugin : FlutterPlugin, MethodChannel.MethodCallHandler, fallbackInProgress = false // Configure basic MPV properties for Plex playback - mpvCore?.setProperty("hwdec", "auto") + mpvCore?.setProperty("hwdec", "mediacodec,mediacodec-copy") mpvCore?.setProperty("vo", "gpu") mpvCore?.setProperty("ao", "audiotrack") diff --git a/android/app/src/main/kotlin/com/edde746/plezy/mpv/MpvPlayerCore.kt b/android/app/src/main/kotlin/com/edde746/plezy/mpv/MpvPlayerCore.kt index 0e894414..cacd17c5 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/mpv/MpvPlayerCore.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/mpv/MpvPlayerCore.kt @@ -322,6 +322,9 @@ class MpvPlayerCore(private val activity: Activity) : MPVLib.setOptionString("opengl-es", "yes") // hwdec is set from Flutter via setProperty based on user preference + // Prevent crashes/artifacts from hardware film grain synthesis (mpv #14651) + MPVLib.setOptionString("vd-lavc-film-grain", "cpu") + // Audio configuration MPVLib.setOptionString("ao", "audiotrack") } diff --git a/lib/screens/video_player_screen.dart b/lib/screens/video_player_screen.dart index 6d2c0e90..65a714f8 100644 --- a/lib/screens/video_player_screen.dart +++ b/lib/screens/video_player_screen.dart @@ -2927,7 +2927,7 @@ String _getHwdecValue(bool enabled) { if (Platform.isMacOS || Platform.isIOS) { return 'videotoolbox'; } else if (Platform.isAndroid) { - return 'auto-safe'; + return 'mediacodec,mediacodec-copy'; } else { return 'auto'; // Windows, Linux }