Development for jellyflood
Go to file
Joe 56bd62db80
App-Wide Bitrate Limit (#1147)
* Creation of bitrate selections that mirror Jellyfin-Web. The goal is to eventually allow for these same selections to be available for usage in the Player itself to set the max bitrate per playback session. This App-Wide setting is for things like preserving data (Mobile) or for areas that have perpetually have low bandwidth (AppleTV). These settings currently default to 'Auto' which is the current limit of 360,000,000 bps / 360 mpbs. I have added a spot in BaseItemDTO+VideoPlayerViewModel to get the smaller amount between 360 Mpbs and the App Maximum Setting. This exists so I can go back and update this to get the Minumum between the Player Session max bitrate and the App Setting max bitrate.

Test on iPhone 10S, AppleTV 3rd Gen, and the iPhone 15 Pro via enumulator.

* Fix Bitrate naming (360p vs 480p) and remove the setting nested in a second section.

* Creation of a Maximum setting with 360mbps and an auto that gets the bitrate at playback.

* Remove comments for code where I want to eventually put it for better clarify

* Linting fixes

* Change the Playback Bitrate to an Int from a String since the Bitrate is valuable but the string isn't. Run the SwiftFormat on the maxBitrate function.

* Migrate the settings to their own menu with both the bitrate and the optional test size when auto is used.

* Creation of an enum filterValues function for Bitrate. This way, the selection on the Player Overlay (eventually) can be filtered to only include bitrates that are less than or equal to the App Setting for Maximum Bitrate. This should help prevent confusion / remove bandwidth conflicts.

The eventual Player Overlay setting should never conflict with the App-Wide Setting and should only offer options that are less than the App-Wide Setting.

* Change the videoPlayerViewModel to take parameters instead of defaults. Move the defaults up one level to be called there. Split the bitrate test from the getMaxBitrate to better guard against dividing against 0 and also split out the logic to be easier to read.

Change the PlaybackBitrate filter to always include Auto and, when auto, include ALL bitrates. This filter is not currently used.

* Remove the PlaybackBitrate FilterValues since this is not needed and will be created ad-hoc.

* Update the bitrateTestDuration verbage to better reflect that you're changing the size of the bitrate test and not just increasing the duration. Re-use the existing largest to smallest labels since there isn't a ton of benefit using "Longest to Shortest" so this should re-use existing localization. Comment the Labels.

No functional changes. Only an update to labels.

* Delete the Bitrate.json file but retain the Resources folder.

* Remove Resource Folder.

---------

Co-authored-by: Joe Kribs <joseph@kribs.net>
2024-07-23 06:18:28 -05:00
.github Initial fastlane Setup (#1089) 2024-06-09 22:08:43 -06:00
PreferencesView Refactor `PosterButton` and libraries, good `UICollectionView`s, proper orientation handling, and more (#905) 2024-03-11 08:09:30 -06:00
Resources Update TestFlight Instructions (#751) 2023-04-20 10:41:32 -06:00
Shared App-Wide Bitrate Limit (#1147) 2024-07-23 06:18:28 -05:00
Swiftfin App-Wide Bitrate Limit (#1147) 2024-07-23 06:18:28 -05:00
Swiftfin tvOS App-Wide Bitrate Limit (#1147) 2024-07-23 06:18:28 -05:00
Swiftfin.xcodeproj App-Wide Bitrate Limit (#1147) 2024-07-23 06:18:28 -05:00
Translations App-Wide Bitrate Limit (#1147) 2024-07-23 06:18:28 -05:00
fastlane Initial fastlane Setup (#1089) 2024-06-09 22:08:43 -06:00
.gitignore Use external lib 2022-07-10 21:20:12 +02:00
.swiftformat Initial fastlane Setup (#1089) 2024-06-09 22:08:43 -06:00
Cartfile VLCKit Hard Versioning (#1136) 2024-06-30 16:05:26 +09:00
ChromeCastFramework.json #983 Fixing build instructions (#985) 2024-03-10 19:46:59 -06:00
Gemfile Initial fastlane Setup (#1089) 2024-06-09 22:08:43 -06:00
LICENSE.md Fix some formatting 2021-06-09 23:15:51 -07:00
README.md Update README.md (#1134) 2024-06-29 16:16:49 -06:00
RedrawOnNotificationView.swift User Profile Image Selection (#1061) 2024-05-22 13:45:48 +09:00
contributing.md Enable Swift Symbol Generation for Assets Catalogs (#955) 2024-03-13 14:37:03 -06:00
swiftgen.yml Navigation and Item Overhaul (#492) 2022-08-05 10:54:40 -06:00

README.md

Swiftfin

Swiftfin

Swiftfin is a modern video client for the Jellyfin media server. Made using Swift to maximize direct play with the power of VLC and look native on all classes of Apple devices.

Download

Download on the Apple App Store

🛠️ TestFlight

Use the TestFlight version to test new features and bug fixes before being published to the App Store. We are grateful for your time and resources for reporting new bugs.

[!NOTE] As of June 11, 2024, only iOS has a TestFlight version. tvOS is planned for the near future.

Get the beta on TestFlight

⚙️ Development

Thank you for your interest in Swiftfin! Please check out the Contribution Guidelines to get started.

📚 Translations

Don't see Swiftfin in your language?

Check out our Weblate instance to help translate Swiftfin and other Jellyfin projects.