mirror of
https://github.com/kodjodevf/mangayomi.git
synced 2026-01-11 22:40:36 +00:00
Merge pull request #571 from Schnitzel5/player/hw-accel
added option to turn on/off mpv hardware acceleration
This commit is contained in:
commit
de7800c6af
27 changed files with 545 additions and 287 deletions
|
|
@ -482,6 +482,8 @@
|
|||
"you_have_finished_reading": "You have finished reading",
|
||||
"return_to_the_list_of_chapters": "Return to the list of chapters",
|
||||
"hwdec": "Hardware Decoder",
|
||||
"enable_hardware_accel": "Hardware Acceleration",
|
||||
"enable_hardware_accel_info": "Turn it on/off if you are experiencing bugs or crashes",
|
||||
"track_library_navigate": "Go to existing local entry",
|
||||
"track_library_add": "Add to local library",
|
||||
"track_library_add_confirm": "Add tracked item to local library",
|
||||
|
|
|
|||
|
|
@ -2967,6 +2967,18 @@ abstract class AppLocalizations {
|
|||
/// **'Hardware Decoder'**
|
||||
String get hwdec;
|
||||
|
||||
/// No description provided for @enable_hardware_accel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Hardware Acceleration'**
|
||||
String get enable_hardware_accel;
|
||||
|
||||
/// No description provided for @enable_hardware_accel_info.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Turn it on/off if you are experiencing bugs or crashes'**
|
||||
String get enable_hardware_accel_info;
|
||||
|
||||
/// No description provided for @track_library_navigate.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
|
|
@ -1526,6 +1526,13 @@ class AppLocalizationsAr extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1528,6 +1528,13 @@ class AppLocalizationsAs extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1538,6 +1538,13 @@ class AppLocalizationsDe extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1527,6 +1527,13 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1544,6 +1544,13 @@ class AppLocalizationsEs extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1545,6 +1545,13 @@ class AppLocalizationsFr extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1529,6 +1529,13 @@ class AppLocalizationsHi extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1533,6 +1533,13 @@ class AppLocalizationsId extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1542,6 +1542,13 @@ class AppLocalizationsIt extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1541,6 +1541,13 @@ class AppLocalizationsPt extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1543,6 +1543,13 @@ class AppLocalizationsRu extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1527,6 +1527,13 @@ class AppLocalizationsTh extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1533,6 +1533,13 @@ class AppLocalizationsTr extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -1498,6 +1498,13 @@ class AppLocalizationsZh extends AppLocalizations {
|
|||
@override
|
||||
String get hwdec => 'Hardware Decoder';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel => 'Hardware Acceleration';
|
||||
|
||||
@override
|
||||
String get enable_hardware_accel_info =>
|
||||
'Turn it on/off if you are experiencing bugs or crashes';
|
||||
|
||||
@override
|
||||
String get track_library_navigate => 'Go to existing local entry';
|
||||
|
||||
|
|
|
|||
|
|
@ -212,6 +212,8 @@ class Settings {
|
|||
|
||||
String? hwdecMode;
|
||||
|
||||
bool? enableHardwareAcceleration;
|
||||
|
||||
int? libraryFilterNovelDownloadType;
|
||||
|
||||
int? libraryFilterNovelUnreadType;
|
||||
|
|
@ -373,6 +375,7 @@ class Settings {
|
|||
this.disableSectionType = SectionType.all,
|
||||
this.useLibass = true,
|
||||
this.hwdecMode = "auto",
|
||||
this.enableHardwareAcceleration,
|
||||
this.libraryFilterNovelDownloadType = 0,
|
||||
this.libraryFilterNovelUnreadType = 0,
|
||||
this.libraryFilterNovelStartedType = 0,
|
||||
|
|
@ -577,6 +580,7 @@ class Settings {
|
|||
SectionType.values[json['disableSectionType'] ?? SectionType.all.index];
|
||||
useLibass = json['useLibass'];
|
||||
hwdecMode = json['hwdecMode'];
|
||||
enableHardwareAcceleration = json['enableHardwareAcceleration'];
|
||||
libraryFilterNovelBookMarkedType = json['libraryFilterNovelBookMarkedType'];
|
||||
libraryFilterNovelDownloadType = json['libraryFilterNovelDownloadType'];
|
||||
libraryFilterNovelStartedType = json['libraryFilterNovelStartedType'];
|
||||
|
|
@ -759,6 +763,7 @@ class Settings {
|
|||
'disableSectionType': disableSectionType.index,
|
||||
'useLibass': useLibass,
|
||||
'hwdecMode': hwdecMode,
|
||||
'enableHardwareAcceleration': enableHardwareAcceleration,
|
||||
'libraryFilterNovelBookMarkedType': libraryFilterNovelBookMarkedType,
|
||||
'libraryFilterNovelDownloadType': libraryFilterNovelDownloadType,
|
||||
'libraryFilterNovelStartedType': libraryFilterNovelStartedType,
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -255,6 +255,7 @@ class _AnimeStreamPageState extends riv.ConsumerState<AnimeStreamPage>
|
|||
),
|
||||
);
|
||||
late final hwdecMode = ref.read(hwdecModeStateProvider());
|
||||
late final enableHardwareAccel = ref.read(enableHardwareAccelStateProvider);
|
||||
late final VideoController _controller;
|
||||
late final _streamController = ref.read(
|
||||
animeStreamControllerProvider(episode: widget.episode).notifier,
|
||||
|
|
@ -843,6 +844,7 @@ mp.register_script_message('call_button_${button.id}_long', button${button.id}lo
|
|||
_player,
|
||||
configuration: VideoControllerConfiguration(
|
||||
hwdec: hwdecMode,
|
||||
enableHardwareAcceleration: enableHardwareAccel,
|
||||
vo: Platform.isAndroid
|
||||
? useGpuNext
|
||||
? "gpu-next"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,11 @@ Stream<List<Source>> getExtensionsStream(Ref ref, ItemType itemType) async* {
|
|||
.filter()
|
||||
.idIsNotNull()
|
||||
.and()
|
||||
.repo((q) => q.hiddenIsNull().or().hiddenEqualTo(false))
|
||||
.group(
|
||||
(q) => q.repoIsNull().or().repo(
|
||||
(q) => q.hiddenIsNull().or().hiddenEqualTo(false),
|
||||
),
|
||||
)
|
||||
.isActiveEqualTo(true)
|
||||
.itemTypeEqualTo(itemType)
|
||||
.watch(fireImmediately: true);
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ class _AddDownloadToQueueProviderElement
|
|||
Chapter get chapter => (origin as AddDownloadToQueueProvider).chapter;
|
||||
}
|
||||
|
||||
String _$downloadChapterHash() => r'4d008f26f03bf21010742b73cf83643c61f66c2b';
|
||||
String _$downloadChapterHash() => r'5eb401736efdfb2990fda6e2d97160aaeb94aec1';
|
||||
|
||||
/// See also [downloadChapter].
|
||||
@ProviderFor(downloadChapter)
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ class PlayerDecoderScreen extends ConsumerStatefulWidget {
|
|||
class _PlayerDecoderScreenState extends ConsumerState<PlayerDecoderScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final enableHardwareAccel = ref.watch(enableHardwareAccelStateProvider);
|
||||
final hwdecMode = ref.watch(hwdecModeStateProvider(rawValue: true));
|
||||
final useGpuNext = ref.watch(useGpuNextStateProvider);
|
||||
final debandingType = ref.watch(debandingStateProvider);
|
||||
|
|
@ -27,6 +28,17 @@ class _PlayerDecoderScreenState extends ConsumerState<PlayerDecoderScreen> {
|
|||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
children: [
|
||||
SwitchListTile(
|
||||
value: enableHardwareAccel,
|
||||
title: Text(context.l10n.enable_hardware_accel),
|
||||
subtitle: Text(
|
||||
context.l10n.enable_hardware_accel_info,
|
||||
style: TextStyle(fontSize: 11, color: context.secondaryColor),
|
||||
),
|
||||
onChanged: (value) {
|
||||
ref.read(enableHardwareAccelStateProvider.notifier).set(value);
|
||||
},
|
||||
),
|
||||
ListTile(
|
||||
onTap: () {
|
||||
final values = [
|
||||
|
|
|
|||
|
|
@ -49,6 +49,29 @@ class HwdecModeState extends _$HwdecModeState {
|
|||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class EnableHardwareAccelState extends _$EnableHardwareAccelState {
|
||||
@override
|
||||
bool build() {
|
||||
return isar.settings.getSync(227)!.enableHardwareAcceleration ??
|
||||
Platform.isMacOS
|
||||
? false
|
||||
: true;
|
||||
}
|
||||
|
||||
void set(bool value) {
|
||||
final settings = isar.settings.getSync(227);
|
||||
state = value;
|
||||
isar.writeTxnSync(
|
||||
() => isar.settings.putSync(
|
||||
settings!
|
||||
..enableHardwareAcceleration = value
|
||||
..updatedAt = DateTime.now().millisecondsSinceEpoch,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@riverpod
|
||||
class DebandingState extends _$DebandingState {
|
||||
@override
|
||||
|
|
|
|||
|
|
@ -157,6 +157,23 @@ class _HwdecModeStateProviderElement
|
|||
bool get rawValue => (origin as HwdecModeStateProvider).rawValue;
|
||||
}
|
||||
|
||||
String _$enableHardwareAccelStateHash() =>
|
||||
r'4804b699c14a78db9c760ec4eaf8a88bb6ce1b9b';
|
||||
|
||||
/// See also [EnableHardwareAccelState].
|
||||
@ProviderFor(EnableHardwareAccelState)
|
||||
final enableHardwareAccelStateProvider =
|
||||
AutoDisposeNotifierProvider<EnableHardwareAccelState, bool>.internal(
|
||||
EnableHardwareAccelState.new,
|
||||
name: r'enableHardwareAccelStateProvider',
|
||||
debugGetCreateSourceHash: const bool.fromEnvironment('dart.vm.product')
|
||||
? null
|
||||
: _$enableHardwareAccelStateHash,
|
||||
dependencies: null,
|
||||
allTransitiveDependencies: null,
|
||||
);
|
||||
|
||||
typedef _$EnableHardwareAccelState = AutoDisposeNotifier<bool>;
|
||||
String _$debandingStateHash() => r'b93e2fc826d98cc8bce1aab9a92900353e4d3958';
|
||||
|
||||
/// See also [DebandingState].
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'aniskip.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$aniSkipHash() => r'887869b54e2e151633efd46da83bde845e14f421';
|
||||
String _$aniSkipHash() => r'2e5d19b025a2207ff64da7bf7908450ea9e5ff8c';
|
||||
|
||||
/// See also [AniSkip].
|
||||
@ProviderFor(AniSkip)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ part of 'anilist.dart';
|
|||
// RiverpodGenerator
|
||||
// **************************************************************************
|
||||
|
||||
String _$anilistHash() => r'b3c56b172308ecd98c4dd9fb89d17ccc36487754';
|
||||
String _$anilistHash() => r'89e86869bd2b807e08beb8b7af507809d8bb9895';
|
||||
|
||||
/// Copied from Dart SDK
|
||||
class _SystemHash {
|
||||
|
|
|
|||
26
pubspec.lock
26
pubspec.lock
|
|
@ -1125,7 +1125,7 @@ packages:
|
|||
description:
|
||||
path: media_kit
|
||||
ref: HEAD
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.2.0"
|
||||
|
|
@ -1133,8 +1133,8 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
path: "libs/android/media_kit_libs_android_video"
|
||||
ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.3.7"
|
||||
|
|
@ -1142,8 +1142,8 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
path: "libs/ios/media_kit_libs_ios_video"
|
||||
ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.1.4"
|
||||
|
|
@ -1151,8 +1151,8 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
path: "libs/linux/media_kit_libs_linux"
|
||||
ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.2.1"
|
||||
|
|
@ -1160,8 +1160,8 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
path: "libs/macos/media_kit_libs_macos_video"
|
||||
ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.1.4"
|
||||
|
|
@ -1170,7 +1170,7 @@ packages:
|
|||
description:
|
||||
path: "libs/universal/media_kit_libs_video"
|
||||
ref: HEAD
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.0.6"
|
||||
|
|
@ -1178,8 +1178,8 @@ packages:
|
|||
dependency: transitive
|
||||
description:
|
||||
path: "libs/windows/media_kit_libs_windows_video"
|
||||
ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.0.11"
|
||||
|
|
@ -1188,7 +1188,7 @@ packages:
|
|||
description:
|
||||
path: media_kit_video
|
||||
ref: HEAD
|
||||
resolved-ref: baeecb6aa673e49a173448909a9e15d17d1a9c23
|
||||
resolved-ref: "62b08e33590cba8fba4797eaaa1e95b514adb437"
|
||||
url: "https://github.com/Schnitzel5/media-kit.git"
|
||||
source: git
|
||||
version: "1.3.0"
|
||||
|
|
|
|||
Loading…
Reference in a new issue