diff --git a/src/stremio_app/stremio_player/communication.rs b/src/stremio_app/stremio_player/communication.rs index 9c5d90a..fea71db 100644 --- a/src/stremio_app/stremio_player/communication.rs +++ b/src/stremio_app/stremio_player/communication.rs @@ -16,12 +16,14 @@ impl PlayerProprChange { fn value_from_format(data: PropertyData, as_json: bool) -> serde_json::Value { match data { PropertyData::Flag(d) => serde_json::Value::Bool(d), - PropertyData::Int64(d) => serde_json::Value::Number( - serde_json::Number::from_f64(d as f64).expect("MPV returned invalid number"), - ), - PropertyData::Double(d) => serde_json::Value::Number( - serde_json::Number::from_f64(d).expect("MPV returned invalid number"), - ), + PropertyData::Int64(d) => match serde_json::Number::from_f64(d as f64) { + Some(n) => serde_json::Value::Number(n), + None => serde_json::Value::Null, + }, + PropertyData::Double(d) => match serde_json::Number::from_f64(d) { + Some(n) => serde_json::Value::Number(n), + None => serde_json::Value::Null, + }, PropertyData::OsdStr(s) => serde_json::Value::String(s.to_string()), PropertyData::Str(s) => { if as_json { diff --git a/src/stremio_app/stremio_player/player.rs b/src/stremio_app/stremio_player/player.rs index 06501b5..c67ad0d 100644 --- a/src/stremio_app/stremio_player/player.rs +++ b/src/stremio_app/stremio_player/player.rs @@ -102,8 +102,7 @@ fn create_event_thread( .expect("failed to observer MPV property"); } - // -1.0 means to block and wait for an event. - let event = match event_context.wait_event(-1.) { + let event = match event_context.wait_event(1.) { Some(Ok(event)) => event, Some(Err(error)) => { eprintln!("Event errored: {error:?}"); @@ -134,7 +133,7 @@ fn create_event_thread( rpc_response_sender .send(RPCResponse::response_message(player_response.to_value())) - .expect("failed to send RPCResponse"); + .ok(); } }) }