diff --git a/lib/models/playback/playback_model.dart b/lib/models/playback/playback_model.dart index 14f246635..7fa5745f9 100644 --- a/lib/models/playback/playback_model.dart +++ b/lib/models/playback/playback_model.dart @@ -363,10 +363,16 @@ class PlaybackModelHelper { if (userId?.isEmpty == true) return null; final newStreamModel = streamModel ?? item.streamModel; + final videoPlayerSettings = ref.read(videoPlayerSettingsProvider); + final maxBitRate = selectPlaybackBitrate( + homeInternet: ref.read(connectivityStatusProvider).homeInternet, + maxHomeBitrate: videoPlayerSettings.maxHomeBitrate, + maxInternetBitrate: videoPlayerSettings.maxInternetBitrate, + ); Map qualityOptions = getVideoQualityOptions( VideoQualitySettings( - maxBitRate: ref.read(videoPlayerSettingsProvider.select((value) => value.maxHomeBitrate)), + maxBitRate: maxBitRate, videoBitRate: newStreamModel?.videoStreams.firstOrNull?.bitRate ?? 0, videoCodec: newStreamModel?.videoStreams.firstOrNull?.codec, ), diff --git a/lib/util/bitrate_helper.dart b/lib/util/bitrate_helper.dart index 51a918dbf..d2613f97c 100644 --- a/lib/util/bitrate_helper.dart +++ b/lib/util/bitrate_helper.dart @@ -38,6 +38,14 @@ enum Bitrate { }; } +Bitrate selectPlaybackBitrate({ + required bool homeInternet, + required Bitrate maxHomeBitrate, + required Bitrate maxInternetBitrate, +}) { + return homeInternet ? maxHomeBitrate : maxInternetBitrate; +} + class VideoQualitySettings { final Bitrate? maxBitRate; final int videoBitRate;