feat: implement project management and media track handling
- Added domain entities for audio, subtitle, and video tracks. - Created a Project entity to manage media editing sessions. - Implemented value objects for file paths, sync offsets, track IDs, and languages. - Developed infrastructure for asynchronous FFmpeg process execution. - Built a user interface for selecting video files, adding audio and subtitle tracks, and managing output settings. - Integrated error handling and logging for media processing tasks.
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use crate::domain::value_objects::{FilePath, SyncOffset, TrackId, TrackLanguage};
|
||||
|
||||
/// Faixa de áudio externa adicionada pelo usuário.
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct AudioTrack {
|
||||
pub id: TrackId,
|
||||
pub path: FilePath,
|
||||
pub offset: SyncOffset,
|
||||
pub language: TrackLanguage,
|
||||
}
|
||||
|
||||
impl AudioTrack {
|
||||
pub fn new(id: TrackId, path: FilePath, offset: SyncOffset, language: TrackLanguage) -> Self {
|
||||
AudioTrack { id, path, offset, language }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user