1. Toggling between Treble and non-Treble OMX will now be controlled by
two properties: "persist.hal.binderization" and
"persist.media.treble_omx". (Before this CL, this was controlled by
"debug.treble_omx".)
- If persist.media.treble_omx is not set, it will assume a default value
of -1.
- If persist.media.treble_omx is -1, persist.hal.binderization will be
used to determine whether OMX will be created as a Treble or non-Treble
service.
- If persist.media.treble_omx is 1, OMX will be created as a Treble
service.
- If persist.media.treble_omx has any other value, OMX will be created
as a non-Treble service.
- persist.media.treble_omx can be changed without rebooting, but it will
only take effect after media.codec and mediaserver processes are killed.
2. Remove all dependencies on non-Treble service. This was not done for
MediaCodec, MediaPlayerService::Client, MediaRecorderClient, stagefright
command, and omx_tests command. OMXClient and media.codec process will
now pick the right version of OMX based on properties mentioned above.
Before this CL, media.codec would always present the non-Treble version
of OMX regardless of the flag.
3. Provide workarounds for some HIDL issues.
- A sequence of nested binder and hwbinder calls require many threads to
handle. (b/35283480) The workaround is to increase the number of threads
in the thread pool of media.codec process.
- android.hidl.base@1.0::IBase::unlinkToDeath takes a strong pointer
instead of a weak pointer. (b/35233970) This causes an infinite
recursion in the destructor of ServiceDeathNotifier in
MediaPlayerService::Client and MediaRecorderClient. The workaround moves
calls to unlinkToDeath() outside of the destructor.
Test: Recorded and played videos with Camera app. Ran stagefright and
omx_tests commands.
Bug: 31399200
Change-Id: Id1940ed982838e10bf10fe8ed5b7bb912a5a2d3a
underlying collection of MediaRecorder metrics for getMetrics() API
and for media metrics cloud analysis.
Bug: 35150984
Test: hacked CTS, observation of 'dumpsys media.metrics'
Change-Id: Ife2ab06158b0015549ed17d52d7f4c35781f5e0f
The VolumeShaper is used to apply a volume
envelope to an AudioTrack or a MediaPlayer.
Test: CTS
Bug: 30920125
Bug: 31015569
Change-Id: I42e2f13bd6879299dc780e60d143c2d465483a44
If two application are playing a compatible offload stream at the same
time.
Eg: two games playing MP3. At least one not taking the audio
focus.
The audio policy was offloading both stream resulting in audio glitches
and one stream being dropped.
Concurrent offload streams is intended to be a transitioning state when
an application wants back to back playbacks.
It should not be allowed for two different applications to stream at the
same time.
Test: Play mp3 while mp3 is already offloaded.
Bug: 34012147
Change-Id: I98a8913d6faf5092a1e43a0bdd0f1ce1482221a9
Signed-off-by: Kevin Rocard <krocard@google.com>
plumbing so that user level android.media.MediaExtractor.getMetrics()
will get down to where we keep the metrics and then haul them back
to the application. Includes the right hooks so that per-container-type
metrics will also be managed.
Bug: 35094936
Test: monitor dumpsys output, augmented CTS examination
ACodec will connect to the Treble version of Omx if the property
"debug.treble_omx" is set to true ("1", "y", "yes", "true" or "on").
Also, fix some bugs found so far.
Test: Compiles
Bug: 31399200
Change-Id: I52b27b5f99bc1d6797d3b83b8be794ed2de9956a
Pass application package name to createPlugin and createDrmPlugin.
The application packagename will be used as part of a unique
identifier for drm plugin.
Test: Play Movies.
Test: ANDROID_BUILD_TOP= ./android-gts/tools/gts-tradefed run gts -m
GtsMediaTestCases --test
com.google.android.media.gts.WidevineH264PlaybackTests#testL1With480P60
Verify the application's packagename is reachable in the drm plugin's
debug log.
bug: 27101531
Change-Id: I84fb09b591a7af63f6e20004e910112a4ce6ebac
* changes:
Split Treble conversion module into two sides: impl and utils.
Use HIDL's memory in CodecBuffer and add wrapper classes for IOmxBufferProducer and IOmxProducerListener.
provide 'friend' access for the class that converts Media Metrics
properties into a Java Bundle to be handed to users through local APIs.
Actual code to do conversion is in frameworks/base/
Bug: 34716157
Test: compilation passes
Collect metrics for nuplayer/mediaplayer, codec, extractor.
publishes them to media.metrics service
provides hooks that local APIs use to connect to retrieve metrics
from the above when running on their behalf.
Separate set of changes does the final hop to the local APIs.
Bug: 34715803
Test: build & run, observed code/extractor/player metrics in logs
Change-Id: Ic5a0a7b3b93a5a41af93d81050ba038f0f7a4329
This change adds DrmHal & CryptoHal classes that connect to the Treble
HAL interfaces for drm. These classes mirror the existing Drm and
Crypto classes that connect to the DrmPlugin and CryptoPlugin
interfaces. Having both allows mediadrmserver to run in either mode
while the HAL is stabilized.
The shared memory interfaces between mediaserver's ACodecBufferChannel
and ICrypto had to be reworked to use the Treble HALs. Specifically,
the shared memory path for returning decrypted buffers in the
non-secure case had to become separate instead of piggy-backing on the
source shared memory buffer. A separate shared memory destination
buffer is now allocated on the buffer channel. An abstraction for a
decrypt destination buffer was also introduced to clarify ICrypto's
decrypt method.
Tests: Playback using Play Movies and ExoPlayer works on angler
with and without the treble hal enabled.
bug: 32815560
Change-Id: I5a3dc84f99902eb8cf8eabab9ad074d307744950
Correctly operate on input and output buffers in DownmixerBufferProvider
Note that playback is a bit choppy, need to investigate further.
Change-Id: I350175dcc9cc7142a1935585a8bd5e9abb1b8eb6
Test: play back a 5.1 file
reflect the change from "media.analytics" to "media.metrics" in
what service names we use; bring the metrics service main code into the
service directory (vs an additional shared library).
Removed references to tentative binder functions that the service
won't be offering, at least not in the near future.
Bug: 34615027
Test: build, boot, new services run, clients talking to said services.
Change-Id: If17772a8f03c05b142e8d5779830d198710210c1
Hwbinder 'linkToDeath' mechanism is used to track abrupt
disappearance of server hal objects due to hal server crash.
Upon hal server crash, notifications can be sent to binder
clients if needed, then the audioserver crashes itself as the
current audio HAL design does not provide an easy way to restore
all the transient objects (devices, streams, effects) in their
pre-crash state.
Bug: 34158778
Test: In binderized mode, kill audio hal server
Change-Id: If9265711edc445984601fcb5c29d2c173a370762
It was not used, untested and untestable.
Bug: 33354165
Test: ran forward lock and media playback CTS tests, manual playback.
Change-Id: I4dd3f07ca5b019a5fed0c860aa573fc993464712
This patch adds the dump of AudioPolicyMix if registered.
It also adds the required conversion map to human readable strings
of the types involved in Mixes.
Adapted for the development branch from the AOSP patch:
https://android-review.googlesource.com/#/c/309127/
Change-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89
Test: build, dumpsys media.audio_policy
Added definition of MmapStreamInterface used by Oboe service
to open, configure and control MMAP streams at the audio HAl.
This interface is implemented by audioflinger and abstracts the details
of interacting with audio policy manager and audio HAL from Oboe service.
A callback interface MmapStreamCallback is also defiend to communicate
volume and routing changes back to Oboe service.
Bug: 33398120
Test: build
Change-Id: If953d44903aaa4eb17ff16f1922ca16e5e0e0a87
Result: no hwbinder calls due music processing.
Test: make, use Play Music with effects, check traces
Bug: 30222631
Change-Id: I06d0e94e603688874b31824427f3b0878b5f7c8e
- MediaCodec stops tracking the whole buffer array from OMX.
- BufferChannel handles array management instead, if necessary.
- MediaCodec delegates secure buffer management to BufferChannel.
- Remove sf2.
Bug: 32133435
Test: adb shell am instrument -e size small -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
Test: Play an encrypted content in Play Movies
Test: Mirror the screen via Cast.
Change-Id: I1ca705687956ad972e31257853c54e29cbd7181a
Add support for USAGE_ASSISTANT.
Fix stream type for USAGE_ACCESSIBILITY.
Test: enable Talkback, check volume; make
Bug: 30947943
Change-Id: Ie35adf0115dce1fac6d3deddc1e57e36b36913f6
NBLog previously has its own shared memory circular buffer code.
Now NBLog operates on top of the circular buffer code in audio_utils.
Test: media.log still works
Change-Id: Ib3026d2a96e6c0b433603e8baf19164ad97a1e1f
* Added new call handleDeviceConfigChange() to the Media Framework.
That call can be used when there are device configuration changes
(e.g., Bluetooth A2DP codec configuration has changed).
* Added new method AudioPolicyManager::handleDeviceConfigChange().
That method toggles the UNAVAILABLE/AVAILABLE connection state of the
device, so it can be reconfigured as appropriate - e.g., the audio
feeding parameters can be updated.
* Fix ALOGVV compilation errors when extra logging is enabled.
Test: A2DP streaming to headsets
Bug: 30958229
Change-Id: I388abbbb3ec4d1a003b441cb0c77e00d80cad668
Rework some interfaces to avoid unnecessary sp<> mechanisms;
document which side of caller/callee owns pointers afterwards.
Rework internal attribute representation, add support routines.
Bug: 33547720
Test: Boot, ran subset of CTS media tests
Change-Id: Id0d65bd6a847704dc98d38be9aa5e1ce63c20e1c
There are 5 pairs of wrapper classes for the 5 HIDL interfaces: IOmx,
IOmxNode, IOmxObserver, IOmxBufferSource and IGraphicBufferSource.
Some additional functions of OMXBuffer and OMXFenceParcelable are needed
in the implementation of these wrapper classes, so they are added in
this CL as well.
Auto-generated files that correspond to interfaces without queryable
instances are removed.
Test: Compiles.
Bug: 31399200
Change-Id: Iaec9c0e0afee6fc847f324c3eb3c105d6342a1fe
Also removed const from NBAIO_Sink::availableToWrite() because
at least one implementation can no longer implement the const-ness.
Test: normal mixer, tee sink, and remote submix still work
Change-Id: I8461177efdf53bba8295b147e97835b018804903
These are exposed when frameworks/av/include is moved from being a
system include directory to a normal include directory.
Test: m -j checkbuild
Change-Id: I0e3787fbee70339f7dcbc979f448800ecfff0f17
Merged-In: I0e3787fbee70339f7dcbc979f448800ecfff0f17
These are exposed when frameworks/av/include is moved from being a
system include directory to a normal include directory.
Test: m -j checkbuild
Change-Id: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2
Merged-In: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2
These are exposed when frameworks/av/include is moved from being a
system include directory to a normal include directory.
Test: m -j checkbuild
Change-Id: I0e3787fbee70339f7dcbc979f448800ecfff0f17
These are exposed when frameworks/av/include is moved from being a
system include directory to a normal include directory.
Test: m -j checkbuild
Change-Id: Iaa8f3808d578ebedc75e863b9818cfbbec9080b2
The Vorbis decoder needs the number of samples in a page added to
the end of the encoded data, which SimpleDecodingSource wasn't doing.
This affected Vorbis decoding using OpenSL ES.
Bug: 32258336
Test: ran CTS and OpenSLES tests
Change-Id: I436e4a1ee998ce4581eb540bea8b66154960a4e7
This will allow to track activity at the track level instead of
at audio session level as only possible with current implementation.
AudioTracks and AudioRecords will receive a unique audio port ID the
first time they register to audio policy with
getOutputForAttr()/getInputForAttr() and keep this ID for their
lifetime.
This CL is the first partial change and just updates the
audio policy and audio flinger APIs used at track creation time.
Test: basic regression test of audio playback and capture use cases
Change-Id: I8d612e67738e120494f61e3f7c60bfd0b2c6a329
Avoid calling SniffDrm twice, and remove [gs]etDrmFlag methods
since they serve no purpose anymore.
Test: ran forward lock CTS test, and played protected content in Play Movies
Change-Id: I8313d2dae459151bf965a76ac1125d36ce8176e6
Even in dynamic ANW buffer mode, if the graphic buffer
is not changing, send sPreset instead of the same graphic
buffer, so that OMX server side doesn't update the meta.
In theory it should make no difference, however when the
same buffer is parcelled again, a new handle could be
created on server side, and some decoder doesn't recognize
the handle even if it's the same buffer.
bug: 33186735
Change-Id: Iff9e2958b90778ac37f93e74cb9cec1b89a9b5b8
- MediaCodec stops tracking the whole buffer array from OMX.
- BufferChannel handles array management instead, if necessary.
- MediaCodec delegates secure buffer management to BufferChannel.
- Remove sf2.
Bug: 32133435
Test: adb shell am instrument -e size small -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
Test: Play an encrypted content in Play Movies
Test: Mirror the screen via Cast.
Change-Id: Idc9fdee42ea0cdd3b5f15ba5c51647c3e16504a1
This encompasses the basic framework files for mediaanalytics. This
includes the library code to run in clients, the interface definitions
to get to the service, and the mediaanalytics service.
This version of the patchset also incorporates a wholesale change from
"Media Statistics" to "Media Analytics" -- which involved both textual
changes and file renaming
This does not include the changes to other entities that will be sending
data. We'll do those under separate per-entity commits.
Bug: 30267133
Test: run through cts' media stress tests
Change-Id: Iee7e722d10fd57c5d6b14e2947117ed0d3af4f2a
This client requires both HIDL client and server to be of the same
ABI version (e.g. 32-bit).
EffectHalHidl::process and EffectHalHidl::processReverse are stubs.
Some extra warnings are logged due to unimplemented functions
in the legacy HAL.
Bug: 30222631
Change-Id: Id074131dec6d6c4f1031695abcf3ea066e92a5af
Test: Play Music (play / EQ), YouTube, Loopback RTLT, Ok Google on N5X
and don't register the sniffers in every process that plays media,
but only in the extractor process.
Bug: 33166870
Change-Id: Id269d1eab8be1549542adad3037729a63b5ebaef
CodecBase instances do not post reply messages back to MediaCodec
explicitly --- Callback does the job instead.
Bug: 32133435
Test: adb shell am instrument -e size small -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
Test: Play an encrypted content in Play Movies
Change-Id: I210993a3bbc306f970b8e9395a91e8697cfa832e
Currently if stop is followed by a reset from another thread,
we unblock the stop first (to avoid ANR) without waiting for
kWhatShutdownCompleted, and proceed with the reset request.
But this could cause release to return too early when the
kWhatShutdownCompleted for the stop is received. When this
happens, the reset() will unregister ACodec's handlers before
the real shutdown with deallocation is processed, causing
a codec node instance to be leaked.
To solve this problem, separate kWhatShutdownCompleted into
two messages kWhatStopCompleted and kWhatReleaseCompleted.
Release should only return upon kWhatReleaseCompleted.
Also initializing the fence fd in the metadata buffer (even
though it's not used) to avoid warning in freeBuffer.
bug: 32750454
bug: 32971559
Change-Id: If218c853955729a2a2f2e8356908115a79c442e3
TypeTraits.h includes some additional type utility templates not
covered by <type_traits>.
Flagged.h is a template that allows adding flags to an arbitrary
type, and combine additional flags into that.
Bug: 32885576
Change-Id: I13faa6d265cc06df76609b255704d0cf22e2d904
Added functions that are helpful for building parameter query
strings to be used with HAL's 'get_parameter' methods.
Test: make
Change-Id: I66a4e94d65660b04ded4abb59a89d8288056a920
- Add setPortMode to centralize port mode configuration
- Remove storeMetaDataInBuffers and enableNativeBuffers. These are
no longer exposed to the client. Metadata mode and native/secure
buffer mode will be enabled by OMX as needed by the port mode.
- Move handling of legacy adpative experiment (legacy metadata mode)
to OMX side. Legacy mode will now appear the same as non-metadata
mode to client.
bug: 31399200
Change-Id: Iaf33bd7c30fab4acbc19e9fb8c19e322f9b4a0a0
In buffer array mode, the buffer reference is kept in clients of
MediaCodec, so allocating new buffer for new input/output does not
work in that case.
Bug: 32577275
Bug: 32579231
Test: use screenrecord and investigate the output file.
Test: cts-tradefed run cts-dev -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest
Change-Id: I26d89f6b5735094062b8a2027bcab4754576d574
This will be needed for the default implementation of the audio HAL
in TREBLE for parsing supported formats etc. provided by HAL in
a form of string literals.
As a bonus, remove some hand-written type conversions in AudioFlinger
used in dumps.
Example changes in the dump output:
HAL format: 0x1 (pcm16) ==> HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)
Processing format: 0x5 (pcmfloat) ==> Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)
Output device: 0x2 (SPEAKER) ==> Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)
Input device: 0 (NONE) ==> Input device: 0 (AUDIO_DEVICE_NONE)
AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) ==>
AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)
Test: make & run
Change-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f
1. Remove the restriction that MPEG4Writer could only write at most one video
track and one audio track.
2. Allow muxing mutiple metadata tracks into the file. Did not put a limit on
each sample's metadata size now.
3. metadata mime format must start from prefix "application/".
4. metadata's format/layout is defined by the application.
5. Generated MP4 file use TextMetaDataSampleEntry defined in section 12.3.3.2
of the ISOBMFF to signal the metadata's mime format.
Test: Manual test.
Bug: 28536560
Change-Id: I97829e235e598e35fcad31f948eea5943f8c4fd5
The Vorbis decoder needs the number of samples in a page added to
the end of the encoded data, which SimpleDecodingSource wasn't doing.
This affected Vorbis decoding using OpenSL ES.
Bug: 32258336
Test: ran CTS and OpenSLES tests
Change-Id: I436e4a1ee998ce4581eb540bea8b66154960a4e7
- Use OMXBuffer to parcel different buffer types.
- Only leave one useBuffer, emptyBuffer and fillBuffer.
- Remove the update metadata calls.
bug: 31399200
Change-Id: I307e59415c3c5be61772210431bd8225ce6b75a3
- Buffers are (roughly) owned by themselves.
- As a corollary, remove output format change related events
and replace by inspecting formats associated with each buffers.
Bug: 32133435
Test: gts-tradefed run gts -m GtsExoPlayerTestCases
Test: (manual) Run Play Movies app to play a secure content.
Change-Id: I6b57da61c2d71acd0d5be4281de823ba1c95b72f
DeviceHalInterface transitioned to "capabilities" model
(similar to the one already used by streams, e.g. 'supportsDrain').
No direct checking of the HAL version is needed.
AudioPolicy uses its own version read from the configuration,
and these values never checked against the actual HAL version,
thus it does not need versions and macroses from hardware/*.
Test: make & run on N6P
Change-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87
It is preferred to use the constants from AudioParameter
(which can now serve as an abstraction layer similar to libaudiohal).
Grepped for usages of defines and just string values
and replaced with references to AudioParameter.
Since the parameter definitions are being moved to system/audio.h,
update includes in AudioParemeter and stagefright Utils.
Change-Id: I2addb983707d866b16f39d45d0e14b802595e292
Test: make
There can be different use cases with the code that imports
headers from audio_effects (each subsequent case is a more
specialized version of the previous one):
1. The code only needs access to general structures
like effect_descriptor_t:
==> include system/audio_effect.h
Example: AudioSystem in libmedia
2. The code that needs access to effect UUID and parameter
enums:
==> include system/audio_effects/effect_foo.h
Examples: media framework effects interfaces, libwilhelm
3. The code that needs to call into HAL:
==> include hardware/audio_effect.h
Examples: libaudiohal (implementation part) and libeffects
4. The code that implements a particular effect:
==> include audio_effects/effect_foo.h
Examples: cts/.../CTSTestEffect.cpp
stuff in hardware/, vendor/
Note that AudioPolicy still deals with the effects HAL directly,
this needs to be fixed.
Change-Id: I963335ede6a196f9225caf21e1a01d03635e363c
Test: make
Best guess determination whether the AudioTrack
has started playing.
Test: Photos app with pause and play.
Bug: 30502030
Change-Id: I03c0ae78037ec05f3025ed009ef67bd376b176ba
Most of the time it's not needed, may be needed when
USE_LEGACY_AUDIO_POLICY is enabled.
Test: make
Change-Id: Id25eafc05352f07614965913d367d484f2673fbd
- Define SecureBuffer to encapsulate secure buffers containing
decrypted data.
- ACodec and MediaCodec use SecureBuffer to communicate between
themselves.
Bug: 32133435
Test: Play an encrypted content in Play Movies
Change-Id: Ic70f7f78aad15bd91ab8ccd31c340bc7964ab1b3
Also remove some outstanding dependencies on hardware/audio.h.
Most of the time, only constants and structs from audio_effects.h
are used, and no actual calls into HAL are made. Move these
definitions into system/audio_effect.h, and generate constants
from TREBLE HAL definition.
For parameters, always use values from AudioParameter class.
There are still some outstanding includes of hardware/audio.h
in code that directly deals with audio modules. Need to extend
libaudiohal interfaces to support required functionality.
Test: make
Change-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6
- Create GraphicBufferSource in IOMX regardless of persistency.
- Remove createInputSurface on IOMXNode, only keep setInputSurface
which accepts either a persistent or non-persistent surface.
- Instead of holding a IGraphicBufferConsumer, hold
IGraphicBufferSource across session as the persistent surface.
- Fix up GraphicBufferSource to allow usage across sessions.
GraphicBufferSource itself becomes agnostic to persistency.
- Remove max encoder input buffers profiling code.
bug: 31399200
Change-Id: I15ed52cc64509fd87736372a580abf7b51bf4de7
frameworks/av must not depend on hardware/ (except for the code
from libaudiohal that actually calls into HAL).
This CL deals with simple cases where depending on system/audio.h
is enough.
Change-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4
Test: make
Only keep useBuffer. Pass in quirks requirement for now, once
we have access to MediaCodecList XML info in OMX, we can remove
the quirks from IOMX.
Also remove a few unused variables on BufferMeta.
bug: 31399200
Change-Id: I93bef964ce034d4aeb1f5d13a75f130108e4e648
This is no longer needed, the IOMXNode is already a binder,
we can just link to that.
bug: 31399200
Change-Id: Ic5dd5330dab448ae126aaec694f71f22857b3169
Previous CL which introduced UK tones was incorrect since "uk" is not a
valid ISO country code. This change checks for the "gb" country code
instead.
Change-Id: I1f99a7ec5dd24a112b2b1b486fe613f965fba7ff
Fix: 31003209
Because PlaybackThread calls StreamOutHal::setCallback inside
the constructor, onFirstRef gets called while the vtable pointer
is set to PlaybackThread's vtable, not to its subclass vtable.
onFirstRef launches a thread which starts calling methods
that are abstract in PlaybackThread.
Fixed by changing the type of StreamOutHal::setCallback argument
from "sp" to "wp", as creating a weak pointer does not increase
strong refs count and thus doesn't call onFirstRef.
Bug: 31856492
Change-Id: I0d51bc73ca88b4b235260ed773870ecb7dac55d0
Test: added logging to verify the order of calls
- Separate node interface from IOMX. Client allocates the
node through IOMX, and once it has the node interface,
it can interact with the node directly. There is no need
to go through IOMX and refer to the node by id.
- Simplify OMX, remove id-to-instance mapping on server
side, and move the callback dispatch into node instance
(as dispatcher is per-node).
- Keep track of node generation on client side to ensure
that message handling ignores messages directed at an
expired node.
- Remove MuxOMX, always use IOMX from media.codec.
- Minor whitespace reformatting.
bug: 31399200
Change-Id: I8aef6ec1fa5aba861da7d121960ed2974a963d81
MediaCodecBuffer is meant to replace ABuffer and MediaBuffer in
communication between framework components. As the first step, replace
use of ABuffer in MediaCodec with MediaCodecBuffer, and adjust related
classes accordingly.
MediaCodec.getBuffer() and related APIs now returns MediaCodecBuffers;
thus change MediaCodec clients to use MediaCodecBuffer accordingly.
Test: manually tested for key use cases (Camera, YouTube and Play Movies)
Change-Id: Iba7ce131645e75ce5ddbf497fb793ab38b7f245b
The warnings were being hidden by the use of -isystem to include
frameworks/native/include.
Bug: 31752268
Test: m -j
Change-Id: I0eea5b59e7bd696d9aff44c8680361c99474e634
The warnings were being hidden by the use of -isystem to include
frameworks/native/include.
Bug: 31752268
Test: m -j
Change-Id: I0eea5b59e7bd696d9aff44c8680361c99474e634
Moved the HAL access abstraction layer to a separate library so it
can be used both by audioflinger and libnbaio.
Bug: 30222631
Test: manual with Loopback app, Hangouts, YouTube
Change-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be
Create two interfaces from GraphicBufferSource:
a) IGraphicBufferSource for client (ACodec) to configure the graphic
buffer source. IOMX no longer routes these messages and OMX internal
options are removed.
b) IOMXBufferSource for IOMX to send OMX specific callbacks.
Added an |origTimestamp| argument to emptyGraphicBuffer, and restore
the original PTS inside OMX to avoid going back to GraphicBufferSource
to patch the output PTS. In the longer term, we should consider moving
the max PTS gap entirely into OMX (probably as an extension index).
Define newly introduced interfaces using AIDL to facilitate code
development.
bug: 31399200
Change-Id: Ibaf6ca1a0737ba6ba9f83bedc3b06ef358db36cb
int64_t aligns differently in x86 vs x64, which presents
problems when communicating across Binder.
Use packed struct to avoid problems.
Bug: 30472583
Change-Id: Iacdad792e19c19899cde5289238b5aa8981a9a7a
ANativeWindow is a struct, not a class, and the incorrect forward
declaration causes a warning when -isystem is removed from
system/core/include.
Test: m -j native
Bug: 31492149
Change-Id: I3516aa98defe1944a9776c07f52f4ee580366988
- Prohibit direct set/getParam/Settings for extensions meant for
OMXNodeInstance alone. This disallows enabling metadata mode
without the knowledge of OMXNodeInstance.
- Do not share metadata mode buffers cross process.
- Disallow setting up metadata mode/tunneling/input surface
after first sendCommand.
- Disallow store-meta for input cross process.
- Disallow emptyBuffer for surface input (via IOMX).
- Fix checking for input surface.
Bug: 29422020
Change-Id: I801c77b80e703903f62e42d76fd2e76a34e4bc8e
Updated logic for exit request when effect is disabled.
This CL includes some original changes suggested by:
ganxiaolin <ganxiaolin@xiaomi.com>
Bug: 30684284
Change-Id: I77768e8204e712f3fd9d0a9bf768de3cb578d6ce