diff options
Diffstat (limited to 'MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs | 48 |
1 files changed, 43 insertions, 5 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs index 1f3723653e..d55a42d115 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs @@ -1,4 +1,5 @@ using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; @@ -18,10 +19,14 @@ using System.Threading.Tasks; namespace MediaBrowser.Providers.MediaInfo { public class FFProbeProvider : ICustomMetadataProvider<Episode>, - ICustomMetadataProvider<MusicVideo>, - ICustomMetadataProvider<Movie>, - ICustomMetadataProvider<AdultVideo>, - ICustomMetadataProvider<LiveTvVideoRecording>, + ICustomMetadataProvider<MusicVideo>, + ICustomMetadataProvider<Movie>, + ICustomMetadataProvider<AdultVideo>, + ICustomMetadataProvider<LiveTvVideoRecording>, + ICustomMetadataProvider<LiveTvAudioRecording>, + ICustomMetadataProvider<Trailer>, + ICustomMetadataProvider<Video>, + ICustomMetadataProvider<Audio>, IHasChangeMonitor { private readonly ILogger _logger; @@ -30,7 +35,7 @@ namespace MediaBrowser.Providers.MediaInfo private readonly IItemRepository _itemRepo; private readonly IBlurayExaminer _blurayExaminer; private readonly ILocalizationManager _localization; - + public string Name { get { return "ffprobe"; } @@ -61,6 +66,26 @@ namespace MediaBrowser.Providers.MediaInfo return FetchVideoInfo(item, cancellationToken); } + public Task<ItemUpdateType> FetchAsync(Trailer item, CancellationToken cancellationToken) + { + return FetchVideoInfo(item, cancellationToken); + } + + public Task<ItemUpdateType> FetchAsync(Video item, CancellationToken cancellationToken) + { + return FetchVideoInfo(item, cancellationToken); + } + + public Task<ItemUpdateType> FetchAsync(Audio item, CancellationToken cancellationToken) + { + return FetchAudioInfo(item, cancellationToken); + } + + public Task<ItemUpdateType> FetchAsync(LiveTvAudioRecording item, CancellationToken cancellationToken) + { + return FetchAudioInfo(item, cancellationToken); + } + public FFProbeProvider(ILogger logger, IIsoManager isoManager, IMediaEncoder mediaEncoder, IItemRepository itemRepo, IBlurayExaminer blurayExaminer, ILocalizationManager localization) { _logger = logger; @@ -95,6 +120,19 @@ namespace MediaBrowser.Providers.MediaInfo return prober.ProbeVideo(item, cancellationToken); } + public Task<ItemUpdateType> FetchAudioInfo<T>(T item, CancellationToken cancellationToken) + where T : Audio + { + if (item.LocationType != LocationType.FileSystem) + { + return _cachedTask; + } + + var prober = new FFProbeAudioInfo(_mediaEncoder, _itemRepo); + + return prober.Probe(item, cancellationToken); + } + public bool HasChanged(IHasMetadata item, DateTime date) { return item.DateModified > date; |
