From a3c63b4e055f3ec68432d4a27479bed102e68e9e Mon Sep 17 00:00:00 2001 From: Konstantin Seiler Date: Sat, 9 Mar 2019 19:22:15 +1100 Subject: [PATCH 1/4] Speed up loading of files by requesting file and key in parallel. --- playback/src/player.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/playback/src/player.rs b/playback/src/player.rs index ab1a8ab..3841e35 100644 --- a/playback/src/player.rs +++ b/playback/src/player.rs @@ -561,11 +561,11 @@ impl PlayerInternal { .session .audio_key() .request(track.id, file_id) - .wait() - .unwrap(); + let encrypted_file = AudioFile::open(&self.session, file_id); - let encrypted_file = AudioFile::open(&self.session, file_id).wait().unwrap(); + let encrypted_file = encrypted_file.wait().unwrap(); + let key = key.wait().unwrap(); let mut decrypted_file = AudioDecrypt::new(key, encrypted_file); let normalisation_factor = match NormalisationData::parse_from_file(&mut decrypted_file) { From 2e492e4d4478f00ccc24da3538e19b66eb33c861 Mon Sep 17 00:00:00 2001 From: Konstantin Seiler Date: Sat, 9 Mar 2019 19:30:27 +1100 Subject: [PATCH 2/4] Speed up playback by avoiding unnecessary seek when playing from the beginning of a file. --- playback/src/player.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/playback/src/player.rs b/playback/src/player.rs index 3841e35..d4b5532 100644 --- a/playback/src/player.rs +++ b/playback/src/player.rs @@ -580,9 +580,12 @@ impl PlayerInternal { let mut decoder = VorbisDecoder::new(audio_file).unwrap(); - match decoder.seek(position) { - Ok(_) => (), - Err(err) => error!("Vorbis error: {:?}", err), + if position != 0 { + info!("seek {}", position); + match decoder.seek(position) { + Ok(_) => (), + Err(err) => error!("Vorbis error: {:?}", err), + } } info!("Track \"{}\" loaded", track.name); From 43959ee788a8307ac15a5bf7fa0ba41a0182ff57 Mon Sep 17 00:00:00 2001 From: Konstantin Seiler Date: Sat, 9 Mar 2019 20:07:45 +1100 Subject: [PATCH 3/4] Commit missing ; --- playback/src/player.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/playback/src/player.rs b/playback/src/player.rs index d4b5532..b857c45 100644 --- a/playback/src/player.rs +++ b/playback/src/player.rs @@ -561,6 +561,7 @@ impl PlayerInternal { .session .audio_key() .request(track.id, file_id) + ; let encrypted_file = AudioFile::open(&self.session, file_id); From 43dcc6b55b6b17c0270c567999b636df047fcb0c Mon Sep 17 00:00:00 2001 From: Konstantin Seiler Date: Sun, 10 Mar 2019 11:46:25 +1100 Subject: [PATCH 4/4] Remove deft over debug message. --- playback/src/player.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/playback/src/player.rs b/playback/src/player.rs index b857c45..a421c9a 100644 --- a/playback/src/player.rs +++ b/playback/src/player.rs @@ -560,8 +560,7 @@ impl PlayerInternal { let key = self .session .audio_key() - .request(track.id, file_id) - ; + .request(track.id, file_id); let encrypted_file = AudioFile::open(&self.session, file_id); @@ -582,7 +581,6 @@ impl PlayerInternal { let mut decoder = VorbisDecoder::new(audio_file).unwrap(); if position != 0 { - info!("seek {}", position); match decoder.seek(position) { Ok(_) => (), Err(err) => error!("Vorbis error: {:?}", err),