summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2015-01-10 01:13:38 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-01-10 01:13:38 +0000
commit5b16836d6733170167f00d216ed149e07e3e1c28 (patch)
treea2a5bce9763ddd060cbdb402a9fdef8adc8f5014 /modules
parent31844086a611a5cad4520f87303660c7137d05cc (diff)
parente64994292cb02fae66f04002e1121d29979503d1 (diff)
downloadhardware_libhardware-5b16836d6733170167f00d216ed149e07e3e1c28.zip
hardware_libhardware-5b16836d6733170167f00d216ed149e07e3e1c28.tar.gz
hardware_libhardware-5b16836d6733170167f00d216ed149e07e3e1c28.tar.bz2
am e6499429: Merge commit \'83b47a68\' into manualmerge
* commit 'e64994292cb02fae66f04002e1121d29979503d1': usb audio: Fix incorrect bytes returned for recording
Diffstat (limited to 'modules')
-rw-r--r--modules/usbaudio/audio_hw.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/usbaudio/audio_hw.c b/modules/usbaudio/audio_hw.c
index 7f6d8bd..f391b10 100644
--- a/modules/usbaudio/audio_hw.c
+++ b/modules/usbaudio/audio_hw.c
@@ -793,6 +793,7 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
size_t num_read_buff_bytes = 0;
void * read_buff = buffer;
void * out_buff = buffer;
+ int ret = 0;
struct stream_in * in = (struct stream_in *)stream;
@@ -842,7 +843,8 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
read_buff = in->conversion_buffer;
}
- if (proxy_read(&in->proxy, read_buff, num_read_buff_bytes) == 0) {
+ ret = proxy_read(&in->proxy, read_buff, num_read_buff_bytes);
+ if (ret == 0) {
/*
* Do any conversions necessary to send the data in the format specified to/by the HAL
* (but different from the ALSA format), such as 24bit ->16bit, or 4chan -> 2chan.
@@ -886,7 +888,7 @@ static ssize_t in_read(struct audio_stream_in *stream, void* buffer, size_t byte
if (num_read_buff_bytes > 0 && in->dev->mic_muted)
memset(buffer, 0, num_read_buff_bytes);
} else {
- num_read_buff_bytes = 0;
+ num_read_buff_bytes = 0; // reset the value after USB headset is unplugged
}
err: