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
0c30c47ba9
nvidia - decode 10-bit h264 in software ( #2833 )
...
* output progress/speed even when copying video
* nvidia - decode 10-bit h264 in software
* fixes
* fix tests
2026-02-20 23:00:15 -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
54606c76f9
framerate improvements ( #2692 )
...
* framerate improvements
* fixes
2025-12-02 12:20:09 -06:00
Jason Dove and GitHub
6603500132
fix content_total_duration in graphics engine ( #2643 )
2025-11-12 20:07:54 -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
d0505cd5c5
add better check for interlaced content ( #2620 )
2025-11-10 06:39:04 -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
3b254735e6
fix transcoding tests; fix vaapi subtitle crop ( #2568 )
...
* fix transcoding tests using text subtitles
* fix vaapi picture subtitle overlay with crop
* more test improvements
2025-10-26 08:51:24 -05: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
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
f41f4b19d4
wait for two initial segments in playback troubleshooting ( #2532 )
2025-10-14 11:45:11 -05:00
Jason Dove and GitHub
b790b5944c
fix external ssa subtitles from media servers ( #2450 )
2025-09-20 21:13:42 +00:00
Jason Dove and GitHub
bc721755f5
add graphics elements to decos ( #2413 )
...
* add deco graphics elements, selector and tests
* add migrations
* edit deco graphics elements from ui
* update changelog
2025-09-13 15:02:48 +00:00
Jason Dove and GitHub
a2fd23a131
fix deco selection logic ( #2403 )
2025-09-09 18:07:50 +00: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
0318e71745
refactor watermark selection ( #2328 )
...
* move watermark options into watermark selector
* fix graphics engine overlay performance
* more refactoring
* add some tests for existing watermark selector behavior
* remove extra ffprobe call on all watermarks
* remove a bunch of unused code; add failing tests
* implement new watermark selection
* add tests for new selector
* probably sufficient (though verbose) test coverage
* more tests
* remove some unused code
* simplify watermark selection
* remove old selection code and tests
* more tests
2025-08-18 01:04:36 +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
4b18ee6b66
add custom stream selector content_condition ( #2311 )
2025-08-13 16:34:17 +00:00
Jason Dove and GitHub
f4eadae8ff
set variables from yaml playout graphics_on instruction ( #2284 )
2025-08-08 23:02:13 +00:00
Jason Dove and GitHub
76a589b538
add text graphics element to playback troubleshooting ( #2282 )
...
* refactor graphics engine; async frame generation
* add text graphics element to playback troubleshooting
2025-08-08 19:18:15 +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
1df9104854
add subtitle selection to playback troubleshooting ( #2215 )
2025-07-28 18:44:49 +00:00
Jason Dove and GitHub
6c6ccfa94b
fix seeking with text subtitles ( #2214 )
2025-07-28 16:19:20 +00:00
Jason Dove and GitHub
2257d26173
fix some issues with live stream playback ( #2193 )
2025-07-24 01:58:32 +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
578cdb1e14
add playback troubleshooting tool ( #2155 )
...
* support media info for more content types
* add playback troubleshooting page
* reorganize playback troubleshooting
* fix watermarks and delay
* update changelog
2025-07-17 03:51:36 +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
f80069bb97
add custom channel stream selector system ( #2076 )
...
* add some basic channel stream selector models
* change windows ffmpeg url
* implement basic stream selection
* fixes
2025-06-27 03:00:59 +00:00
Jason Dove and GitHub
759052c725
add vaapi display option to ffmpeg profile ( #1948 )
...
* add vaapi display option
* fix vaapi capabilities cache key
* update logging
2024-11-25 13:14:21 -06:00
Jason Dove and GitHub
4e56117e0e
use jwt for mpeg-ts streaming mode ( #1661 )
2024-03-29 21:36:49 -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
18deff0b83
add session api endpoints ( #1578 )
2024-01-29 11:31:16 -06:00
Jason Dove and GitHub
245c4ec359
code analysis and cleanup ( #1411 )
...
* cleanup scanner project
* cleanup infrastructure projects
* cleanup ffmpeg project
* cleanup core project
* cleanup app project
* cleanup main project
* update dependencies
* code cleanup
2023-09-03 06:23:42 -05:00
Jason Dove and GitHub
9479806cb0
scanner refactoring and other cleanup ( #1082 )
...
* move subtitles provider into scanner
* move more stuff into scanner
* move nfo into scanner
* add scan subcommand
* fix a bunch of nfo build warnings
* more subcommands
* fix warnings
* cleanup logging
* remove unused code
* cleanup old ffmpeg stuff
* rename complex filter
* refactor wrapped segmenter
2022-12-31 10:57:20 -06:00
Jason Dove and GitHub
7b1edd9c54
add new scanner process ( #1080 )
...
* start moving local scans to separate process
* send progress updates to main process
* move scanners and tests
* simplify dependencies; sync search index
* commit search index more often when scanning
* support forced scan and cancellation
* use scanner process for plex libraries
* update changelog
* update dockerfiles
* fix search index for local folder scanning
* rework plex scanners
* rework scanner handlers
* emby works again
* sync jellyfin
* cleanup
* update build
* update changelog
* remove scanner dependency in pr and artifacts workflows
* fix mac sed syntax
* fix pr build
2022-12-30 12:53:05 -06:00
Jason Dove and GitHub
325ef80951
normalize bit depth via new pipeline ( #1045 )
...
* fix subtitles test and nvidia subtitles
* new ffmpeg pipelines; software and nvidia
* partial qsv
* fix qsv
* fix software pipeline
* add vaapi pipeline
* fix qsv 10-bit h264 output
* nvidia fixes
* properly disable 10-bit h264 hardware encoders
* more nvidia fixes
* add video toolbox pipeline
2022-12-07 21:25:55 -06:00
Jason Dove and GitHub
c9bd94d9f8
use javascript instead of lua for external scripts; add audio stream selector scripts ( #1005 )
...
* use js instead of lua
* update dependencies
* add audio stream selector script for episodes
* add audio stream selector script for movies
* update changelog
2022-10-28 17:05:07 -05:00
Jason Dove and GitHub
393c67213d
add stream_seek to music video credits template ( #985 )
2022-10-08 19:45:24 -05:00
Jason Dove and GitHub
6035c10550
add music video credits template system ( #982 )
...
* add music video credits template system
* fix search index bug
* cleanup csproj
2022-10-07 21:02:29 -05:00
Jason Dove and GitHub
f1be945423
add qsv extra hardware frames setting ( #950 )
...
* wip add qsv extra_hw_frames setting
* fix ffmpeg profile editor
* update changelog
2022-09-04 18:07:03 -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