fix: Bitrate display in Media Info (#556)

This commit is contained in:
matt-hb 2025-11-07 11:13:50 +01:00 committed by GitHub
parent b9c1e82b43
commit 2594a8463f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 3 deletions

View file

@ -1,6 +1,7 @@
// ignore_for_file: constant_identifier_names
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/util/bitrate_formatting.dart';
import 'package:fladder/util/size_formatting.dart';
class InformationModel {
@ -35,10 +36,10 @@ class InformationModel {
"Profile": e.profile,
"Level": e.level,
"Resolution": "${e.width}x${e.height}",
"Aspect Ration": e.aspectRatio,
"Aspect Ratio": e.aspectRatio,
"Interlaced": e.isInterlaced,
"FrameRate": e.realFrameRate,
"Bitrate": "${e.bitRate} kbps",
"Bitrate": e.bitRate.videoBitrateFormat,
"Bit depth": e.bitDepth,
"Video range": e.videoRange,
"Video range type": e.videoRangeType,
@ -53,7 +54,7 @@ class InformationModel {
"Language": e.language,
"Codec": e.codec,
"Layout": e.channelLayout,
"Bitrate": "${e.bitRate} kbps",
"Bitrate": e.bitRate.audioBitrateFormat,
"Sample Rate": "${e.sampleRate} Hz",
"Default": e.isDefault,
"Forced": e.isForced,

View file

@ -0,0 +1,23 @@
// ignore_for_file: constant_identifier_names
extension BitrateFormats on int? {
String? get audioBitrateFormat {
final bitrate = this;
if (bitrate == null) return null;
return "${(bitrate / 1000).round()} kbps";
}
String? get videoBitrateFormat {
const int highBitrateCutoff = 10000000;
const int kb = 1000;
const int Mb = kb * kb;
final bitrate = this;
if (bitrate == null) return null;
if (bitrate >= highBitrateCutoff) {
return "${(bitrate / Mb).toStringAsFixed(1)} Mbps";
} else {
return "${(bitrate / kb).round()} kbps";
}
}
}