BaseFFMpegProvider.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using MediaBrowser.Common.IO;
  2. using MediaBrowser.Common.MediaInfo;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Controller.Entities;
  5. using MediaBrowser.Controller.Providers;
  6. using MediaBrowser.Model.Entities;
  7. using MediaBrowser.Model.IO;
  8. using MediaBrowser.Model.Logging;
  9. using System;
  10. using System.Threading.Tasks;
  11. namespace MediaBrowser.Providers.MediaInfo
  12. {
  13. /// <summary>
  14. /// Class BaseFFMpegProvider
  15. /// </summary>
  16. /// <typeparam name="T"></typeparam>
  17. public abstract class BaseFFMpegProvider<T> : BaseMetadataProvider
  18. where T : BaseItem
  19. {
  20. protected readonly IMediaEncoder MediaEncoder;
  21. protected BaseFFMpegProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IMediaEncoder mediaEncoder) : base(logManager, configurationManager)
  22. {
  23. MediaEncoder = mediaEncoder;
  24. }
  25. /// <summary>
  26. /// Supportses the specified item.
  27. /// </summary>
  28. /// <param name="item">The item.</param>
  29. /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
  30. public override bool Supports(BaseItem item)
  31. {
  32. return item.LocationType == LocationType.FileSystem && item is T;
  33. }
  34. /// <summary>
  35. /// Override this to return the date that should be compared to the last refresh date
  36. /// to determine if this provider should be re-fetched.
  37. /// </summary>
  38. /// <param name="item">The item.</param>
  39. /// <returns>DateTime.</returns>
  40. protected override DateTime CompareDate(BaseItem item)
  41. {
  42. return item.DateModified;
  43. }
  44. /// <summary>
  45. /// The null mount task result
  46. /// </summary>
  47. protected readonly Task<IIsoMount> NullMountTaskResult = Task.FromResult<IIsoMount>(null);
  48. /// <summary>
  49. /// Gets the provider version.
  50. /// </summary>
  51. /// <value>The provider version.</value>
  52. protected override string ProviderVersion
  53. {
  54. get
  55. {
  56. return MediaEncoder.Version;
  57. }
  58. }
  59. /// <summary>
  60. /// Gets a value indicating whether [refresh on version change].
  61. /// </summary>
  62. /// <value><c>true</c> if [refresh on version change]; otherwise, <c>false</c>.</value>
  63. protected override bool RefreshOnVersionChange
  64. {
  65. get
  66. {
  67. return true;
  68. }
  69. }
  70. }
  71. }