Update servo-media: handle decoder errors and use safer/nicer player API

This commit is contained in:
Fernando Jiménez Moreno 2018-10-02 16:04:55 +02:00
parent e31339245c
commit 0db628028a
3 changed files with 10 additions and 11 deletions

View file

@ -461,7 +461,7 @@ impl BaseAudioContextMethods for BaseAudioContext {
}),
&canceller,
);
}).error(move || {
}).error(move |error| {
let _ = task_source_.queue_with_canceller(
task!(audio_decode_eos: move || {
let this = this_.root();
@ -473,7 +473,8 @@ impl BaseAudioContextMethods for BaseAudioContext {
&DOMException::new(&this.global(), DOMErrorName::DataCloneError),
ExceptionHandling::Report);
}
resolver.promise.reject_error(Error::Type("Audio decode error".to_owned()));
let error = format!("Audio decode error {:?}", error);
resolver.promise.reject_error(Error::Type(error));
}),
&canceller_,
);

View file

@ -207,7 +207,7 @@ impl HTMLMediaElement {
delaying_the_load_event_flag: Default::default(),
pending_play_promises: Default::default(),
in_flight_play_promises_queue: Default::default(),
player: ServoMedia::get().unwrap().create_player().unwrap(),
player: ServoMedia::get().unwrap().create_player(),
frame_renderer: Arc::new(Mutex::new(MediaFrameRenderer::new(
document.window().get_webrender_api_sender(),
))),
@ -942,9 +942,6 @@ impl HTMLMediaElement {
self.player.register_event_handler(action_sender);
self.player
.register_frame_renderer(self.frame_renderer.clone());
if self.player.setup().is_err() {
return Err(());
}
let trusted_node = Trusted::new(self);
let window = window_from_node(self);