feat(jellyfin): show media quality labels

This commit is contained in:
edde746
2026-06-04 09:56:10 +02:00
parent 0e7ff609b6
commit e5bbdc06f9
7 changed files with 283 additions and 76 deletions
+36
View File
@@ -6,6 +6,7 @@ import 'package:plezy/media/media_kind.dart';
import 'package:plezy/media/media_part.dart';
import 'package:plezy/media/media_stream.dart';
import 'package:plezy/media/media_version.dart';
import 'package:plezy/services/jellyfin_mappers.dart';
import 'package:plezy/services/plex_mappers.dart';
import 'package:plezy/utils/media_quality_labels.dart';
@@ -151,6 +152,41 @@ void main() {
expect(buildMediaQualityLabels(item), ['4K', 'DV P8', 'EAC3 5.1']);
});
test('formats Jellyfin stream metadata from MediaSources', () {
final item = JellyfinMappers.mediaItem(
{
'Id': 'movie-1',
'Name': 'Movie',
'Type': 'Movie',
'MediaSources': [
{
'Id': 'source-1',
'DefaultAudioStreamIndex': 2,
'MediaStreams': [
{
'Index': 0,
'Type': 'Video',
'Codec': 'hevc',
'Width': 3840,
'Height': 2160,
'VideoRangeType': 'DOVI',
'VideoDoViTitle': 'Dolby Vision Profile 8',
'DvProfile': 8,
'DvBlSignalCompatibilityId': 1,
},
{'Index': 1, 'Type': 'Audio', 'Codec': 'eac3', 'Channels': 6, 'IsDefault': true},
{'Index': 2, 'Type': 'Audio', 'Codec': 'aac', 'Channels': 2},
],
},
],
},
serverId: ServerId('jellyfin'),
absolutizer: null,
)!;
expect(buildMediaQualityLabels(item), ['4K', 'DV P8', 'AAC Stereo']);
});
test('uses selected audio stream and stereo label', () {
final item = _episodeWithVersion(
MediaVersion(