diff --git a/jni/nv_alsa/nv_alsa.c b/jni/nv_alsa/nv_alsa.c index 996dffd..e1de5b9 100644 --- a/jni/nv_alsa/nv_alsa.c +++ b/jni/nv_alsa/nv_alsa.c @@ -19,13 +19,21 @@ int nv_alsa_init(unsigned int channelCount, unsigned int sampleRate) { snd_pcm_hw_params_alloca(¶ms); snd_pcm_hw_params_any(handle, params); - snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED); - snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16_LE); - snd_pcm_hw_params_set_channels(handle, params, channelCount); - snd_pcm_hw_params_set_rate_near(handle, params, &sampleRate, &dir); + if ((rc = snd_pcm_hw_params_set_access(handle, params, SND_PCM_ACCESS_RW_INTERLEAVED)) != 0) + return rc; + + if ((rc = snd_pcm_hw_params_set_format(handle, params, SND_PCM_FORMAT_S16_LE)) != 0) + return rc; + + if ((rc = snd_pcm_hw_params_set_channels(handle, params, channelCount)) != 0) + return rc; + + if ((rc = snd_pcm_hw_params_set_rate_near(handle, params, &sampleRate, &dir)) != 0) + return rc; snd_pcm_uframes_t frames = 32; - snd_pcm_hw_params_set_period_size_near(handle, params, &frames, &dir); + if ((rc = snd_pcm_hw_params_set_period_size_near(handle, params, &frames, &dir)) != 0) + return rc; if ((rc = snd_pcm_hw_params(handle, params)) != 0) return rc; @@ -51,4 +59,4 @@ int nv_alsa_play(const unsigned char* indata, int data_len) { int nv_alsa_close(void) { snd_pcm_drain(handle); snd_pcm_close(handle); -} \ No newline at end of file +} diff --git a/src/com/limelight/binding/audio/AlsaAudioRenderer.java b/src/com/limelight/binding/audio/AlsaAudioRenderer.java index 452e041..7dbd60a 100644 --- a/src/com/limelight/binding/audio/AlsaAudioRenderer.java +++ b/src/com/limelight/binding/audio/AlsaAudioRenderer.java @@ -10,7 +10,9 @@ public class AlsaAudioRenderer implements AudioRenderer { @Override public void streamInitialized(int channelCount, int sampleRate) { - AlsaAudio.init(channelCount, sampleRate); + int ret = AlsaAudio.init(channelCount, sampleRate); + if (ret != 0) + throw new IllegalStateException("AVC decoder initialization failure: "+ret); } @Override