From e043f93a72e75b159b987869cd590c77d55a034e Mon Sep 17 00:00:00 2001 From: theguymadmax Date: Sat, 6 Sep 2025 13:38:00 -0400 Subject: [PATCH] Preserve 3D format on metadata refresh (#14742) --- MediaBrowser.Providers/Manager/MetadataService.cs | 2 +- .../Manager/MetadataServiceTests.cs | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 0f2188aa8a..1d83263c5e 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -1279,7 +1279,7 @@ namespace MediaBrowser.Providers.Manager { if (source is Video sourceCast && target is Video targetCast) { - if (replaceData || !targetCast.Video3DFormat.HasValue) + if (sourceCast.Video3DFormat.HasValue && (replaceData || !targetCast.Video3DFormat.HasValue)) { targetCast.Video3DFormat = sourceCast.Video3DFormat; } diff --git a/tests/Jellyfin.Providers.Tests/Manager/MetadataServiceTests.cs b/tests/Jellyfin.Providers.Tests/Manager/MetadataServiceTests.cs index b5585f4fd2..cdebdadfbc 100644 --- a/tests/Jellyfin.Providers.Tests/Manager/MetadataServiceTests.cs +++ b/tests/Jellyfin.Providers.Tests/Manager/MetadataServiceTests.cs @@ -157,7 +157,17 @@ namespace Jellyfin.Providers.Tests.Manager Assert.True(TestMergeBaseItemData(propName, oldValue, newValue, null, true, out _)); Assert.True(TestMergeBaseItemData(propName, null, newValue, null, false, out _)); - Assert.True(TestMergeBaseItemData(propName, oldValue, null, null, true, out _)); + // Video3DFormat - null values do NOT replace existing data + if (string.Equals(propName, "Video3DFormat", StringComparison.Ordinal)) + { + Assert.False( + TestMergeBaseItemData(propName, oldValue, null, null, true, out _)); + } + else + { + Assert.True( + TestMergeBaseItemData(propName, oldValue, null, null, true, out _)); + } } [Fact]