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
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
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
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
c9e6e601c2
automatically refresh graphics elements ( #2309 )
2025-08-13 15:11:14 +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
19af303d76
improve segmenter v2 hevc compliance with fmp4 ( #1684 )
2024-04-21 10:01:11 -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
7fffc8cf63
channel preview player ( #1579 )
...
* add channel preview
* add button to stop transcoding session
2024-01-29 20:52:52 -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
c3fe263978
validate hardware accel, use hw accel for error messages ( #1471 )
...
* only display supported hw accels in ffmpeg profile editor
* qsv capability improvements
* qsv fixes
* update changelog
2023-10-08 11:21:04 -05:00
Jason Dove and GitHub
82de3136cd
fix hls session worker lifetime ( #1414 )
2023-09-04 08:30:01 -05:00
Jason Dove and GitHub
03df2a6c8a
overdue code cleanup ( #1271 )
2023-05-10 13:18:18 -05:00
Jason Dove and GitHub
ab1c67e60e
memory improvements ( #1127 )
...
* regularly release memory
* don't aggressively GC while legacy streaming
* update changelog
2023-01-22 09:16:24 -06:00
Jason Dove and GitHub
9b3545f7ca
add some temporary debug logging ( #925 )
2022-08-13 19:19:47 -05:00
Jason Dove and GitHub
56db20faa0
limit segmenter delay to 8s ( #924 )
...
* always return initial hls playlist after 8 seconds
* update dependencies
* make fluentvalidation happy
2022-08-12 19:48:24 -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
f0670b345f
use wrapped processes; fix hls pts bug ( #690 )
2022-03-09 14:38:09 -06:00
Jason Dove and GitHub
a2e7e6df1e
fix thread sync bug in hls segmenter ( #676 )
2022-03-05 11:26:29 -06: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
1d6279cee8
log problematic playlists ( #640 )
2022-02-16 08:18:22 -06:00
Jason Dove and GitHub
89811a1203
wait for one segment by default ( #617 )
2022-02-07 12:44:12 -06:00
Jason Dove and GitHub
534e2c4512
add hls segmenter initial segment count ( #616 )
2022-02-07 12:18:58 -06:00
Jason Dove and GitHub
0e789fd6d8
update dependencies and fix languageext deprecation warnings ( #460 )
2021-10-30 11:57:50 -05:00
Jason Dove and GitHub
04adbfeffa
add hls segmenter settings to optimize performance ( #418 )
...
* add hls segmenter settings to optimize performance
* use consistent setting defaults
2021-10-12 06:31:11 -05:00
Jason Dove and GitHub
cf5718c288
rework hls segmenter ( #407 )
...
* rework hls segmenter to start more quickly
* don't use realtime encoding for hls until we're at least a minute ahead
* ugly but functional playlist filtering
2021-10-09 22:46:38 -05:00
Jason Dove and GitHub
adc7982955
reduce initial hls segmenter delay ( #406 )
2021-10-09 10:26:57 -05:00
Jason Dove and GitHub
d3086264c7
unraid doc fixes ( #405 )
2021-10-08 18:31:22 -05:00
Jason Dove and GitHub
8cd9b23787
fix transcode folder preparation ( #404 )
2021-10-08 15:29:19 -05:00
Jason Dove and GitHub
6c8813ce22
add hls segmenter streaming mode ( #400 )
...
* hls segmenter wip
* log message
* close unused transcode sessions after 2 minutes
* use frame rate for 2s keyframes in hls segmenter
* add frame rate to media version
* fix segmenter framerate calculation
* automatically restart hls segmenter with next scheduled item
* cleanup
* update changelog
* decrease segmenter start delay
2021-10-07 21:42:29 -05:00