28 lines
824 B
C#
28 lines
824 B
C#
using ErsatzTV.Core.Domain;
|
|
using ErsatzTV.Core.Interfaces.Streaming;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace ErsatzTV.Controllers;
|
|
|
|
public class TrackedFileStreamResult(
|
|
Stream fileStream,
|
|
string contentType,
|
|
IDirectStreamSessionTracker directStreamSessionTracker,
|
|
string channelNumber,
|
|
StreamingMode streamingMode) : FileStreamResult(fileStream, contentType)
|
|
{
|
|
public override async Task ExecuteResultAsync(ActionContext context)
|
|
{
|
|
if (HttpMethods.IsHead(context.HttpContext.Request.Method))
|
|
{
|
|
await base.ExecuteResultAsync(context);
|
|
return;
|
|
}
|
|
|
|
using IDisposable registration = directStreamSessionTracker.Register(channelNumber, streamingMode);
|
|
|
|
await base.ExecuteResultAsync(context);
|
|
}
|
|
}
|