将 gst::Structure 的列表从 rust gstreamer 插件发送到 c++
Sending a list of gst::Structure from rust gstreamer plugin to c++
我正在使用 Rust 开发一个 GStreamer 插件。我想将一组对象从 Rust 发送回 C++。每个对象都有两个字段。 word
和 confidence
。我试过这段代码。但它没有编译。只要 text
,我就可以发送 structure
。但是当我想添加words
时,我根本无法编译它。
let v = vec![];
for word in transcript.words {
v.push(gst::Structure::new("word-info",
&[("word", &word.word), ("confidence", &word.confidence)]));
}
let structure = gst::Structure::new(
"result",
&[
("text", &transcript.text),
("words", &gst::Array::from(&v[..]))
],
);
element
.emit_by_name("new-transcript", &[&structure])
.unwrap();
所以我想发回structure
。它有两个字段。 text
和 words
。 words
是(单词,置信度)对的列表。
只需要稍作改动。我必须将 SendValue
的向量发送到 gst::Array::from_owned
let v = vec![];
for word in transcript.words {
v.push(gst::Structure::new("word-info",
&[("word", &word.word), ("confidence", &word.confidence)]).to_send_value());
}
let structure = gst::Structure::new(
"result",
&[
("text", &transcript.text),
("words", &gst::Array::from_owned(&v[..]))
],
);
element
.emit_by_name("new-transcript", &[&structure])
.unwrap();
我正在使用 Rust 开发一个 GStreamer 插件。我想将一组对象从 Rust 发送回 C++。每个对象都有两个字段。 word
和 confidence
。我试过这段代码。但它没有编译。只要 text
,我就可以发送 structure
。但是当我想添加words
时,我根本无法编译它。
let v = vec![];
for word in transcript.words {
v.push(gst::Structure::new("word-info",
&[("word", &word.word), ("confidence", &word.confidence)]));
}
let structure = gst::Structure::new(
"result",
&[
("text", &transcript.text),
("words", &gst::Array::from(&v[..]))
],
);
element
.emit_by_name("new-transcript", &[&structure])
.unwrap();
所以我想发回structure
。它有两个字段。 text
和 words
。 words
是(单词,置信度)对的列表。
只需要稍作改动。我必须将 SendValue
的向量发送到 gst::Array::from_owned
let v = vec![];
for word in transcript.words {
v.push(gst::Structure::new("word-info",
&[("word", &word.word), ("confidence", &word.confidence)]).to_send_value());
}
let structure = gst::Structure::new(
"result",
&[
("text", &transcript.text),
("words", &gst::Array::from_owned(&v[..]))
],
);
element
.emit_by_name("new-transcript", &[&structure])
.unwrap();