feat: adiciona funcionalidade de remoção de faixas externas e atualiza o layout da UI

This commit is contained in:
2026-02-28 14:48:02 -03:00
parent 4aa7cf2dd4
commit 02c6d8ede2
9 changed files with 401 additions and 138 deletions
+10 -8
View File
@@ -1,14 +1,11 @@
use anyhow::{anyhow, Context, Result};
use anyhow::{Context, Result, anyhow};
use std::sync::mpsc::Sender;
use tokio::io::{AsyncBufReadExt, BufReader};
use tokio::process::Command;
use tokio::sync::mpsc;
/// Executa o FFmpeg de forma assíncrona, capturando stderr em tempo real.
/// As linhas de saída são enviadas pelo canal `progress_tx`.
pub async fn run_ffmpeg_async(
args: Vec<String>,
progress_tx: mpsc::UnboundedSender<String>,
) -> Result<()> {
/// As linhas de saída são enviadas pelo canal `progress_tx` (std::sync::mpsc).
pub async fn run_ffmpeg_async(args: Vec<String>, progress_tx: Sender<String>) -> Result<()> {
let mut child = Command::new("ffmpeg")
.args(&args)
.stderr(std::process::Stdio::piped())
@@ -47,7 +44,12 @@ pub fn check_binary_available(binary: &str) -> Result<()> {
.stdout(std::process::Stdio::null())
.stderr(std::process::Stdio::null())
.status()
.map_err(|_| anyhow!("'{}' não encontrado no PATH. Por favor, instale o FFmpeg.", binary))?;
.map_err(|_| {
anyhow!(
"'{}' não encontrado no PATH. Por favor, instale o FFmpeg.",
binary
)
})?;
Ok(())
}