add channel transcode mode and idle behavior (#2255)
* add channel transcode mode and idle behavior * allow custom_title on all yaml content instructions
This commit is contained in:
@@ -52,12 +52,19 @@
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Active Mode</MudText>
|
||||
<MudText>Transcode Mode</MudText>
|
||||
</div>
|
||||
<MudSelect @bind-Value="_model.ActiveMode" For="@(() => _model.ActiveMode)">
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Active)">Active</MudSelectItem>
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Hidden)">Hidden</MudSelectItem>
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Inactive)">Inactive</MudSelectItem>
|
||||
<MudSelect @bind-Value="_model.TranscodeMode" For="@(() => _model.TranscodeMode)" Disabled="true" HelperText="Controls when the transcoding process is active">
|
||||
<MudSelectItem Value="@(ChannelTranscodeMode.OnDemand)">On Demand</MudSelectItem>
|
||||
</MudSelect>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Idle Behavior</MudText>
|
||||
</div>
|
||||
<MudSelect @bind-Value="_model.IdleBehavior" For="@(() => _model.IdleBehavior)" HelperText="Controls how the transcoding process behaves after all clients have disconnected">
|
||||
<MudSelectItem Value="@(ChannelIdleBehavior.StopOnDisconnect)">Stop On Disconnect</MudSelectItem>
|
||||
<MudSelectItem Value="@(ChannelIdleBehavior.KeepRunning)">Keep Running</MudSelectItem>
|
||||
</MudSelect>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
@@ -69,13 +76,23 @@
|
||||
<MudSelectItem Value="@(ChannelPlayoutMode.OnDemand)">On Demand</MudSelectItem>
|
||||
</MudSelect>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Active Mode</MudText>
|
||||
</div>
|
||||
<MudSelect @bind-Value="_model.ActiveMode" For="@(() => _model.ActiveMode)">
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Active)">Active</MudSelectItem>
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Hidden)">Hidden</MudSelectItem>
|
||||
<MudSelectItem Value="@(ChannelActiveMode.Inactive)">Inactive</MudSelectItem>
|
||||
</MudSelect>
|
||||
</MudStack>
|
||||
<MudStack Row="true" Breakpoint="Breakpoint.SmAndDown" Class="form-field-stack gap-md-8 mb-5">
|
||||
<div class="d-flex">
|
||||
<MudText>Streaming Mode</MudText>
|
||||
</div>
|
||||
<MudSelect @bind-Value="_model.StreamingMode" For="@(() => _model.StreamingMode)">
|
||||
<MudSelectItem Value="@(StreamingMode.TransportStreamHybrid)">MPEG-TS</MudSelectItem>
|
||||
<MudSelectItem Value="@(StreamingMode.TransportStream)">MPEG-TS (Legacy)</MudSelectItem>
|
||||
@* <MudSelectItem Value="@(StreamingMode.TransportStream)">MPEG-TS (Legacy)</MudSelectItem> *@
|
||||
<MudSelectItem Value="@(StreamingMode.HttpLiveStreamingDirect)">HLS Direct</MudSelectItem>
|
||||
<MudSelectItem Value="@(StreamingMode.HttpLiveStreamingSegmenter)">HLS Segmenter</MudSelectItem>
|
||||
<MudSelectItem Value="@(StreamingMode.HttpLiveStreamingSegmenterV2)">HLS Segmenter V2</MudSelectItem>
|
||||
@@ -324,6 +341,8 @@
|
||||
_model.MusicVideoCreditsTemplate = channelViewModel.MusicVideoCreditsTemplate;
|
||||
_model.SongVideoMode = channelViewModel.SongVideoMode;
|
||||
_model.ActiveMode = channelViewModel.ActiveMode;
|
||||
_model.TranscodeMode = channelViewModel.TranscodeMode;
|
||||
_model.IdleBehavior = channelViewModel.IdleBehavior;
|
||||
},
|
||||
() => NavigationManager.NavigateTo("404"));
|
||||
}
|
||||
|
||||
@@ -206,7 +206,8 @@
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"offline_tail": { "type": "boolean" },
|
||||
"stop_before_end": { "type": "boolean" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "duration", "content" ],
|
||||
"additionalProperties": false
|
||||
@@ -219,7 +220,8 @@
|
||||
"trim": { "type": "boolean" },
|
||||
"fallback": { "type": "string" },
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "pad_to_next", "content" ],
|
||||
"additionalProperties": false
|
||||
@@ -235,7 +237,8 @@
|
||||
"fallback": { "type": "string" },
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"stop_before_end": { "type": "boolean" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "pad_until", "content" ],
|
||||
"additionalProperties": false
|
||||
|
||||
@@ -250,7 +250,8 @@
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"offline_tail": { "type": "boolean" },
|
||||
"stop_before_end": { "type": "boolean" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "duration", "content" ],
|
||||
"additionalProperties": false
|
||||
@@ -263,7 +264,8 @@
|
||||
"trim": { "type": "boolean" },
|
||||
"fallback": { "type": "string" },
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "pad_to_next", "content" ],
|
||||
"additionalProperties": false
|
||||
@@ -279,7 +281,8 @@
|
||||
"fallback": { "type": "string" },
|
||||
"discard_attempts": { "type": "integer" },
|
||||
"stop_before_end": { "type": "boolean" },
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" }
|
||||
"filler_kind": { "$ref": "#/$defs/enums/filler_kind" },
|
||||
"custom_title": { "type": "string" }
|
||||
},
|
||||
"required": [ "pad_until", "content" ],
|
||||
"additionalProperties": false
|
||||
|
||||
@@ -37,6 +37,8 @@ public class ChannelEditViewModel
|
||||
|
||||
public ChannelSongVideoMode SongVideoMode { get; set; }
|
||||
public ChannelActiveMode ActiveMode { get; set; }
|
||||
public ChannelTranscodeMode TranscodeMode { get; set; }
|
||||
public ChannelIdleBehavior IdleBehavior { get; set; }
|
||||
|
||||
public UpdateChannel ToUpdate() =>
|
||||
new(
|
||||
@@ -62,7 +64,9 @@ public class ChannelEditViewModel
|
||||
MusicVideoCreditsMode,
|
||||
MusicVideoCreditsTemplate,
|
||||
SongVideoMode,
|
||||
ActiveMode);
|
||||
ActiveMode,
|
||||
TranscodeMode,
|
||||
IdleBehavior);
|
||||
|
||||
public CreateChannel ToCreate() =>
|
||||
new(
|
||||
@@ -87,5 +91,7 @@ public class ChannelEditViewModel
|
||||
MusicVideoCreditsMode,
|
||||
MusicVideoCreditsTemplate,
|
||||
SongVideoMode,
|
||||
ActiveMode);
|
||||
ActiveMode,
|
||||
TranscodeMode,
|
||||
IdleBehavior);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user