瀏覽代碼

Fix BD and DVD folder recognition for tv episodes

Shadowghost 2 年之前
父節點
當前提交
3d4b2f840a

+ 14 - 2
Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs

@@ -67,11 +67,23 @@ namespace Emby.Server.Implementations.Library.Resolvers
                     {
                     {
                         if (IsDvdDirectory(child.FullName, filename, args.DirectoryService))
                         if (IsDvdDirectory(child.FullName, filename, args.DirectoryService))
                         {
                         {
-                            videoType = VideoType.Dvd;
+                            var videoTmp = new TVideoType
+                            {
+                                Path = args.Path,
+                                VideoType = VideoType.Dvd
+                            };
+                            Set3DFormat(videoTmp);
+                            return videoTmp;
                         }
                         }
                         else if (IsBluRayDirectory(filename))
                         else if (IsBluRayDirectory(filename))
                         {
                         {
-                            videoType = VideoType.BluRay;
+                            var videoTmp = new TVideoType
+                            {
+                                Path = args.Path,
+                                VideoType = VideoType.BluRay
+                            };
+                            Set3DFormat(videoTmp);
+                            return videoTmp;
                         }
                         }
                     }
                     }
                     else if (IsDvdFile(filename))
                     else if (IsDvdFile(filename))

+ 16 - 10
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

@@ -117,19 +117,25 @@ namespace MediaBrowser.Providers.MediaInfo
                         mediaInfoResult.RunTimeTicks += tmpMediaInfo.RunTimeTicks;
                         mediaInfoResult.RunTimeTicks += tmpMediaInfo.RunTimeTicks;
                     }
                     }
                 }
                 }
-                else
+                else if (item.VideoType == VideoType.BluRay)
                 {
                 {
-                    if (item.VideoType == VideoType.BluRay)
-                    {
-                        blurayDiscInfo = GetBDInfo(item.Path);
-
-                        if (blurayDiscInfo.Files.Length == 0)
+                    blurayDiscInfo = GetBDInfo(item.Path);
+                    var m2ts = _mediaEncoder.GetPrimaryPlaylistM2TsFiles(item.Path, null).ToList();
+                    mediaInfoResult = await GetMediaInfo(
+                        new Video
                         {
                         {
-                            _logger.LogError("No playable vobs found in bluray structure, skipping ffprobe.");
-                            return ItemUpdateType.MetadataImport;
-                        }
-                    }
+                            Path = m2ts.First()
+                        },
+                        cancellationToken).ConfigureAwait(false);
 
 
+                    if (blurayDiscInfo.Files.Length == 0)
+                    {
+                        _logger.LogError("No playable vobs found in bluray structure, skipping ffprobe.");
+                        return ItemUpdateType.MetadataImport;
+                    }
+                }
+                else
+                {
                     mediaInfoResult = await GetMediaInfo(item, cancellationToken).ConfigureAwait(false);
                     mediaInfoResult = await GetMediaInfo(item, cancellationToken).ConfigureAwait(false);
                     cancellationToken.ThrowIfCancellationRequested();
                     cancellationToken.ThrowIfCancellationRequested();
                 }
                 }