Don't keep unused global references to classes, don't throw exceptions
when an exception is already pending, and fix a (harmless) misunderstanding
about how GetStringChars works.
Change-Id: Ie445036f057daa8a1c76aceb7bad2a84fb81d820
We can help you with that.
Note also that getParcelFileDescriptorFD did no such thing. All its callers
were passing in a regular java.io.FileDescriptor and expecting the int. No
ParcelFileDescriptors involved.
Change-Id: Idc233626f20c092e719f152562601f406cc1b64a
(I'm going through all of frameworks/base in multiple passes. This pass is just
for exception throwing.)
Change-Id: Ia14a5c720edae86ac780023be88e676aa1b3315d
This change adds a check to verify that the ANativeWindow to which
decoded video buffers are queued sends those buffers to SurfaceFlinger.
The check is done when the buffer content is flagged as protected. This
change also adds an error in the case where protected buffers are
needed, but an ANativeWindow is not being used as the video destination.
Change-Id: I107c9082d65ef0de4a13594e9535a2053ad5161b
Bug: 4269240
o Don't throw exception again because an exception was already thrown
o Check on return values from FindClass() and GetMethodID
Change-Id: Id92bb8228f1f0d2798d1cdf7de73cbb43816060b
related-to-bug: 4139926
Current implementation of AudioEffect class destructor disables
the effect before disconnecting from IAudioEffect interface.
This is problematic when more than one client has a handle on the same
effect engine as destroying one handle will disable the effect which is
not the intended behavior.
Change-Id: I10eacf981506469a7ef4eb9a1650813f0848de5d
In the javadoc for MediaPlayer.OnBufferingUpdateListener,
the percent parameter for onBufferingUpdate() is described as:
the percentage (0-100) of the buffer that has been filled thus far
This is incorrect. This percentage is the ratio of (current position
+ content buffered) relative to the total duration.
Also buffering updates are only sent for progressive HTTP download.
Change-Id: I9f346a150b39fa1f7b17126119ecc0d7d27fbfbe
Changes:
- Move declaration of kClassPathName to top of file so it can be used
in more than one place, instead of "android/media/AudioSystem".
- Make private methods static.
- Add comment to stream_type, audio_mode, force_use types that they must match
values in AudioSystem.java.
- Add comment about unused types mp3_sub_format and vorbis_sub_format.
- Fix typos.
- Use @ in javadoc comments.
- Delete dead APIs setMode, getMode, setRouting, getRouting in AudioSystem.java
(they are all hidden, deprecated, and unused by rest of framework)
- Delete unused private log method.
- Fix pathname for android_media_AudioSystem.cpp.
- Improve code formatting for space after == and !=.
- Add logging of delta for changing audio policy manager ref count.
Change-Id: I18037c7beb8ab76d1fda08c11e589f6e591d36e1
- MTP support for multiple storage units
- Add storage_id column to media database for MTP storage ID
- Add framework resource for defining mount points and user visible descriptions
for multiple volumes
- Clean up locking in MtpServer JNI code
Change-Id: Iffb66ed156ef5bc80b14228af78fbacee7734360
The first fix (commit 913af0b4) is problematic because it makes threads
in mediaserver process block on the cblk mutex. This is not permitted
as it can cause audio to skip or worse have a malicious application
prevent all audio playback by keeping the mutex locked.
The fix consists in using atomic operations when modifying the control
block flags.
Also fixed audio_track_cblk_t::framesReady() so that it doesn't block
when called from AudioFlinger (only applies when a loop is active).
Change-Id: Ibf0abb562ced3e9f64118afdd5036854bb959428
Instead of returning 0-filled buffers after EOS from AudioTrack we do this
work in AudioOutput instead. That way the EOS signal (0 frames returned)
is preserved in AudioCache which otherwise would lead to a heap size overflow
filling everything with zeroes.
Change-Id: I7e07429ba887957a4340dd4b21eef4bba76248cd
related-to-bug: 3514073