فهرست منبع

Preserve 3D format on metadata refresh (#14742)

theguymadmax 1 هفته پیش
والد
کامیت
e043f93a72

+ 1 - 1
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;
                 }

+ 11 - 1
tests/Jellyfin.Providers.Tests/Manager/MetadataServiceTests.cs

@@ -157,7 +157,17 @@ namespace Jellyfin.Providers.Tests.Manager
             Assert.True(TestMergeBaseItemData<Movie, MovieInfo>(propName, oldValue, newValue, null, true, out _));
             Assert.True(TestMergeBaseItemData<Movie, MovieInfo>(propName, null, newValue, null, false, out _));
 
-            Assert.True(TestMergeBaseItemData<Movie, MovieInfo>(propName, oldValue, null, null, true, out _));
+            // Video3DFormat - null values do NOT replace existing data
+            if (string.Equals(propName, "Video3DFormat", StringComparison.Ordinal))
+            {
+                Assert.False(
+                    TestMergeBaseItemData<Movie, MovieInfo>(propName, oldValue, null, null, true, out _));
+            }
+            else
+            {
+                Assert.True(
+                    TestMergeBaseItemData<Movie, MovieInfo>(propName, oldValue, null, null, true, out _));
+            }
         }
 
         [Fact]