|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). |
| 6 | + |
| 7 | +## [Unreleased] |
| 8 | + |
| 9 | +## [0.1.0] - 2025-12-05 |
| 10 | + |
| 11 | +### Added |
| 12 | + |
| 13 | +- Media over QUIC (MoQ) egress support with H264, H265, VP8, VP9 video and AAC/Opus audio codecs (#37) |
| 14 | +- Multi-track streaming configuration API (`POST /api/v1/multi-track-config`) for OBS auto-configuration |
| 15 | +- Hardware encoder support in multi-track config: NVENC, VAAPI, QSV with automatic fallback |
| 16 | +- Frame reorder buffer for proper B-frame handling before encoding |
| 17 | +- Admin endpoint to retrieve pipeline logs (`GET /api/v1/admin/pipeline-log/{stream_id}`) (#46) |
| 18 | +- Redis-based viewer tracking with sorted sets for scalability |
| 19 | +- Per-stream pipeline.log for detailed debug output |
| 20 | +- Configurable minimum stream event update rate |
| 21 | +- `get_user_live_streams` database method for retrieving active streams |
| 22 | + |
| 23 | +### Changed |
| 24 | + |
| 25 | +- Refactored `EndpointConfigEngine` for variant generation with deduplication across egress types |
| 26 | +- Account balance now returned as `i64` to support negative balances (#40) |
| 27 | +- Thumbnail generation uses time-based interval (5 minutes) instead of frame count |
| 28 | +- Encoder settings now configured by egress requirements via `EncoderParam` enum |
| 29 | +- `VideoVariant` and `AudioVariant` use `apply_params()` for configuration |
| 30 | +- `StreamManager` supports Redis for distributed viewer tracking |
| 31 | +- Switched to NWC crate for Nostr Wallet Connect |
| 32 | +- Upgraded ffmpeg-rs-raw dependency |
| 33 | +- Docker image now uses Debian trixie slim runner |
| 34 | +- User blocking immediately stops all active streams for blocked user (#47) |
| 35 | +- Init segment writing now occurs at startup |
| 36 | +- Withdrawal feature behind `withdrawal` feature flag |
| 37 | + |
| 38 | +### Fixed |
| 39 | + |
| 40 | +- Frame PTS mangling instead of packet PTS for proper timing (#39) |
| 41 | +- Monotonic PTS values with offset tracking per stream |
| 42 | +- Encoder timebase set to 90k tbn for consistent timing |
| 43 | +- HLS variant encoding issues |
| 44 | +- Multi-track encoder settings configuration |
| 45 | +- NV12 pixel format usage with GPU encoding |
| 46 | +- Color space/range included in video variant parameters |
| 47 | +- Default FPS to 30 when not detected from source |
| 48 | +- Keyframe flag checking for thumbnails in copy-only pipelines (#44) |
| 49 | +- Thumbnail generation for copy-only streams |
| 50 | +- Audio always transcoded for copy streams for compatibility |
| 51 | +- Negative cost/duration value prevention with validation |
| 52 | +- Memory leak in pipeline processing |
| 53 | +- AVIO crash with additional logging (#50) |
| 54 | +- Crypto provider setup for TLS connections (#49) |
| 55 | +- History endpoint 500 error from payment_type type mismatch (#45) |
| 56 | +- Negative balance return value (#40) |
| 57 | +- Stream image set on new stream; thumb used as image when no image set |
| 58 | +- Empty strings removed from stream metadata |
| 59 | +- Init segment flags for proper playback |
| 60 | + |
| 61 | +### Removed |
| 62 | + |
| 63 | +- Idle mode from pipeline runner (streams now end cleanly on EOF) |
| 64 | +- Circuit breaker logic for decode failures |
| 65 | +- `Idle` state from `RunnerState` enum |
| 66 | +- Apt cache from Docker image |
0 commit comments