mirror of https://github.com/encounter/SDL.git
Fixed bug #4982 - Failed to open audio_device on OpenSLES / Android 5.x with freq 96khz+
This commit is contained in:
parent
ceb9e9a809
commit
a0cb079a42
|
@ -579,7 +579,7 @@ openslES_CreatePCMPlayer(_THIS)
|
|||
|
||||
failed:
|
||||
|
||||
return SDL_SetError("Open device failed!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -594,8 +594,24 @@ openslES_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
|
|||
LOGI("openslES_OpenDevice() %s for capture", devname);
|
||||
return openslES_CreatePCMRecorder(this);
|
||||
} else {
|
||||
int ret;
|
||||
LOGI("openslES_OpenDevice() %s for playing", devname);
|
||||
return openslES_CreatePCMPlayer(this);
|
||||
ret = openslES_CreatePCMPlayer(this);
|
||||
if (ret < 0) {
|
||||
/* Another attempt to open the device with a lower frequency */
|
||||
if (this->spec.freq > 48000) {
|
||||
openslES_DestroyPCMPlayer(this);
|
||||
this->spec.freq = 48000;
|
||||
ret = openslES_CreatePCMPlayer(this);
|
||||
}
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return SDL_SetError("Open device failed!");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue