Lowered limits for when to use shared buffers vs inline data and how
much total data to allow in a mediasource binder transaction. Fix typo
limiting MediaSource / extractor to only 1 mediabuffer as shared memory.
Bug: 115848790
Test: poc from bug
These leaks aren't really consequential since this is a standalone
test. But by putting in simple fixes for these, we reduce the
noise when using static analysis to find leaks in Android code.
Test: TreeHugger
Change-Id: Iace7028f8bc3951abf72ddcec2b741b7a5f61a3e
Combine adjust channels buffer provider and adjust channels non-destructive
buffer provider.
When contracting mono + haptic channels to mono, do not use
adjust_channels to avoid mixing haptic channel into audio channel.
Bug: 125915810
Test: play audio-haptic coupled files
Change-Id: I39916a3e0628a44ed4a148c265564af7135a2176
(1) Change logic of addAudioDeviceCallback() since mJAudioTrack is
likely to be null when this function is called.
(2) Replace add/removeGlobalRef() with JObjectHolder
(3) Replace std::vector with utils/Vector.h
Test: android.media.cts.RoutingTest#test_MediaPlayer2_RoutingChangedCallback with routing change log
Bug: 127314187
Change-Id: I62d9c7600c710b49f0435bd1fc2741d79c928b55
pre_virtualized and add_emdf_substreams should locate
in the same level with single_substream_group checking.
Bug: 127685179
Test: see repro steps
Change-Id: Ic715b316f2b0d0fc86dfd9db03ba7bf01a1f0a2e
Some mkv or mka files don't have any cue point, especially mka file
which is transformed from ffmpeg. When user plays such mkv or mka file,
user cannot seek to correct position.
To handle this issue, we ignore cues and load clusters. When we seek
and find that it has no cue point, we call seekwithoutcue function,
which will find correct position from loaded clusters.
Bug: 123150866
Test: Test with a mkv or mka file without CUES and check if we can
can seek to correct position and play normally.
Change-Id: I77cb64ebee6261545ab3eff6a38538d854408b47
When an AudioTrack or AudioRecord is created by system server,
if restoreTrack_l() or restoreRecord_l() is called from AudioTrackThread
or AudioRecordThread, and that then calls audioserver through binder,
which then calls a Java service, binder recursion may call Java
on the original calling thread.
Test: bluetooth calls don't crash
Bug: 126948865
Bug: 127619936
Change-Id: I41fcb666d07c4ab985f5590e40e0c310709e786d
am: c0d394b04e -s ours
am skip reason: change_id I785612966e7c6201db333e3a736e6efda9e63feb with SHA1 e57e9a2ca6 is in history
Change-Id: If338af755d56ad8cb8c2cd6c536d337ec83672dc
am: b7fdf50586 -s ours
am skip reason: change_id Ib040856c58d38e11a5f32cd5dd5519910573334b with SHA1 99f4a73adf is in history
Change-Id: I94a6a0c7811df2ef4dd56dafa411c15c0d6cdd37
Seek pre-roll parsing was skipped in OpusHeader because of
wrong loop check.
Also, C2 opus decoder plugin was reading from codecDelayBuf instead
of seekPreRollBuf
Test: With a local AMediaCodec api based application to decode
opus encoder's output
Bug: 123426341
Change-Id: I0924f67c4a070a582b578d2ecdcd2fecd10134ad
Added a marker and length field before OpusHead data as well.
This will prevent any potential truncation of OpusHead, when
data inside OpusHead matches one of the markers defined
Added checks to validate sizes parsed.
If the sizes are not as expected, then treat that as an error
OggWriter updated to not write codec config data as frame data
Test: With a local AMediaCodec api based application to decode
opus encoder's output
Test: Test with mediamuxer api based application to mux encoders output
to ogg file
Test: cts-tradefed run cts -m CtsMediaTestCases \
-t android.media.cts.EncoderTest#testOpusEncoders
Bug: 123581317
Bug: 124053011
Change-Id: Ic3c7613ff47855e16be39dc60939e1e715522bc6
Bug: 124020326
according to spec, array_completeness should be 1 for hvc1 atom
Test: cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
CRs-Fixed: 2241165
Change-Id: I6183f49fb16b14f28050d2dd54f39c823f4a9d39
- Renamed libaudiopolicyengineconfig to libaudiopolicyengine_config
in order to match names libaudiopolicyengine_{common|interface}.
- Made libaudiopolicyengine_config static to avoid .so overhead.
- Added a cleanspec for it.
- Added libaudiopolicyengine_common which includes source files
previously included directly into engineconfigurable and
enginedefault libraries.
Bug: 121208203
Test: make & flash crosshatch
Change-Id: If3b7b89fcbd5752ddfdeca6c164a88f55bc35811
Support 1-7 channels when writing raw AAC, since that's what the
file format supports.
authored-by: Sachin Mohan Gadag <sgadag@codeaurora.org>
Bug: 123375289
Test: builds
Change-Id: Ibc44fb575ad2897f936ed7f73f99ce481cdadb7d
am: be17007765 -s ours
am skip reason: change_id I5f0e64ee6e2d5eb6b64491356a5bfa50b512a9c9 with SHA1 86cbf71505 is in history
Change-Id: I885b4f577d34617a8eac6ccfadc150eddc8fa924
This is a part of cutting dependency from libmediandk to
libandroid_runtime.
By making a libandroid_runtime to be loaded lazily,
libmediandk won't load libandroid_runtime when it is used as a LL-NDK.
Bug: 124268753
Test: m -j
Change-Id: Ib040856c58d38e11a5f32cd5dd5519910573334b
Merged-In: Ib040856c58d38e11a5f32cd5dd5519910573334b