timothy and Claude Opus 4.8
beab219a90
test(392): cover schedule pad through Flood/Duration/Multiple; make day-seam clamp precise
...
Adds parameterized invariant tests (Schedule_clock_padded_offline_multimode)
exercising schedule-level clock pad + offline advance across a 2-day window
(two midnight crossings) through Flood, Duration, and Multiple — previously
only PlayoutModeSchedulerOne had any coverage. Fixture uses sub-15-min content
so each padded item occupies one :15 slot and Duration's fill-the-block
contract tiles exactly (no off-boundary packing).
Part 2 (precision): replaces the day-boundary anchor-clamp magnitude heuristic
(overrun <= one pad interval on a padded schedule) with a precise signal — the
last scheduler now reports the exact offline-pad target it advanced CurrentTime
to (transient PlayoutSchedulerResult.ClockPadOfflineTarget, never persisted),
and the clamp exempts only when CurrentTime equals that target exactly. A
non-offline overrun (Duration/Flood/Multiple ending short of its natural end, a
hard-stop, a tail advance) changes CurrentTime away from the target and still
clamps, so persisted NextStart no longer shifts by up to an interval. No
persisted-schema/migration change. Output byte-identical for all existing
goldens.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-23 08:03:31 +02:00
timothy
7efe38dd04
feat(392): honor ProgramSchedule.PadToNearestMinute in the Classic builder
2026-07-23 08:03:31 +02:00
Jason Dove and GitHub
2ad6547349
scheduler context improvements ( #2819 )
...
* improve classic scheduling context display
* add basic block scheduling context
* add scheduling context to classic filler
* improve parsing
2026-02-09 20:19:52 -06:00
Jason Dove and GitHub
4fa11b6943
add scheduling context to playout details table ( #2817 )
...
* add scheduling context to playout details table
* fix missing context copies
2026-02-05 13:45:05 -06:00
Jason Dove and GitHub
08ceb53b2b
make count an expression in classic schedules ( #2794 )
...
* make count an expression in classic schedules
* add tests
2026-01-20 09:50:45 -06:00
Jason Dove and GitHub
ba5a027525
reduce playout log spam ( #2543 )
2025-10-18 08:59:17 -05:00
Jason Dove and GitHub
144b3fe80b
fix remote stream durations in playouts ( #2515 )
2025-10-11 08:30:24 -05:00
Jason Dove and GitHub
245165c9d9
add rerun collection type ( #2421 )
...
* rename collection type
* split collections into separate pages
* add rerun collection types, migration, editor
* add rerun to classic schedule items
* rerun plumbing in classic playout builder
* start to implement rerun enumerator
* add scheduledAt to enumerator movenext
* maintain rerun history in db
* fix shuffle
* fix rerun allowed playback orders
* fix updating rerun collections
* update changelog; fix editing
* update changelog
2025-09-15 18:27:55 +00:00
Jason Dove and GitHub
40ab7c2cff
add graphics elements on classic schedule items ( #2380 )
2025-09-05 11:53:29 +00:00
Jason Dove and GitHub
8a1cf72209
more alternate schedule fixes ( #2354 )
...
* always start with the first schedule item
* reset program schedule items to zero-based index on save
* log offline gaps from strict start times
2025-08-28 14:48:39 +00:00
Jason Dove and GitHub
5d081ceeff
fix editorconfig and run code cleanup ( #2324 )
...
* fix formatting rules
* reformat ersatztv
* reformat ersatztv.application
* reformat ersatztv.core
* refactor ersatztv.core.tests
* reformat ersatztv.ffmpeg
* reformat ersatztv.ffmpeg.tests
* reformat ersatztv.infrastructure
* cleanup infra mysql
* cleanup infra sqlite
* cleanup infra tests
* cleanup ersatztv.scanner
* cleanup ersatztv.scanner.tests
* sln cleanup
* update dependencies
2025-08-16 14:44:48 +00:00
Jason Dove and GitHub
942cf9e225
allow selecting multiple watermarks on schedule items ( #2286 )
...
* add and populate new table
* add watermark multiselect
* remove old column
* update changelog
* fix tests
2025-08-09 13:53:37 +00:00
Jason Dove and GitHub
c7fcaf8886
refactor playout building ( #2273 )
...
* refactor playout building
* remove playout items
2025-08-07 15:20:26 +00:00
Jason Dove and GitHub
5a5c049835
support multiple watermarks in yaml schedules ( #2267 )
...
* add multiple watermarks per playout item
* fixes
* update yaml playout watermark to support multiple watermarks
* use graphics engine for intermittent watermarks
2025-08-06 21:22:20 +00:00
Jason Dove and GitHub
6a84c564d6
add multi-episode group size ( #2164 )
2025-07-18 14:46:00 +00:00
Jason Dove and GitHub
54be3761dd
add multiple mode to schedule items ( #2163 )
2025-07-18 14:03:56 +00:00
Jason Dove and GitHub
464c1e2ea8
fix bugs with playout mode multiple ( #2160 )
2025-07-18 01:53:19 +00:00
Jason Dove and GitHub
a87ec2d75d
cleanup ( #1708 )
...
* fix blazor naming
* code cleanup
* update dependencies
2024-05-06 17:00:52 -05:00
Jason Dove and GitHub
c46b3787d8
set guide mode filler as appropriate on playlist items ( #1691 )
2024-04-27 20:31:03 -05:00
Jason Dove and GitHub
c18be5559b
fix delete old segments ( #1536 )
...
* code cleanup
* ignore errors deleting old hls segments
2024-01-04 10:42:04 -06:00
Jason Dove and GitHub
18ed20e203
fix multiple zero when using fill with group ( #1535 )
2024-01-02 15:29:50 -06:00
Jason Dove and GitHub
f929dc92d1
update dependencies; code cleanup ( #1357 )
...
* update dependencies
* code cleanup
2023-08-07 09:34:25 -05:00
Jason Dove and GitHub
e8cbcc935f
rework pad and duration filler ( #1304 )
2023-06-14 15:54:41 -05:00
Jason Dove and GitHub
2ccba9e476
timeout playout builds after 2 minutes ( #1269 )
...
* add cancellation token support to playout builds and collection enumerators
* fix playout bug with shuffle in order
* update changelog
2023-05-08 11:53:02 -05:00
Jason Dove and GitHub
9313d2c8eb
fix guide mode filler in xmltv ( #1000 )
2022-10-16 13:23:26 -05:00
Jason Dove and GitHub
555b156154
fix tail and fallback filler scheduling ( #981 )
2022-10-07 09:21:19 -05:00
Jason Dove and GitHub
46331ed2c6
add preferred audio title feature ( #943 )
...
* use consistent edit/delete icons
* add preferred audio title feature
* update dependencies
2022-08-30 17:04:41 -05:00
Jason Dove and GitHub
a61c4b3472
fix a handful of scheduling edge cases ( #814 )
2022-05-18 06:00:58 -05:00
Jason Dove and GitHub
4f6522379d
fix custom title scheduling ( #802 )
2022-05-13 13:06:05 -05:00
Jason Dove and GitHub
78383bd5fa
override languages and subtitles on schedule items ( #753 )
2022-04-22 15:45:54 -05:00
Jason Dove and GitHub
c02b83d0d6
code cleanup ( #743 )
...
* update tools
* run code cleanup
* update dependencies
2022-04-19 17:47:18 -05:00
Jason Dove and GitHub
1ee3446589
add schedule item watermark setting ( #733 )
2022-04-12 21:01:20 -05:00
Jason Dove and GitHub
c2eec2fc2d
playout rework to maintain collection progress ( #720 )
...
* initial work on maintaining playout state
* debugging wip
* fix refresh playout logic
* fix failing test
* more fixes
* update changelog
* comment out some debug logs
* comment out more logs
2022-04-02 21:19:59 -05:00
Jason Dove and GitHub
1ab98578ab
refactor namespaces and imports ( #670 )
...
* re-namespace
* optimize usings
* more usings
* more of the same
* more implicit/global usings
* cleanup all usings
* minor fixes
2022-03-03 15:36:07 -06:00
Jason Dove and GitHub
78fdc9c57a
add option to shuffle schedule items ( #652 )
...
* add schedule setting
* it works
* fix tests
* update readme
* rebuild all playouts
2022-02-22 21:20:40 -06:00
Jason Dove and GitHub
53a7570ba3
fix epg for multiple playout mode ( #461 )
2021-10-30 12:16:39 -05:00
Jason Dove and GitHub
6d147de2f3
filler rework ( #449 )
...
* add chapter statistics and new filler options
* refactor playout builder
* more refactor prep for filler
* rewrite schedulers
* refactor collectionkey
* add tail filler kind
* migrate tail filler to filler preset
* optionally show filler
* fix playout detail row count
* remove duration tail filler options
* implement tail and fallback in flood scheduler
* implement tail and fallback in one scheduler
* implement tail and fallback in multiple scheduler
* implement looping fallback filler
* more duration tests
* start to add post-roll filler to flood
* rework playoutitem filler tagging
* rework scheduler logging
* calculate whether configured filler will fit
* implement pre-roll and post-roll duration and count filler
* improve duration filler calculation
* add minutes to search index
* update channel guide to work with new filler
* add mid-roll filler
* don't clone enumerators for filler calculations
* support pre-roll and post-roll pad filler
* implement mid-roll pad filler
* allow clearing filler selections in schedule editor
* fix tests
* filler config validation
* use consistent time zone for tests
2021-10-21 20:23:14 -05:00