Commit graph

13 commits

Author SHA1 Message Date
None
55f0a49d68 fix: improve test coverage and add missing metadata constants
- Rewrite ghost client tests to call real ChannelStatus and ClientManager code paths instead of reimplementing detection logic in test helpers
- Rewrite initializing state tests to invoke StreamManager.run() so the real finally block executes under test
- Replace hardcoded state list tests with assertions against ChannelState.PRE_ACTIVE frozenset
- Add missing SOURCE_BITRATE and FFMPEG_BITRATE constants to ChannelMetadataField (referenced by channel_status.py but never defined, causing AttributeError on detailed stats)
2026-03-15 19:39:15 -05:00
SergeantPanda
2d2b3e45f4 fix: harden ghost client cleanup and PRE_ACTIVE state guard
- Change ChannelState.PRE_ACTIVE from list to frozenset (immutable,
  O(1) membership tests, no risk of silent mutation)

- Add optional client_ids parameter to ClientManager.remove_ghost_clients()
  so callers that have already fetched SMEMBERS can pass it through,
  eliminating a redundant Redis round-trip

- Pass pre-fetched client_ids from get_basic_channel_info() into
  remove_ghost_clients() to remove the duplicate SMEMBERS call
2026-03-15 19:08:38 -05:00
None
c65ace1a7c fix: stuck channel states and ghost clients in TS proxy
- Write ERROR via ownership check OR state guard fallback when ownership TTL expired during retries
- Add INITIALIZING to cleanup task grace period monitoring
- Validate client SET entries against metadata hashes in orphaned channel cleanup; remove ghosts and clean up when no real clients remain
- Stats page self-heals by removing ghost SET entries on read
- Extract remove_ghost_clients() helper to ClientManager
- Add ChannelState.PRE_ACTIVE constant
- Fix 6 pre-existing NonOwnerWorkerKeepalive test failures
2026-03-14 19:24:01 -05:00
SergeantPanda
b9e819e343 Enhancement: Adds support for UDP streams. Closes #617 2025-11-11 18:30:59 -06:00
SergeantPanda
b608af1d51 Auto detect RTSP streams when proxy profile is selected and force FFmpeg. 2025-11-11 17:26:56 -06:00
SergeantPanda
03f39d7d48 Rename FFMPEG_BITRATE to FFMPEG_OUTPUT_BITRATE for clarity. 2025-06-18 17:10:08 -05:00
SergeantPanda
a2c7fc3046 [New feature]
Switch streams when buffering is detected.
2025-06-10 17:43:37 -05:00
SergeantPanda
f869daa37c Add stream type for stream (HLS/MPEGTS, ETC) 2025-06-10 09:51:56 -05:00
SergeantPanda
7e25be0717 Store video and audio information in redis. 2025-06-09 18:57:36 -05:00
SergeantPanda
9d8e011e2c Store FFmpeg in redis. 2025-06-09 17:36:01 -05:00
SergeantPanda
4283162ba9 Switched profile to stream_profile in channel_service 2025-03-25 13:04:51 -05:00
SergeantPanda
560345f7b1 Changed profile to stream_profile and utilized constants more for consistency. 2025-03-25 12:13:06 -05:00
SergeantPanda
569846a687 Lots more refactoring. 2025-03-19 19:45:29 -05:00