Browse Source

default duration to make a new epg group per item; default duration to NOT use offline tail (#1834)

pull/1835/head
Jason Dove 1 year ago committed by GitHub
parent
commit
befaa037e2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 12
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutDurationHandler.cs
  2. 2
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadToNextHandler.cs
  3. 2
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadUntilHandler.cs
  4. 6
      ErsatzTV.Core/Scheduling/YamlScheduling/Models/YamlPlayoutDurationInstruction.cs

12
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutDurationHandler.cs

@ -50,6 +50,8 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
targetTime, targetTime,
duration.DiscardAttempts, duration.DiscardAttempts,
duration.Trim, duration.Trim,
duration.OfflineTail,
duration.EpgGroupPerItem,
GetFillerKind(duration), GetFillerKind(duration),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);
@ -67,6 +69,8 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
DateTimeOffset targetTime, DateTimeOffset targetTime,
int discardAttempts, int discardAttempts,
bool trim, bool trim,
bool offlineTail,
bool guideGroupPerItem,
FillerKind fillerKind, FillerKind fillerKind,
IMediaCollectionEnumerator enumerator, IMediaCollectionEnumerator enumerator,
Option<IMediaCollectionEnumerator> fallbackEnumerator) Option<IMediaCollectionEnumerator> fallbackEnumerator)
@ -77,6 +81,11 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
{ {
foreach (MediaItem mediaItem in enumerator.Current) foreach (MediaItem mediaItem in enumerator.Current)
{ {
if (guideGroupPerItem)
{
context.GuideGroup *= -1;
}
TimeSpan itemDuration = DurationForMediaItem(mediaItem); TimeSpan itemDuration = DurationForMediaItem(mediaItem);
var playoutItem = new PlayoutItem var playoutItem = new PlayoutItem
@ -151,6 +160,7 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
foreach (IMediaCollectionEnumerator fallback in fallbackEnumerator) foreach (IMediaCollectionEnumerator fallback in fallbackEnumerator)
{ {
remainingToFill = TimeSpan.Zero; remainingToFill = TimeSpan.Zero;
context.CurrentTime = targetTime;
done = true; done = true;
// replace with fallback content // replace with fallback content
@ -187,6 +197,6 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
} }
} }
return targetTime; return offlineTail ? targetTime : context.CurrentTime;
} }
} }

2
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadToNextHandler.cs

@ -58,6 +58,8 @@ public class YamlPlayoutPadToNextHandler(EnumeratorCache enumeratorCache) : Yaml
targetTime, targetTime,
padToNext.DiscardAttempts, padToNext.DiscardAttempts,
padToNext.Trim, padToNext.Trim,
offlineTail: true,
guideGroupPerItem: false,
GetFillerKind(padToNext), GetFillerKind(padToNext),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);

2
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadUntilHandler.cs

@ -68,6 +68,8 @@ public class YamlPlayoutPadUntilHandler(EnumeratorCache enumeratorCache) : YamlP
targetTime, targetTime,
padUntil.DiscardAttempts, padUntil.DiscardAttempts,
padUntil.Trim, padUntil.Trim,
offlineTail: true,
guideGroupPerItem: false,
GetFillerKind(padUntil), GetFillerKind(padUntil),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);

6
ErsatzTV.Core/Scheduling/YamlScheduling/Models/YamlPlayoutDurationInstruction.cs

@ -8,6 +8,12 @@ public class YamlPlayoutDurationInstruction : YamlPlayoutInstruction
public bool Trim { get; set; } public bool Trim { get; set; }
[YamlMember(Alias = "offline_tail", ApplyNamingConventions = false)]
public bool OfflineTail { get; set; }
[YamlMember(Alias = "epg_group_per_item", ApplyNamingConventions = false)]
public bool EpgGroupPerItem { get; set; } = true;
public string Fallback { get; set; } public string Fallback { get; set; }
[YamlMember(Alias = "discard_attempts", ApplyNamingConventions = false)] [YamlMember(Alias = "discard_attempts", ApplyNamingConventions = false)]

Loading…
Cancel
Save