diff options
| author | 2015-10-30 18:25:38 -0700 | |
|---|---|---|
| committer | 2016-02-09 10:47:56 -0800 | |
| commit | 518432e36610ad6a14f00fdd8123efa295c7eaed (patch) | |
| tree | 8a04c109a7326cf971c2122e1f50890fb52367de | |
| parent | 95728a5db6595e473acf8f428f238afc2fdbbe80 (diff) | |
Update documentation for offset and size
Change-Id: Id9d5ef62767155cc8597795b43c4422f623574ed
| -rw-r--r-- | media/java/android/media/AudioRecord.java | 28 | ||||
| -rw-r--r-- | media/java/android/media/AudioTrack.java | 27 |
2 files changed, 45 insertions, 10 deletions
diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index 800b91497058..e342385f4c6c 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -1014,9 +1014,12 @@ public class AudioRecord implements AudioRouting * Reads audio data from the audio hardware for recording into a byte array. * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. + * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * @param audioData the array to which the recorded audio data is written. - * @param offsetInBytes index in audioData from which the data is written expressed in bytes. + * @param offsetInBytes index in audioData to which the data is written expressed in bytes. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of requested bytes. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. @@ -1025,7 +1028,8 @@ public class AudioRecord implements AudioRouting * @return the number of bytes that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. - * The number of bytes will not exceed sizeInBytes. + * The number of bytes will be a multiple of the frame size in bytes + * not to exceed sizeInBytes. */ public int read(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @ReadMode int readMode) { @@ -1053,12 +1057,14 @@ public class AudioRecord implements AudioRouting * The format specified in the AudioRecord constructor should be * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. - * @param offsetInShorts index in audioData from which the data is written expressed in shorts. + * @param offsetInShorts index in audioData to which the data is written expressed in shorts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. - * The number of shorts will not exceed sizeInShorts. + * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts) { return read(audioData, offsetInShorts, sizeInShorts, READ_BLOCKING); @@ -1070,7 +1076,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_16BIT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInShorts index in audioData from which the data is written expressed in shorts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of requested shorts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. @@ -1079,7 +1087,7 @@ public class AudioRecord implements AudioRouting * @return the number of shorts that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. - * The number of shorts will not exceed sizeInShorts. + * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int read(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @ReadMode int readMode) { @@ -1108,7 +1116,9 @@ public class AudioRecord implements AudioRouting * {@link AudioFormat#ENCODING_PCM_FLOAT} to correspond to the data in the array. * @param audioData the array to which the recorded audio data is written. * @param offsetInFloats index in audioData from which the data is written. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of requested floats. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param readMode one of {@link #READ_BLOCKING}, {@link #READ_NON_BLOCKING}. * <br>With {@link #READ_BLOCKING}, the read will block until all the requested data * is read. @@ -1117,7 +1127,7 @@ public class AudioRecord implements AudioRouting * @return the number of floats that were read or {@link #ERROR_INVALID_OPERATION} * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. - * The number of floats will not exceed sizeInFloats. + * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int read(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @ReadMode int readMode) { @@ -1154,6 +1164,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. + * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). @@ -1161,7 +1172,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. - * The number of bytes read will truncated to be a multiple of the frame size. + * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes) { return read(audioBuffer, sizeInBytes, READ_BLOCKING); @@ -1175,6 +1186,7 @@ public class AudioRecord implements AudioRouting * The representation of the data in the buffer will depend on the format specified in * the AudioRecord constructor, and will be native endian. * @param audioBuffer the direct buffer to which the recorded audio data is written. + * Data is written to audioBuffer.position(). * @param sizeInBytes the number of requested bytes. It is recommended but not enforced * that the number of bytes requested be a multiple of the frame size (sample size in * bytes multiplied by the channel count). @@ -1187,7 +1199,7 @@ public class AudioRecord implements AudioRouting * if the object wasn't properly initialized, or {@link #ERROR_BAD_VALUE} if * the parameters don't resolve to valid data and indexes. * The number of bytes will not exceed sizeInBytes. - * The number of bytes read will truncated to be a multiple of the frame size. + * The number of bytes read will be truncated to be a multiple of the frame size. */ public int read(@NonNull ByteBuffer audioBuffer, int sizeInBytes, @ReadMode int readMode) { if (mState != STATE_INITIALIZED) { diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index b26b310a904b..bdf6d9f19558 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1774,6 +1774,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. + * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the write will normally block until all the data has been enqueued for * playback, and will return a full transfer count. However, if the track is stopped or paused @@ -1786,7 +1787,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. + * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of bytes that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if @@ -1795,6 +1798,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). + * The number of bytes will be a multiple of the frame size in bytes + * not to exceed sizeInBytes. * * This is equivalent to {@link #write(byte[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. @@ -1808,6 +1813,7 @@ public class AudioTrack implements AudioRouting * or copies audio data for later playback (static buffer mode). * The format specified in the AudioTrack constructor should be * {@link AudioFormat#ENCODING_PCM_8BIT} to correspond to the data in the array. + * The format can be {@link AudioFormat#ENCODING_PCM_16BIT}, but this is deprecated. * <p> * In streaming mode, the blocking behavior depends on the write mode. If the write mode is * {@link #WRITE_BLOCKING}, the write will normally block until all the data has been enqueued @@ -1823,7 +1829,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInBytes the offset expressed in bytes in audioData where the data to write * starts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInBytes the number of bytes to write in audioData after the offset. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written @@ -1838,6 +1846,8 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). + * The number of bytes will be a multiple of the frame size in bytes + * not to exceed sizeInBytes. */ public int write(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes, @WriteMode int writeMode) { @@ -1887,7 +1897,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to play. * @param offsetInShorts the offset expressed in shorts in audioData where the data to play * starts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. + * Must not be negative, or cause the data access to go out of bounds of the array. * @return zero or the positive number of shorts that were written, or * {@link #ERROR_INVALID_OPERATION} * if the track isn't properly initialized, or {@link #ERROR_BAD_VALUE} if @@ -1896,6 +1908,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). + * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. * * This is equivalent to {@link #write(short[], int, int, int)} with <code>writeMode</code> * set to {@link #WRITE_BLOCKING}. @@ -1923,7 +1936,9 @@ public class AudioTrack implements AudioRouting * @param audioData the array that holds the data to write. * @param offsetInShorts the offset expressed in shorts in audioData where the data to write * starts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInShorts the number of shorts to read in audioData after the offset. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written @@ -1938,6 +1953,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). + * The number of shorts will be a multiple of the channel count not to exceed sizeInShorts. */ public int write(@NonNull short[] audioData, int offsetInShorts, int sizeInShorts, @WriteMode int writeMode) { @@ -1999,7 +2015,9 @@ public class AudioTrack implements AudioRouting * to provide samples values within the nominal range. * @param offsetInFloats the offset, expressed as a number of floats, * in audioData where the data to write starts. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param sizeInFloats the number of floats to write in audioData after the offset. + * Must not be negative, or cause the data access to go out of bounds of the array. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. * <br>With {@link #WRITE_BLOCKING}, the write will block until all data has been written @@ -2014,6 +2032,7 @@ public class AudioTrack implements AudioRouting * needs to be recreated. * The dead object error code is not returned if some data was successfully transferred. * In this case, the error is returned at the next write(). + * The number of floats will be a multiple of the channel count not to exceed sizeInFloats. */ public int write(@NonNull float[] audioData, int offsetInFloats, int sizeInFloats, @WriteMode int writeMode) { @@ -2075,7 +2094,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. - * @param sizeInBytes number of bytes to write. + * @param sizeInBytes number of bytes to write. It is recommended but not enforced + * that the number of bytes requested be a multiple of the frame size (sample size in + * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. It has no * effect in static mode. @@ -2142,7 +2163,9 @@ public class AudioTrack implements AudioRouting * <BR>Note that upon return, the buffer position (<code>audioData.position()</code>) will * have been advanced to reflect the amount of data that was successfully written to * the AudioTrack. - * @param sizeInBytes number of bytes to write. + * @param sizeInBytes number of bytes to write. It is recommended but not enforced + * that the number of bytes requested be a multiple of the frame size (sample size in + * bytes multiplied by the channel count). * <BR>Note this may differ from <code>audioData.remaining()</code>, but cannot exceed it. * @param writeMode one of {@link #WRITE_BLOCKING}, {@link #WRITE_NON_BLOCKING}. * <BR>With {@link #WRITE_BLOCKING}, the write will block until all data has been written |