diff options
author | Mathias Agopian <mathias@google.com> | 2012-10-29 17:13:16 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2012-10-29 17:13:16 -0700 |
commit | 9aec8c3f7f72cd36a8e3d7aafc1149f50514087a (patch) | |
tree | 6b6ab3c3b3a5ea2d14f57a29f9d6d53fc009f482 /services/audioflinger/test-resample.cpp | |
parent | 36a65500ec740bfd9ea403c94b7cefb82a230e20 (diff) | |
download | frameworks_av-9aec8c3f7f72cd36a8e3d7aafc1149f50514087a.zip frameworks_av-9aec8c3f7f72cd36a8e3d7aafc1149f50514087a.tar.gz frameworks_av-9aec8c3f7f72cd36a8e3d7aafc1149f50514087a.tar.bz2 |
test-resample: clip instead of overflowing
Change-Id: I550e5a59e51c11e1095ca338222b094f92b96878
Diffstat (limited to 'services/audioflinger/test-resample.cpp')
-rw-r--r-- | services/audioflinger/test-resample.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/audioflinger/test-resample.cpp b/services/audioflinger/test-resample.cpp index a55a32b..a8e23e4 100644 --- a/services/audioflinger/test-resample.cpp +++ b/services/audioflinger/test-resample.cpp @@ -206,7 +206,10 @@ int main(int argc, char* argv[]) { int32_t* out = (int32_t*) output_vaddr; int16_t* convert = (int16_t*) malloc(out_frames * sizeof(int16_t)); for (size_t i = 0; i < out_frames; i++) { - convert[i] = out[i * 2] >> 12; + int32_t s = out[i * 2] >> 12; + if (s > 32767) s = 32767; + else if (s < -32768) s = -32768; + convert[i] = int16_t(s); } // write output to disk |