mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer-rs.git
synced 2024-11-23 01:51:06 +00:00
Fix up tutorials and examples for Message::get_src() returning an Option now
This commit is contained in:
parent
1dbc63dcb3
commit
f895f484cc
20 changed files with 74 additions and 53 deletions
|
@ -140,7 +140,9 @@ fn main_loop(pipeline: gst::Pipeline) -> Result<(), Error> {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
pipeline.set_state(gst::State::Null).into_result()?;
|
pipeline.set_state(gst::State::Null).into_result()?;
|
||||||
Err(ErrorMessage {
|
Err(ErrorMessage {
|
||||||
src: msg.get_src().get_path_string(),
|
src: msg.get_src()
|
||||||
|
.map(|s| s.get_path_string())
|
||||||
|
.unwrap_or(String::from("None")),
|
||||||
error: err.get_error().description().into(),
|
error: err.get_error().description().into(),
|
||||||
debug: err.get_debug(),
|
debug: err.get_debug(),
|
||||||
cause: err.get_error(),
|
cause: err.get_error(),
|
||||||
|
|
|
@ -111,7 +111,9 @@ fn main_loop(pipeline: gst::Pipeline, appsrc: gst_app::AppSrc) -> Result<(), Err
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
pipeline.set_state(gst::State::Null).into_result()?;
|
pipeline.set_state(gst::State::Null).into_result()?;
|
||||||
Err(ErrorMessage {
|
Err(ErrorMessage {
|
||||||
src: msg.get_src().get_path_string(),
|
src: msg.get_src()
|
||||||
|
.map(|s| s.get_path_string())
|
||||||
|
.unwrap_or(String::from("None")),
|
||||||
error: err.get_error().description().into(),
|
error: err.get_error().description().into(),
|
||||||
debug: err.get_debug(),
|
debug: err.get_debug(),
|
||||||
cause: err.get_error(),
|
cause: err.get_error(),
|
||||||
|
|
|
@ -6,6 +6,7 @@ extern crate glib;
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::error::Error as StdError;
|
use std::error::Error as StdError;
|
||||||
|
#[cfg(feature = "v1_10")]
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
|
|
||||||
extern crate failure;
|
extern crate failure;
|
||||||
|
@ -137,7 +138,12 @@ fn example_main() -> Result<(), Error> {
|
||||||
);
|
);
|
||||||
|
|
||||||
#[cfg(not(feature = "v1_10"))]
|
#[cfg(not(feature = "v1_10"))]
|
||||||
gst_element_error!(dbin, gst::LibraryError::Failed, ("Failed to insert sink"));
|
gst_element_error!(
|
||||||
|
dbin,
|
||||||
|
gst::LibraryError::Failed,
|
||||||
|
("Failed to insert sink"),
|
||||||
|
["{}", err]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -169,7 +175,9 @@ fn example_main() -> Result<(), Error> {
|
||||||
.expect("error-details message without actual error"),
|
.expect("error-details message without actual error"),
|
||||||
_ => Err(
|
_ => Err(
|
||||||
ErrorMessage {
|
ErrorMessage {
|
||||||
src: msg.get_src().get_path_string(),
|
src: msg.get_src()
|
||||||
|
.map(|s| s.get_path_string())
|
||||||
|
.unwrap_or(String::from("None")),
|
||||||
error: err.get_error().description().into(),
|
error: err.get_error().description().into(),
|
||||||
debug: err.get_debug(),
|
debug: err.get_debug(),
|
||||||
cause: err.get_error(),
|
cause: err.get_error(),
|
||||||
|
@ -180,7 +188,9 @@ fn example_main() -> Result<(), Error> {
|
||||||
#[cfg(not(feature = "v1_10"))]
|
#[cfg(not(feature = "v1_10"))]
|
||||||
{
|
{
|
||||||
Err(ErrorMessage {
|
Err(ErrorMessage {
|
||||||
src: msg.get_src().get_path_string(),
|
src: msg.get_src()
|
||||||
|
.map(|s| s.get_path_string())
|
||||||
|
.unwrap_or(String::from("None")),
|
||||||
error: err.get_error().description().into(),
|
error: err.get_error().description().into(),
|
||||||
debug: err.get_debug(),
|
debug: err.get_debug(),
|
||||||
cause: err.get_error(),
|
cause: err.get_error(),
|
||||||
|
@ -190,8 +200,8 @@ fn example_main() -> Result<(), Error> {
|
||||||
}
|
}
|
||||||
MessageView::StateChanged(s) => {
|
MessageView::StateChanged(s) => {
|
||||||
println!(
|
println!(
|
||||||
"State changed from {}: {:?} -> {:?} ({:?})",
|
"State changed from {:?}: {:?} -> {:?} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
s.get_old(),
|
s.get_old(),
|
||||||
s.get_current(),
|
s.get_current(),
|
||||||
s.get_pending()
|
s.get_pending()
|
||||||
|
|
|
@ -44,8 +44,8 @@ fn example_main() {
|
||||||
}
|
}
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -92,8 +92,8 @@ fn create_ui(app: >k::Application) {
|
||||||
MessageView::Eos(..) => gtk::main_quit(),
|
MessageView::Eos(..) => gtk::main_quit(),
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -162,8 +162,8 @@ fn create_ui(app: >k::Application) {
|
||||||
MessageView::Eos(..) => gtk::main_quit(),
|
MessageView::Eos(..) => gtk::main_quit(),
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -38,8 +38,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => break,
|
MessageView::Eos(..) => break,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -33,8 +33,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => main_loop.quit(),
|
MessageView::Eos(..) => main_loop.quit(),
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -60,8 +60,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => break,
|
MessageView::Eos(..) => break,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -75,8 +75,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => break,
|
MessageView::Eos(..) => break,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -72,8 +72,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => main_loop.quit(),
|
MessageView::Eos(..) => main_loop.quit(),
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -62,8 +62,8 @@ fn example_main() {
|
||||||
MessageView::Eos(_) | MessageView::AsyncDone(_) => break,
|
MessageView::Eos(_) | MessageView::AsyncDone(_) => break,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -40,8 +40,8 @@ fn example_main() {
|
||||||
MessageView::Eos(..) => true,
|
MessageView::Eos(..) => true,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -26,8 +26,8 @@ fn tutorial_main() {
|
||||||
MessageView::Eos(..) => break,
|
MessageView::Eos(..) => break,
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
|
|
@ -39,8 +39,8 @@ fn tutorial_main() {
|
||||||
match msg.view() {
|
match msg.view() {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"Error received from element {}: {}",
|
"Error received from element {:?}: {}",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error()
|
err.get_error()
|
||||||
);
|
);
|
||||||
eprintln!("Debugging information: {:?}", err.get_debug());
|
eprintln!("Debugging information: {:?}", err.get_debug());
|
||||||
|
|
|
@ -92,20 +92,22 @@ fn tutorial_main() {
|
||||||
match msg.view() {
|
match msg.view() {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"Error received from element {}: {}",
|
"Error received from element {:?} {}",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error()
|
err.get_error()
|
||||||
);
|
);
|
||||||
eprintln!("Debugging information: {:?}", err.get_debug());
|
eprintln!("Debugging information: {:?}", err.get_debug());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
MessageView::StateChanged(s) => if msg.get_src() == pipeline {
|
MessageView::StateChanged(s) => {
|
||||||
|
if msg.get_src().map(|s| s == pipeline).unwrap_or(false) {
|
||||||
println!(
|
println!(
|
||||||
"Pipeline state changed from {:?} to {:?}",
|
"Pipeline state changed from {:?} to {:?}",
|
||||||
s.get_old(),
|
s.get_old(),
|
||||||
s.get_current()
|
s.get_current()
|
||||||
);
|
);
|
||||||
},
|
}
|
||||||
|
}
|
||||||
MessageView::Eos(..) => break,
|
MessageView::Eos(..) => break,
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,8 +101,8 @@ fn handle_message(custom_data: &mut CustomData, msg: &gst::GstRc<gst::MessageRef
|
||||||
match msg.view() {
|
match msg.view() {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error received from element {}: {} ({:?})",
|
"Error received from element {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
@ -116,7 +116,10 @@ fn handle_message(custom_data: &mut CustomData, msg: &gst::GstRc<gst::MessageRef
|
||||||
// The duration has changed, mark the current one as invalid
|
// The duration has changed, mark the current one as invalid
|
||||||
custom_data.duration = gst::CLOCK_TIME_NONE;
|
custom_data.duration = gst::CLOCK_TIME_NONE;
|
||||||
}
|
}
|
||||||
MessageView::StateChanged(state) => if msg.get_src() == custom_data.playbin {
|
MessageView::StateChanged(state) => if msg.get_src()
|
||||||
|
.map(|s| s == custom_data.playbin)
|
||||||
|
.unwrap_or(false)
|
||||||
|
{
|
||||||
let new_state = state.get_current();
|
let new_state = state.get_current();
|
||||||
let old_state = state.get_old();
|
let old_state = state.get_old();
|
||||||
|
|
||||||
|
|
|
@ -337,17 +337,19 @@ mod tutorial5 {
|
||||||
// This is called when an error message is posted on the bus
|
// This is called when an error message is posted on the bus
|
||||||
gst::MessageView::Error(err) => {
|
gst::MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error from {}: {} ({:?})",
|
"Error from {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// This is called when the pipeline changes states. We use it to
|
// This is called when the pipeline changes states. We use it to
|
||||||
// keep track of the current state.
|
// keep track of the current state.
|
||||||
gst::MessageView::StateChanged(view) => if msg.get_src() == pipeline {
|
gst::MessageView::StateChanged(view) => {
|
||||||
|
if msg.get_src().map(|s| s == pipeline).unwrap_or(false) {
|
||||||
println!("State set to {:?}", view.get_current());
|
println!("State set to {:?}", view.get_current());
|
||||||
},
|
}
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -125,8 +125,8 @@ fn tutorial_main() {
|
||||||
match msg.view() {
|
match msg.view() {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
println!(
|
println!(
|
||||||
"Error received from element {}: {} ({:?})",
|
"Error received from element {:?}: {} ({:?})",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error(),
|
err.get_error(),
|
||||||
err.get_debug()
|
err.get_debug()
|
||||||
);
|
);
|
||||||
|
@ -138,7 +138,7 @@ fn tutorial_main() {
|
||||||
}
|
}
|
||||||
MessageView::StateChanged(state) =>
|
MessageView::StateChanged(state) =>
|
||||||
// We are only interested in state-changed messages from the pipeline
|
// We are only interested in state-changed messages from the pipeline
|
||||||
if msg.get_src() == pipeline {
|
if msg.get_src().map(|s| s == pipeline).unwrap_or(false) {
|
||||||
let new_state = state.get_current();
|
let new_state = state.get_current();
|
||||||
let old_state = state.get_old();
|
let old_state = state.get_old();
|
||||||
|
|
||||||
|
|
|
@ -78,8 +78,8 @@ fn tutorial_main() {
|
||||||
match msg.view() {
|
match msg.view() {
|
||||||
MessageView::Error(err) => {
|
MessageView::Error(err) => {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
"Error received from element {}: {}",
|
"Error received from element {:?}: {}",
|
||||||
msg.get_src().get_path_string(),
|
msg.get_src().map(|s| s.get_path_string()),
|
||||||
err.get_error()
|
err.get_error()
|
||||||
);
|
);
|
||||||
eprintln!("Debugging information: {:?}", err.get_debug());
|
eprintln!("Debugging information: {:?}", err.get_debug());
|
||||||
|
|
Loading…
Reference in a new issue