mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
Merge pull request #194 from brain0/fix_pulseaudio
Fix pulseaudio playback with Lewton
This commit is contained in:
commit
cb61e222d7
2 changed files with 13 additions and 10 deletions
|
@ -112,6 +112,7 @@ impl Sink for PulseAudioSink {
|
|||
} else {
|
||||
let ptr = data.as_ptr() as *const libc::c_void;
|
||||
let len = data.len() as usize * mem::size_of::<i16>();
|
||||
assert!(len > 0);
|
||||
call_pulseaudio(
|
||||
|err| unsafe { pa_simple_write(self.s, ptr, len, err) },
|
||||
|ret| ret < 0,
|
||||
|
|
|
@ -372,19 +372,21 @@ impl PlayerInternal {
|
|||
fn handle_packet(&mut self, packet: Option<VorbisPacket>, normalisation_factor: f32) {
|
||||
match packet {
|
||||
Some(mut packet) => {
|
||||
if let Some(ref editor) = self.audio_filter {
|
||||
editor.modify_stream(&mut packet.data_mut())
|
||||
};
|
||||
if packet.data().len() > 0 {
|
||||
if let Some(ref editor) = self.audio_filter {
|
||||
editor.modify_stream(&mut packet.data_mut())
|
||||
};
|
||||
|
||||
if self.config.normalisation && normalisation_factor != 1.0 {
|
||||
for x in packet.data_mut().iter_mut() {
|
||||
*x = (*x as f32 * normalisation_factor) as i16;
|
||||
if self.config.normalisation && normalisation_factor != 1.0 {
|
||||
for x in packet.data_mut().iter_mut() {
|
||||
*x = (*x as f32 * normalisation_factor) as i16;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let Err(err) = self.sink.write(&packet.data()) {
|
||||
error!("Could not write audio: {}", err);
|
||||
self.stop_sink();
|
||||
if let Err(err) = self.sink.write(&packet.data()) {
|
||||
error!("Could not write audio: {}", err);
|
||||
self.stop_sink();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue