aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs')
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeProvider.cs48
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;