Merge "Check Visualizer.getWaveForm input array size" into udc-qpr-dev

This commit is contained in:
Treehugger Robot
2023-07-25 19:55:09 +00:00
committed by Android (Google) Code Review

View File

@@ -455,11 +455,13 @@ public class Visualizer {
* a number of consecutive 8-bit (unsigned) mono PCM samples equal to the capture size returned
* by {@link #getCaptureSize()}.
* <p>This method must be called when the Visualizer is enabled.
* @param waveform array of bytes where the waveform should be returned
* @param waveform array of bytes where the waveform should be returned, array length must be
* at least equals to the capture size returned by {@link #getCaptureSize()}.
* @return {@link #SUCCESS} in case of success,
* {@link #ERROR_NO_MEMORY}, {@link #ERROR_INVALID_OPERATION} or {@link #ERROR_DEAD_OBJECT}
* in case of failure.
* @throws IllegalStateException
* @throws IllegalArgumentException
*/
public int getWaveForm(byte[] waveform)
throws IllegalStateException {
@@ -467,6 +469,12 @@ public class Visualizer {
if (mState != STATE_ENABLED) {
throw(new IllegalStateException("getWaveForm() called in wrong state: "+mState));
}
int captureSize = getCaptureSize();
if (captureSize > waveform.length) {
throw(new IllegalArgumentException("getWaveForm() called with illegal size: "
+ waveform.length + " expecting at least "
+ captureSize + " bytes"));
}
return native_getWaveForm(waveform);
}
}