unlinkToDeath is no longer required, (this change in behavior is to
avoid leaks) so holding onto ActivityManager here (still calling
unlinkToDeath to avoid a log, but may for instance remove all
unlinkToDeath calls in the future).
Exempt-From-Owner-Approval: approval received on AOSP CL, only
whitespace difference here.
Bug: 134576445
Test: boot
Change-Id: I273f77aac2b80ba9be70197cc3842f83a11bbd1c
Now that we allow multiple codec stores and aliases, a codec name
may appear in multiple stores. List only the first codec for a
given name (with the lowest rank).
Allow this logic to be disabled for debugging via setprop
debug.stagefright.dedupe-codecs 0.
Bug: 119631295
Change-Id: I05f8ed86075a263e8becf80433018447f2f18361
- allow building only codecs that do not use input surface (when
using C2 HAL input surface)
- remove preferPlatform logic as we now have rank for this
Bug: 119631295
Change-Id: I3b4cdb7db27351ee3f13d17dfa6879418d4097f6
- Move away from int flags, and signal capabilities in info AMessage/Map
instead.
- Add more attributes (other than isEncoder).
- Parse aliases, attributes and performance points from XML
- Add plumbing for codec aliases and attributes
- Use proper 'mediaType' phrase for supported types.
Bug: 119631295
Bug: 112370870
Bug: 112374531
Change-Id: I41ea555ca26ab09be176fb96a3138043d960caa3
- Set proper media type for component interface and read them in
CCodec instead of current hack.
- Define debug.stagefright.omx_default_rank to override default OMX.*
rank value (currently set to be preferred over c2.*)
- Move MediaCodec::CreateByType logic from ACodec to MediaCodec.
Test: am instrument -e size small -w 'android.media.cts/android.support.test.runner.AndroidJUnitRunner'
Test: setprop debug.stagefright.ccodec yes
Test: killall mediaserver
Test: cts-tradefed run cts -m CtsMediaTestCases -t android.media.cts.MediaCodecListTest
Change-Id: I55bd10d2d8c65867eae654e5bd64ef545689e699
This essentially reverts commit ba40190c5e,
which was made originally for b/69110957.
The change in addition to reverting is the reordering of calls in
main_codecservice.cpp. This CL makes the call to SetUpMinijail() come
before the call to ProcessState::self()->startThreadPool().
Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
Test: make vts -j123 && vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--skip-preconditions -m VtsHalMediaOmxV1_0Host \
-l INFO
Bug: 67990472
Change-Id: Ic62acf3ae1aa3f9249e5c3ce542fb4f95689704e
This reverts commit 85e88d9b45.
Also, this fixes the crash that would happen on devices that do not have
full Treble enabled.
Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
Test: make vts -j123 && vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--skip-preconditions -m VtsHalMediaOmxV1_0Host \
-l INFO
Bug: 68340092
Bug: 67990472
Change-Id: I6d96cecb8eaa8691c4c0f15fe0c8e60d0c74b440
All devices should use Treble with OMX hals now.
This CL removes
1. Non-Treble implementations of OMX and OMXStore
2. MediaCodecService
3. All dependencies on sysprop system.persist.treble_omx
Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
Test: make vts -j123 && vts-tradefed run commandAndExit vts \
--skip-all-system-status-check \
--skip-preconditions -m VtsHalMediaOmxV1_0Host \
-l INFO
Bug: 67990472
Change-Id: I245ecf89d30d532f232e05e362e1cea76f5c37de
This is needed to remove the libmedia dependency from extractors.
Other remaining dependencies like IMediaSource::ReadOptions will be
addressed with a separate change.
Test: build
Bug: 65851881
Change-Id: I4460e960360db4847a0784732accd0cfe28a9ec0
Separate out MediaCodecsXmlParser and implement IOmxStore and IOMXStore.
Test: make cts -j123 && cts-tradefed run cts-dev -m \
CtsMediaTestCases --compatibility:module-arg \
CtsMediaTestCases:include-annotation:\
android.platform.test.annotations.RequiresDevice
Test: make cts -j123 && cts-tradefed run cts -m \
CtsMediaTestCases -t android.media.cts.MediaCodecListTest
Bug: 37657124
Change-Id: I8c5a3a8fe6defab4f17c8a49bce57452879193dc
Treblization requires to locate partner-specific configs in its own
partition. So the media codec list file could be located in /odm/etc
or /vendor/etc.
This CL is to support those locations for the config.
Test: building succeeded and tested on sailfish.
CTS test (MediaCodecListTest) was passed as well.
Bug: 35369237
Change-Id: Ifd307e2aae2ab65039a02b9a55fcc16895f83dbf
- 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
- 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
When findMatchingCodecs(.., kHardwareCodecsOnly,..) was called,
it wouldn't actually match any hardware codecs because of a typo:
if (!(TRUE_prefer_HW_codec && !FALSE_is_SW_codec))
==> if (!(TRUE && TRUE))
Fix logic and clarify statements
Change-Id: Ice725f043475caedd8f7ab961e0bc985db2eba6f
* Add explicit keyword to conversion constructors.
* Or add NOLINT to implicit conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
* Use const reference type to avoid unnecessary copy.
Bug: 30413862
Test: build with WITH_TIDY=1
Change-Id: I7a15ac1e37973fe2c661f577a6106b913653de40
Merged-In: I7a15ac1e37973fe2c661f577a6106b913653de40
1. We cannot assume that codecs are OMX based
2. We still have a strange dependency where MediaCodec's
create methods depend on MediaCodecList, which depends on
MediaCodec's static method. This is to be untangled later.
Bug: 17108024
Change-Id: Idd619ee959627539a65f5f7da586108883dcb5f2
When decrementing "i", eventually i will equal zero. When that
happens, i-- underflows. This causes a crash when code which uses
clang's -fsanitize=unsigned-integer-overflow is run.
Avoid trigging an unsigned integer underflow.
Change-Id: I61709cb01f56fdb36d631aa95579e8bd09cafd12