use named drawtext filter instead of index

This commit is contained in:
jb-alvarado 2022-10-15 21:59:37 +02:00
parent bc290678d7
commit 84addbcb2a
5 changed files with 5 additions and 31 deletions

View File

@ -64,22 +64,6 @@ fn ingest_to_hls_server(
loop { loop {
let filters = filter_chains(&config, &mut dummy_media, &playout_stat.chain); let filters = filter_chains(&config, &mut dummy_media, &playout_stat.chain);
if filters.len() > 1 {
// get correct filter index from drawtext node for zmq
let filter_chain = filters[1]
.split_terminator([',', ';'])
.collect::<Vec<&str>>();
for (i, link) in filter_chain.iter().enumerate() {
if link.contains("drawtext") {
playout_stat
.drawtext_server_index
.store(i, Ordering::SeqCst);
}
}
}
let server_cmd = prepare_output_cmd(server_prefix.clone(), filters, &config); let server_cmd = prepare_output_cmd(server_prefix.clone(), filters, &config);
debug!( debug!(

View File

@ -92,10 +92,7 @@ pub fn json_rpc_server(
if config.out.mode == HLS { if config.out.mode == HLS {
if proc.server_is_running.load(Ordering::SeqCst) { if proc.server_is_running.load(Ordering::SeqCst) {
let filter_server = format!( let filter_server = format!("drawtext@dyntext reinit {filter}");
"Parsed_drawtext_{} reinit {filter}",
playout_stat.drawtext_server_index.load(Ordering::SeqCst)
);
if let Ok(reply) = block_on(zmq_send( if let Ok(reply) = block_on(zmq_send(
&filter_server, &filter_server,
@ -109,10 +106,7 @@ pub fn json_rpc_server(
} }
if config.out.mode != HLS || !proc.server_is_running.load(Ordering::SeqCst) { if config.out.mode != HLS || !proc.server_is_running.load(Ordering::SeqCst) {
let filter_stream = format!( let filter_stream = format!("drawtext@dyntext reinit {filter}");
"Parsed_drawtext_{} reinit {filter}",
playout_stat.drawtext_stream_index.load(Ordering::SeqCst)
);
if let Ok(reply) = block_on(zmq_send( if let Ok(reply) = block_on(zmq_send(
&filter_stream, &filter_stream,

View File

@ -52,7 +52,7 @@ pub fn filter_node(
} }
filter = format!( filter = format!(
"zmq=b=tcp\\\\://'{}',drawtext={filter_cmd}", "zmq=b=tcp\\\\://'{}',drawtext@dyntext={filter_cmd}",
socket.replace(':', "\\:") socket.replace(':', "\\:")
) )
} }

View File

@ -187,8 +187,6 @@ pub struct PlayoutStatus {
pub date: Arc<Mutex<String>>, pub date: Arc<Mutex<String>>,
pub list_init: Arc<AtomicBool>, pub list_init: Arc<AtomicBool>,
pub time_shift: Arc<Mutex<f64>>, pub time_shift: Arc<Mutex<f64>>,
pub drawtext_server_index: Arc<AtomicUsize>,
pub drawtext_stream_index: Arc<AtomicUsize>,
} }
impl PlayoutStatus { impl PlayoutStatus {
@ -199,8 +197,6 @@ impl PlayoutStatus {
date: Arc::new(Mutex::new(String::new())), date: Arc::new(Mutex::new(String::new())),
list_init: Arc::new(AtomicBool::new(true)), list_init: Arc::new(AtomicBool::new(true)),
time_shift: Arc::new(Mutex::new(0.0)), time_shift: Arc::new(Mutex::new(0.0)),
drawtext_server_index: Arc::new(AtomicUsize::new(2)),
drawtext_stream_index: Arc::new(AtomicUsize::new(2)),
} }
} }
} }

View File

@ -329,7 +329,7 @@ fn video_dual_audio_filter_stream() {
"-i", "-i",
"pipe:0", "pipe:0",
"-filter_complex", "-filter_complex",
format!("[0:v]null,zmq=b=tcp\\\\://'{socket}',drawtext=text=''[v_out1]"), format!("[0:v]null,zmq=b=tcp\\\\://'{socket}',drawtext@dyntext=text=''[v_out1]"),
"-map", "-map",
"[v_out1]", "[v_out1]",
"-map", "-map",
@ -657,7 +657,7 @@ fn video_dual_audio_multi_filter_stream() {
"-i", "-i",
"pipe:0", "pipe:0",
"-filter_complex", "-filter_complex",
format!("[0:v]null,zmq=b=tcp\\\\://'{socket}',drawtext=text=''[v_out1]"), format!("[0:v]null,zmq=b=tcp\\\\://'{socket}',drawtext@dyntext=text=''[v_out1]"),
"-map", "-map",
"[v_out1]", "[v_out1]",
"-map", "-map",