IMediaSegmentProvider.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.Collections.Generic;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using MediaBrowser.Controller.Entities;
  5. using MediaBrowser.Model;
  6. using MediaBrowser.Model.MediaSegments;
  7. namespace MediaBrowser.Controller.MediaSegments;
  8. /// <summary>
  9. /// Provides methods for Obtaining the Media Segments from an Item.
  10. /// </summary>
  11. public interface IMediaSegmentProvider
  12. {
  13. /// <summary>
  14. /// Gets the provider name.
  15. /// </summary>
  16. string Name { get; }
  17. /// <summary>
  18. /// Enumerates all Media Segments from an Media Item.
  19. /// </summary>
  20. /// <param name="request">Arguments to enumerate MediaSegments.</param>
  21. /// <param name="cancellationToken">Abort token.</param>
  22. /// <returns>A list of all MediaSegments found from this provider.</returns>
  23. Task<IReadOnlyList<MediaSegmentDto>> GetMediaSegments(MediaSegmentGenerationRequest request, CancellationToken cancellationToken);
  24. /// <summary>
  25. /// Should return support state for the given item.
  26. /// </summary>
  27. /// <param name="item">The base item to extract segments from.</param>
  28. /// <returns>True if item is supported, otherwise false.</returns>
  29. ValueTask<bool> Supports(BaseItem item);
  30. }