58 Commits

Author SHA1 Message Date
Elliott Hughes
434a481b21 am ea1831d2: am b57dd722: resolved conflicts for a884d81e to stage-aosp-master
* commit 'ea1831d211ea0e6b2d161c714bb0786369ef2df5':
  constify JNINativeMethod function pointer tables
2015-09-24 17:23:00 +00:00
Elliott Hughes
b57dd722f1 resolved conflicts for a884d81e to stage-aosp-master
Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
2015-09-24 10:01:32 -07:00
Daniel Micay
76f6a86de2 constify JNINativeMethod function pointer tables
Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
2015-09-22 17:10:35 -04:00
Aaron Vaage
e5b641e6ef Resolving createByteBufferFromABuffer null input
It was found that createByteBufferFromABuffer was recieving a NULL buffer in bug
22726278. Based on returning NULL when buffer->base() == NULL, returning NULL
when buffer == NULL. This does not fix bug 22726278 - but address a problem found
while looking into it.

Bug: 22726278
Change-Id: I933b6a4a535d803576a4cdd7a1ffaf4a428c3201
2015-09-04 10:16:57 -07:00
Jeff Tinker
96a2a957e4 Report specific exception type on decrypt with invalid session
bug: 22235465
Change-Id: Ic1e1a86529d4f2246b9768799aacde5cd1070d04
2015-07-06 14:35:29 -07:00
Lajos Molnar
d8578577b0 media: hook up OnFrameRenderedListener events to framework events
Bug: 20503131
Change-Id: Ife6d4862d14daf5b9659307af57417bd3532e8fe
2015-06-08 11:06:53 -07:00
Chong Zhang
80283cd747 Merge "MediaCodec: rename usePersistentInputSurface to setInputSurface" into mnc-dev 2015-05-13 19:57:12 +00:00
Chong Zhang
9560ddb48a MediaCodec: rename usePersistentInputSurface to setInputSurface
bug: 21045402
Change-Id: I510a3a694367b8e5a21f4a4fa2a338031fed8991
2015-05-13 10:53:47 -07:00
Ronghua Wu
c53ad69bcc media: merge CodecException's getErrorCode and getReason.
And unhide getErrorCode.

Bug: 20950388
Change-Id: I19c5ddaadfcdd446777e341f73edb75ca184d32f
2015-05-08 15:31:15 -07:00
Lajos Molnar
4971de2a2e Merge "media: hook up MediaCodec.setSurface" into mnc-dev 2015-05-02 02:23:11 +00:00
Chong Zhang
8034d60f6e MediaCodec: implement persistent input surface APIs
Bug: 19127604
Bug: 19489395

Change-Id: If0d723c9ecd6fe81d9df210bd2fd026b8603ea4a
2015-05-01 18:30:09 -07:00
Lajos Molnar
5e02ba977e media: hook up MediaCodec.setSurface
Bug: 11990461
Change-Id: Id2dc952594c21c6be68e4ffd039c7f74006a2374
2015-05-01 17:39:37 -07:00
Ronghua Wu
fb621e8737 media: set codec exception reason.
Bug: 19620911
Change-Id: I13c007bc82b367680e9a15dc6caed6ef8a81d0a6
2015-04-28 10:57:57 -07:00
Ronghua Wu
9e9ec943ce media: add reason to CodecException ctor.
Bug: 19620911
Change-Id: I3e9d1824c438253e9a7c303478f3cb75d0bb5c75
2015-04-15 18:00:52 -07:00
Ronghua Wu
41eedcf311 Revert "media: add new MediaCodec Callback onCodecReleased."
This reverts commit 4c302e8b141cd490733130e86e44fa4f216de457.

Change-Id: I563ba6419cf61968bf356c5b096445dde55abac2
2015-04-14 21:12:07 +00:00
Ronghua Wu
4c302e8b14 media: add new MediaCodec Callback onCodecReleased.
Bug: 19620911
Change-Id: I2912c570678861daf1516757dda2160ffddcfa8d
2015-04-09 14:47:58 -07:00
Lajos Molnar
63834f4d23 media: update AMessage to use handler instead of handler-id
Bug: 19607784
Change-Id: Ia18746830816bcade510e5137bf8ce6258181ac0
2015-03-04 17:17:03 -08:00
Jeff Tinker
336d3eabc0 Add support for max-res decode
bug: 16034599
Change-Id: I12124aef03518600a27de45bae24eef9c9735be5
2014-08-29 01:42:48 +00:00
Andy Hung
5f9aa0bcea Update exception handling for MediaCodec
Throw MediaCodec.CodecException (versus IllegalStateException).
Print out status error codes as found (See MediaError.h for details).
Update error code mapping to CryptoException.

Bug: 12034929
Bug: 13976475
Change-Id: I23b951cb06807413f087c238a1d3526659f06e7b
2014-08-08 16:15:07 +00:00
Lajos Molnar
7de28d34f1 Implement MediaCodec.getImage methods
Bug: 10706245
Change-Id: Icbac5538a27ffdb53d974e2e1f8dc5afe02fb391
2014-07-25 19:30:23 -07:00
Lajos Molnar
1e6e8018a4 MediaCodec: add reset() + documentation fixes
Bug: 12034929
Change-Id: I38f89a2e4c41e0ceb3fdae4522b9c04f6c43a4f1
2014-07-15 18:14:04 -07:00
Lajos Molnar
7be24522ce MediaExtractor: set buffer offset/limit in readSampleData
also fix setting offset/limit in MediaCodec's getBuffer.

Bug: 13008204
Change-Id: Iadf0f006cfccc2546971cc5384058e1a2721780b
2014-07-15 02:30:32 +00:00
Chong Zhang
94686d13ca MediaCodec: change onError cb to send CodecException
Bug: 11990118
Change-Id: I8b6112f126c2f473f64e2aad6ffcfbc3f1d6e64a
2014-07-11 19:42:55 -07:00
Lajos Molnar
d4023114e8 MediaCodec: add new buffer and format APIs
Bug: 14562236
Bug: 14297827
Bug: 13008204
Bug: 10706245
Bug: 10672559
Bug: 9175531

Change-Id: Ia94d34f625e532619a9ed344eb27e0d26647982f
2014-07-12 01:43:56 +00:00
Chong Zhang
8d5e556b2b MediaCodec async callbacks
Bug: 11990118

Change-Id: I210d4302e1fd7e1a48d2228fd3f4f20c16b18a75
2014-07-11 11:53:03 -07:00
Lajos Molnar
7c513b6bef Added MediaCodec.releaseOutputBuffer() method with render timestamp
Bug: 11784827
Change-Id: I67097c8e69b40ef3baa436f0e7731d28c696735c
2014-05-09 20:43:30 +00:00
Narayan Kamath
fad6fa7a04 am 21ccb07f: am 414d9405: am 56cd8dbf: Merge "Cast CallVoidMethod\'s size_t parameters to jint"
* commit '21ccb07fbe97097b6540097d89dd456447779178':
  Cast CallVoidMethod's size_t parameters to jint
2014-04-30 17:36:14 +00:00
Lajos Molnar
7ac4f560df MediaCodec: avoid silent array overflow in queueSecureInputBuffer()
Bug: 13006907
Change-Id: I7e1a1e37a677f8b2cf500e1cc52f4c2ff40fa470
2014-03-25 07:26:09 -07:00
Ashok Bhat
fef85ef152 Cast CallVoidMethod's size_t parameters to jint
offset and size variables are passed to set method
of MediaCodec.BufferInfo java class. The corresponding
actual parameters of set method are of int type in java.

These variables are expected to fit in jint as they
indicate the offset and size of data in a media codec
buffer.

The variables are cast to jint, prior to passing to
java method, to avoid problems caused by automatic
type promotion of parameters when passed to a
variadic function, CallVoidMethod.

Change-Id: I39e202306f1b7122448c947f6d275f00251bb33a
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-03-06 13:06:40 +00:00
Chong Zhang
128b012cc8 fix MediaCodec release deadlock and resource leak
Bug: 12910147
Change-Id: I5f2c02b6ad5bfcd88797c6aa79dcaa23d030eacf
2014-03-03 12:29:49 -08:00
Andreas Huber
aba671392d API that allows usage of MediaCodec APIs without polling.
Change-Id: Iebccdd3aec74a2cfa9ad0bf16c0c6006a3b72999
related-to-bug: 11990118
2014-01-27 10:52:18 -08:00
Ashok Bhat
075e9a19ce AArch64: Use long for pointers in media classes
For storing pointers, long is used in media classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: Idc4ca0124d03df7f9cef412488abafd020e5e774
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-15 13:09:27 +00:00
Marco Nelissen
fd2e50086c Fix hang
b/10855561

Change-Id: I29b046b835ce0ca3644e5c2e8f9bca5c0b380d4b
2013-09-25 13:45:41 -07:00
Andreas Huber
226065bbe6 Expose MediaCodec.setParameters API to
- change video target bitrate on the fly
- request sync frames
- temporarily suspend feeding input buffers to the encoder

Change-Id: If5cf1162b2eeb28ac08288ecfa9f0e9823dd972e
2013-08-12 10:14:11 -07:00
Andreas Huber
8d5f3e31c9 Manage jclass objects (and most jobjects) in jni code using ScopedLocalRef
for safer refcounting. Previously jclass objects were not DeleteLocalRef'ed
at all, leading us to exhaust the local ref pool quickly in certain
circumstances.

This change also makes sure we properly serialize int64_t entries when
converting from AMessage to HashMap and boosts thread priority for
java-instantiated MediaCodecs slightly from NORMAL to FOREGROUND.

Change-Id: I4ebdd8a5ca6b3442698c9f86fcc31af8c199aaf5
2013-08-12 09:23:49 -07:00
Jeff Tinker
3ed38266c1 Define error codes for MediaCodec.CryptoException
Define specific failure cases so apps have the information they
need to deal with these conditions.

Also adds a new ResourceBusyException to MediaDrm

Change-Id: Iaecf269d58108f28179974b05671bf29b9fe4b7d
related-to-bug: 10157154
related-to-bug: 9695816
2013-08-03 10:23:41 -07:00
Marco Nelissen
e20a6d5c47 Add support for common encryption
Change-Id: I2d56a6a90dff3ce1c37296934fca01b8a2ca0f89
2013-04-08 14:32:34 -07:00
Andy McFadden
2621e40d0e Implement Surface input to MediaCodec.
Adds two new public methods to MediaCodec, and one new public
constant to MediaCodecInfo (currently @hidden).

Bug 7991062

Change-Id: I830a9794e92334ad05c870cc5fc90be4652147a5
2013-03-04 15:04:12 -08:00
Mathias Agopian
5280061794 Refactoring: Rename SurfaceTextureClient to Surface
Change-Id: I5a218ca11abeeec05e3a4c3cfc581bcc788814ea
2013-02-15 12:47:40 -08:00
Marco Nelissen
eca3eb5983 Merge "Don't create weird ByteBuffers" 2012-12-19 15:40:47 -08:00
Marco Nelissen
cbbea8e651 Don't create weird ByteBuffers
Ensure that we don't create ByteBuffers with a NULL memory pointer
but nonzero size.
b/7892060

Change-Id: I2fc52e19fd05e698c38d94275e738e23a2999e1f
2012-12-19 14:59:12 -08:00
Andy McFadden
d47f7d8b5f Rename ISurfaceTexture and SurfaceTexture
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I08e677faf2ebb418ef131d0a8008e01037db0e50
2012-12-18 11:22:21 -08:00
Martin Storsjo
056ef2ed5f MediaCodec: Allow getting the chosen component name
Currently, when the codec was opened by createDecoder/EncoderByType,
the caller does not know what codec actually was chosen, and
(for encoders) thus cannot know what color formats it supports.

This adds new public API.

Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
2012-11-14 14:46:57 +02:00
Jeff Brown
64a55af0ac Add plumbing for new surface flinger display API.
Cleaned up the implementation of Surface and SurfaceSession
to use more consistent naming and structure.

Added JNI for all of the new surface flinger display API calls.

Enforced the requirement that all Surfaces created by
the window manager be named.

Updated the display manager service to use the new methods.

Change-Id: I2a658f1bfd0437e1c6f9d22df8d4ffcce7284ca2
2012-08-27 14:34:54 -07:00
Martin Storsjo
d932de9aff mediacodec: Don't crash if trying to open a codec that does not exist
Change-Id: If75e3156517993629f50622a84a9ac573fced815
2012-08-07 11:11:24 -07:00
Andreas Huber
3dd7fd08a8 Return codec buffers that are marked as having host endianness.
Change-Id: Iedfd829d108e65ee368909af14ace68b63e0e168
related-to-bug: 6364139
2012-05-08 13:50:45 -07:00
Andreas Huber
60d610bf10 Various changes to Media* APIs requested by the api council.
Change-Id: Iec2f50c99cf5f00a442737231361334e9ab46340
related-to-bug: 6432753
2012-05-03 16:02:29 -07:00
Andreas Huber
b12a539069 New API to set the video rendering mode on a MediaCodec instance.
Change-Id: I6d765bb4cab7bcf29f09364293c24e8a6930078b
related-to-bug: 6364139
2012-04-30 14:46:22 -07:00
Andreas Huber
bfc56f497d DRM errors signaled by the CryptoPlugin are now visible to MediaCodec clients
through a custom exception "MediaCodec.CryptoException".

Change-Id: I30215e9e13bab68abad23e27dcead7c1accd07f1
related-to-bug: 6365261
2012-04-19 13:42:14 -07:00
Andreas Huber
91befdc0c4 Information required to decrypt buffers is now packaged into MediaCodec.CryptoInfo
New API on MediaExtractor to retrieve a CryptoInfo structure where applicable.

Change-Id: I18edfc9ac56a4544c8f17cba24401b96dacbff7d
related-to-bug: 6275919
2012-04-18 12:19:51 -07:00