Files
k-tv/k-tv-backend/infra/src/lib.rs
Gabriel Kaszewski 1102e385f3 feat(transcoding): add FFmpeg HLS transcoding support
- Introduced `TranscodeManager` for managing on-demand transcoding of local video files.
- Added configuration options for transcoding in `Config` and `LocalFilesConfig`.
- Implemented new API routes for managing transcoding settings, stats, and cache.
- Updated `LocalFilesProvider` to support transcoding capabilities.
- Created frontend components for managing transcode settings and displaying stats.
- Added database migration for transcode settings.
- Enhanced existing routes and DTOs to accommodate new transcoding features.
2026-03-15 00:34:23 +01:00

44 lines
1.3 KiB
Rust

//! K-TV Infrastructure Layer
//!
//! Concrete adapters for the repository and provider ports defined in the domain.
//!
//! ## Repository adapters
//! - `SqliteUserRepository` / `PostgresUserRepository`
//! - `SqliteChannelRepository` / `PostgresChannelRepository`
//! - `SqliteScheduleRepository` / `PostgresScheduleRepository`
//!
//! ## Media provider adapters
//! - `JellyfinMediaProvider` (feature = `"jellyfin"`)
//!
//! ## Database
//! - [`db::run_migrations`] — run all pending SQLite/Postgres migrations
pub mod auth;
pub mod db;
pub mod factory;
pub mod jellyfin;
pub mod provider_registry;
mod channel_repository;
mod schedule_repository;
mod user_repository;
#[cfg(feature = "local-files")]
pub mod local_files;
// Re-export for convenience
pub use db::run_migrations;
pub use provider_registry::ProviderRegistry;
#[cfg(feature = "sqlite")]
pub use user_repository::SqliteUserRepository;
#[cfg(feature = "sqlite")]
pub use channel_repository::SqliteChannelRepository;
#[cfg(feature = "sqlite")]
pub use schedule_repository::SqliteScheduleRepository;
#[cfg(feature = "jellyfin")]
pub use jellyfin::{JellyfinConfig, JellyfinMediaProvider};
#[cfg(feature = "local-files")]
pub use local_files::{LocalFilesConfig, LocalFilesProvider, LocalIndex, TranscodeManager, decode_stream_id};