timothy and Claude Opus 4.8
6c8c7feeba
feat(350): instrument HLS cold-start latency (phase split + feature flags)
...
Build ErsatzTV Image / CI image pin matches docker/ci (pull_request) Successful in 9s
Build ErsatzTV Image / Docs update reminder (pull_request) Successful in 5s
Build ErsatzTV Image / decisions.md append-only (pull_request) Successful in 5s
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 7m6s
Build ErsatzTV Image / API docs in sync (OpenAPI + endpoint index) (pull_request) Successful in 7s
Build ErsatzTV Image / Functional E2E (curl contracts) (pull_request) Successful in 14m27s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 19m10s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
Build ErsatzTV Image / Formatting (changed .cs conform to .editorconfig) (pull_request) Successful in 13m24s
Adds one Information-level structured log per HLS tune-in cold-start so the
real driver breakdown can be measured on prod before optimizing the transcode
pipeline (measure-before-optimize). Log-only; no transcode behavior change.
- WaitForPlaylistSegments returns a PlaylistSegmentsResult: Phase A (process
startup -> playlist exists) vs Phase B (segment fill), segments reached,
deadline-expired.
- StartFFmpegSessionHandler emits one summary: total = setup + startup + fill,
plus cleanly-detectable feature flags (subtitle burn-in, hwaccel family).
- ColdStartFeatures: pure, unit-tested args->features helper (14 cases).
Watermark / HDR->SDR / image-subtitle burn-in are deliberately not flagged
(all reduce to overlay= in the args, indistinguishable); the full ffmpeg
arguments remain available at Debug.
Refs #350 (instrumentation slice; optimization deferred pending real data).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-18 15:30:56 +02:00
Jason Dove and GitHub
0d301df5e8
remove external dependencies (bugsnag, trakt) ( #2840 )
...
* remove bugsnag
* remove trakt client id (that will expire)
2026-02-26 10:43:48 -06:00
Jason Dove and GitHub
fd86cb55f9
optimize qsv h264 stream startup ( #2835 )
2026-02-22 10:13:18 -06:00
Jason Dove and GitHub
c0b8ff1a06
generate slug instead of probing and transcoding resource ( #2824 )
...
* generate slug instead of probing and using slug resource
* refactor
* more fixes
2026-02-15 09:46:07 -06:00
Jason Dove and GitHub
c6d538e012
add channel slugs ( #2823 )
...
* add channel slugs
* safety
2026-02-14 19:57:35 -06:00
Jason Dove and GitHub
f47134d2d0
log warnings when transcoding speed is potentially insufficient ( #2808 )
...
* refactor parsing ffmpeg progress/speed
* log warnings when transcoding speed is potentially insufficient
* dont log progress on hls direct; fix tests
2026-02-03 08:49:07 -06:00
Jason Dove and GitHub
99b8c56a31
rework fallback filler ( #2719 )
...
* fallback fixes
* use hardware encoding for fallback filler
* rework fallback filler
* fixes
2025-12-13 09:02:48 -06:00
Jason Dove and GitHub
54606c76f9
framerate improvements ( #2692 )
...
* framerate improvements
* fixes
2025-12-02 12:20:09 -06:00
Jason Dove and GitHub
ec0d8ea6ac
work around sequential schedule validation limit ( #2655 )
...
* remove readalltext
* remove unused method
* remove fileexists
* remove folderexists
* remove readalllines
* remove fake local file system
* show playlist name in playout build errors
* add basic sequential schedule validator tests
* work around sequential schedule validation limit
2025-11-24 12:08:43 -06:00
Jason Dove and GitHub
42b35f7aae
add channel playback troubleshooter ( #2641 )
...
* fix motion graphics loop when seeking
* add channel playback troubleshooter
* fix errors
2025-11-12 13:21:18 -06:00
Jason Dove and GitHub
053b3cd1d7
add mpegts script system ( #2609 )
...
* add basic mpegts script
* use custom mpegts script
* update changelog
2025-11-07 13:20:17 -06:00
Jason Dove and GitHub
2ef2b0299a
switch back from fmp4 to ts segments ( #2554 )
...
* restore pts offset calculation
* use ts segments again
* update changelog
2025-10-21 12:17:05 -05:00
Jason Dove and GitHub
d14ebf3522
properly track discontinuity sequences with fmp4 ( #2548 )
...
* properly track discontinuity sequences with fmp4
* update dependencies
2025-10-19 10:31:11 -05:00
Jason Dove and GitHub
889904e70d
fix management of fmp4 init segments ( #2546 )
2025-10-18 22:52:45 -05:00
Jason Dove and GitHub
35e7922836
fix mpegts wrapper with fmp4 segmenter source ( #2545 )
2025-10-18 16:37:31 -05:00
Jason Dove and GitHub
ffe15629cb
consolidate streaming modes ( #2544 )
...
* consolidate segmenters
* let old segmenter mode query params continue to work
2025-10-18 10:54:30 -05:00
Jason Dove and GitHub
940d26419c
fix buffer logging ( #2535 )
2025-10-14 15:55:27 -05:00
Jason Dove and GitHub
9bae8e73bf
slightly increase throttled readrate in segmenter ( #2534 )
2025-10-14 14:53:56 -05:00
Jason Dove and GitHub
917acf9683
fix hls segmenter fmp4 on windows ( #2531 )
...
* fix hls segmenter fmp4 on windows
* try to fix by using working directory
2025-10-14 10:29:08 -05:00
Jason Dove and GitHub
d1af6599f0
fix segmenter repeating content when stream first starts ( #2529 )
2025-10-14 08:53:22 -05:00
Jason Dove and GitHub
ea5956a268
improve stream startup ( #2525 )
2025-10-13 16:26:06 -05:00
Jason Dove and GitHub
e3af0f0b69
add nvidia av1 encoder ( #2469 )
2025-09-30 11:43:12 -05:00
Jason Dove and GitHub
b46de50801
add hls segmenter fmp4 streaming mode ( #2468 )
...
* add streaming mode segmenter fmp4
* allow hevc channel preview
2025-09-30 10:04:02 -05:00
Jason Dove and GitHub
1c07df5bc3
use cancellation tokens in many places ( #2350 )
...
* use cancellation tokens everywhere
* more cancellation tokens
2025-08-27 03:20:35 +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
3f247288d3
fix on demand for block and yaml schedules ( #2290 )
2025-08-10 00:50:59 +00:00
Jason Dove and GitHub
f2b6f5b919
enable graphics engine in playback troubleshooting ( #2274 )
...
* enable graphics engine in playback troubleshooting
* fix text subtitles with graphics engine (watermarks)
2025-08-07 18:37:55 +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
a2fc99229e
add watermark opacity expression ( #2266 )
...
* add watermark opacity expression
* implement watermark opacity expression parameters
* minor fixes
2025-08-06 18:26:44 +00:00
Jason Dove and GitHub
036b6e63c7
add new graphics engine ( #2265 )
...
* spike new graphics engine
* fix remote watermarks; add graphics engine to vaapi
* add graphics engine to qsv
2025-08-06 15:04:43 +00:00
Jason Dove and GitHub
c055e59723
add channel transcode mode and idle behavior ( #2255 )
...
* add channel transcode mode and idle behavior
* allow custom_title on all yaml content instructions
2025-08-04 20:25:31 +00:00
Jason Dove and GitHub
b6ec16c6a7
fix transitions using nvidia accel ( #2244 )
2025-08-03 14:14:36 +00:00
Jason Dove and GitHub
260949893c
fix some stream continuity issues ( #2186 )
2025-07-22 15:56:14 +00:00
Jason Dove and GitHub
7e30444857
dependencies and code cleanup ( #2117 )
...
* fix validation in new form layout
* pin mediatr to last oss version
* update dependencies
* cleanup code in core
* cleanup code in ffmpeg
* cleanup code in infra
* cleanup code in scanner
* cleanup code in application
* cleanup main code
* cleanup test code
* solution-wide code cleanup
2025-07-06 15:56:17 +00:00
Jason Dove and GitHub
a8b658a5ea
add "on demand" channel progress mode ( #1790 )
...
* update dependencies
* add channel progress mode
* implement on demand channel progress
* update changelog
2024-07-16 12:21:52 -05: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
8945a87f9b
fix segmenter semaphore ( #1676 )
...
* disable dead air watermarks by default
* fix session worker semaphore
* update changelog
2024-04-11 19:38:57 -05:00
Jason Dove and GitHub
087901d177
adjust block unique constraint ( #1634 )
...
* upgrade dependencies
* allow blocks with same name in different groups
* code cleanup
2024-03-05 10:39:06 -06:00
Jason Dove and GitHub
35817f09ac
add hls segmenter v2 streaming mode ( #1620 )
...
* concat segmenter process kind of works
* segmenter v2 improvements
* rework to allow hw accel in concat segmenter
* remove shortest; use different audio alignment filter
* hls v2 improvements
* fix tests
* update changelog
2024-02-19 13:59:33 -06:00
Jason Dove and GitHub
f4520a5520
allow decimal image duration ( #1619 )
...
* add missing mysql migration
* allow decimal image duration
2024-02-16 20:01:40 -06:00
Jason Dove and GitHub
3a906816fc
allow playback of items with duration of 1 second ( #1618 )
2024-02-16 13:41:52 -06:00
Jason Dove and GitHub
1f6e843a26
fix segmenter timestamp continuity ( #1610 )
2024-02-12 08:50:18 -06:00
Jason Dove and GitHub
6923b25177
add more log level switches ( #1582 )
...
* label block and json playouts as experimental
* add more log level switches
2024-01-30 13:10:19 -06:00
Jason Dove and GitHub
18deff0b83
add session api endpoints ( #1578 )
2024-01-29 11:31:16 -06:00
Jason Dove and GitHub
83fc3081d8
add some logging around playlist trimming ( #1565 )
2024-01-22 05:47:00 -06: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
9471cb55dd
upgrade from dotnet 7 to dotnet 8 ( #1529 )
...
* upgrade sdk
* fix warnings in ersatztv.ffmpeg
* fix warnings in ersatztv.core
* fix warnings in ersatztv.infrastructure
* fix warnings in ersatztv.application
* disable analysis for migrations projects
* fix warnings in ersatztv.scanner
* fix warnings in ersatztv
* upgrade project framework
* update github actions and dockerfiles
2023-12-30 13:29:57 -06:00
Jason Dove and GitHub
b16215fcd6
improve hls throttle ( #1434 )
...
* throttle using ffmpeg option
* update ffmpeg version
2023-09-14 19:28:15 -05:00
Jason Dove and GitHub
a90348740d
fix subsequent hls session work ahead ( #1419 )
2023-09-06 20:01:58 -05:00
Jason Dove and GitHub
8c9cf7b6f2
fix mid roll pad; fix mysql queries ( #1416 )
...
* fix mysql queries
* fix mid roll pad with hls segmenter
2023-09-04 10:01:39 -05:00