IMediaSegmentProvider.cs 1.2 KB

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