History log of /frameworks/av/media/libstagefright/OMXCodec.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ccd08439c7914d86264c7ad81bfd03cf39aaa9f7 17-Oct-2012 James Dong <jdong@google.com> Added some extra failure logging messages

o related-to-bug: 7282066

Change-Id: I0896551a45aab61fb571fef19061397ff84321d9
08654f9d7157f6d6ca0928cb438bbbed53fb0fd1 14-Sep-2012 James Dong <jdong@google.com> Make a small correction in terms of GOP structure in the recorded video

When we have a 30 fps frame rate, and one second key-frame or I-frame interval,
we really would like to have for each second, 29 P-frames + 1 I-frame. Thus,
we should calculate the number of P frames so that it is equal to
frame_rate * I_frame_interval - 1

Change-Id: I5b9be6e4c101e7a6b718015aa4041496961c0f19
8fa80e3be63ffde5ef029afa713877440856b663 08-Sep-2012 James Dong <jdong@google.com> Allow OMXCodec to specify an output color format for OMX decoder component

The output color format is specified via the meta argument in OMXCodec::Create()

o related-to-bug: 7122195

Change-Id: Id3247686b893af25cc190685201e53ad34b0399c
aa8879d381918335c9d829fc279b76d53a15a550 24-Aug-2012 James Dong <jdong@google.com> Fixed a native crash due to unexpected state at destroy time when encoder component's source fails to start

o Encoder component initializes to be in the state of EXECUTING before its source gets started, because we wanted to be able
to configure the source to use the advertised number of input buffers. However, if the source fails to start, then the encoder
ends up in the state of EXECUTING when OMXCodec object gets destroyed. As a result, the assertion on the expected state in
OMXCodec's constructor fails. The fix is to stop the video encoder component right way when its source fails to start so to
bring the state of the encoder component back to the expected state.

o related-to-bug: 7045494

Change-Id: I6d4a221eb809d7137f53e58098a04816998f7a25
e671207115fac3914134c61b336d5fa0242c68ca 26-Jun-2012 Andreas Huber <andih@google.com> Make sure codec names and corresponding quirks are returned together.

Previously they were returned in separate vectors and only one of them was sorted if
software codecs were preferred, leaving the quirks no longer matching the codec name
at the same index.

Change-Id: Id3f1e6f9f7f8c9cc4b6ebfb86a203b4d59de8604
related-to-bug: 6737884
a6ee7bc5f9524c220377e37f6525e2d46c69b75b 07-Aug-2012 James Dong <jdong@google.com> Remove obsolete hack for TI specific code

o related-to-bug: 6566886

Change-Id: I39aad214cbf7b748a95a9d22db50cd8f421931e6
0dff606f42292b8a31b9eee842877f9875279dab 02-Aug-2012 James Dong <jdong@google.com> Allocate buffers before calling start on its source in OMXCodec::start() for encoder case

o This makes it possible to configure the source to use the same number of input buffers
as requested by the video encoder, before the source starts. As a result, hardcoded
number of video buffers for camera source, for instance, can be avoided.

o related-to-bug: 6920805

Change-Id: I13d2c308dce34967768cd407f02988e92ef10a89
9fbe94294ce2053d102ff5de89846a0c5015fb58 30-Jul-2012 Ed Heyl <ed@google.com> Merge remote-tracking branch 'goog/jb-dev-mako' into jb-mr1-dev


Change-Id: If27e4ff35de1e182394cc149e1557a49f0f7c95b
bf5bea96f236adb5eef78c2f414ef82b3602a0f7 19-Jul-2012 Eino-Ville Talvala <etalvala@google.com> Codecs: Add MetaDataMode support to software video encoders.

This support is needed to enable efficient video recording with
emulator and camera HAL 2.

- Update SoftAVCEncoder and SoftMPEG4Encoder to support MetaDataMode
- Allow CameraSource to handle opaque pixel formats, so that
MetaDataMode can be used.
- Remove hardware codec restriction for MetaDataMode

Bug: 6243944
Change-Id: I970eb3d55542a413b6d75a78f76d3a8583155601
f89a87ab3708e75c406b2abcb7e69dc1b076868a 26-Jun-2012 Haynes Mathew George <hgeorge@codeaurora.org> Process EBD and FBD messages in ERROR state

- OMXCodec::on_message() function drops all OMX messages if
OMXCodec is in ERROR state
- This can cause EBD/FBD messages containing valid buffers to be
- Avoid dropping EBD/FBD messages so that buffer book-keeping is still

Change-Id: Idc1174b3fa946b26458d49394b87fba1738b228e
Signed-off-by: Iliyan Malchev <malchev@google.com>
1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b 14-Jun-2012 Jamie Gennis <jgennis@google.com> Update ANativeWindow client code for sync

This change updates all the uses of ANativeWindow to use the new ANW functions
that accept and return Sync HAL fence file descriptors.

Change-Id: Id7db42d8d6380f8b440d88476ce9211c6225fb16
18faac2af4e3b27deec0a707757883e5e569c591 21-Jun-2012 Haynes Mathew George <hgeorge@codeaurora.org> Add vendor specific output color format

- Add Qualcomm specific color format support to OMXCodec and ACodec
- This is the default color format supported on QCom chipsets

Change-Id: Id947b158c3b403c2d347f708bc1e780b4d65e220
1d5ac80d0c6d3deabcc9e9b4abc9e3ef536aeb27 14-Jun-2012 Jamie Gennis <jgennis@google.com> stagefright: set scaling mode for blank frames

This change sets the ANativeWindow scaling mode before pushing the blank frames
during decoder tear down.

Bug: 6603254
Change-Id: Ic64011645e2d3671b4a8d302ac7f39e6fd3affcd
01e5b5699fb049bedbb7e156fbf7f5952c39130d 11-Jun-2012 James Dong <jdong@google.com> Revert "Added some informational log messages to track down ANR related issues"

This reverts commit c558fa89016ba9583049b84dc57e66a913cabde8.

related-to-bug: 6565826
c558fa89016ba9583049b84dc57e66a913cabde8 29-May-2012 James Dong <jdong@google.com> Added some informational log messages to track down ANR related issues

Change-Id: Ie991c86e75d58f7eb4c9f524815c4de054d5f262
related-to-bug: 6565826
40fe18f20e07f3626ff23d89ebdd5113733e155d 29-May-2012 Andreas Huber <andih@google.com> Force shutdown of the omx decoder even if it's in a wedged state...

Change-Id: I5899928a3df4bcf7715769992955a0b834db1e2f
related-to-bug: 6571060
21a0dca457bc0f3b8bafca0c49dfe2d442acbde0 21-May-2012 James Dong <jdong@google.com> Fix a mediaserver crash caused by dereferencing a NULL pointer.

The pointer (info in method drainInputBuffer) in can be null at the point of the dereference,
but it will get updated subsequently. Thus, we should move the logging after the pointer gets updated.

related-to-bug: 6530159

Change-Id: Ifa5f19a694953af6942454e5c28cd3fa024f11d2
5179ff34cf3ca69b3d3eaa71cdbf0c2aec6b45b3 16-May-2012 Andreas Huber <andih@google.com> Log which OMX component is not returning all buffers to us on executing->idle.

Change-Id: I8cd102cc5b1f3c9c36e3c5832ae4bee75c471efd
related-to-bug: 6498711
2f74ef3cdc192f817ee1121f41765f0852c1d81e 30-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> OMX IL wrapper for FLAC encoder

Add wrapper around libFLAC for FLAC encoding in OpenMAX IL.

Declare FLAC encoder in OMX component roles.

Bug 5525503

Change-Id: I19bbce41c216870669d09365693f4ea89f8bc0f7
7c25df82dfc8bbedb58608242f0d923a4594bb14 07-May-2012 James Dong <jdong@google.com> Get rid of vendor specific video encoder component names from ACodec and OMXCodec

o related-to-bug: 6446245

Change-Id: I1fa07ad8a39337e3b19ac51c10533a2de8c11bb5
4f6eed0d1c7972a983c075bdcf03089569e13fe1 30-Apr-2012 James Dong <jdong@google.com> Impl for supporting two video scaling modes

o allows the video scaling mode to change at any time
o also remove the scaling mode logic in OMXCodec.cpp

o related-to-bug: 5454345

Change-Id: I6f1714eb0c2774591ce650d56c1e779b8afd085f
a3cbc03f7c646ad9b05d24e72a6d306cb457807c 28-Apr-2012 James Dong <jdong@google.com> Removed software video encoders that are not OMX-based.

o related-to-bug: 5933287

Change-Id: I63635375e2bef00733b61adc3fa12c29df7e2155
8b71241ce7353731ab75322c46e090ee35014a33 27-Apr-2012 Marco Nelissen <marcone@google.com> Fix mono gapless playback for decoders that output stereo

The old AAC decoder always outputs stereo, even for mono source material, so we
need to use the number of channels of the output when calculating the number of
bytes to skip, not the number of channels in the source.
This makes OMXCodec skip the right amount of data, and prevents NuPlayer from
writing half a frame and then asserting when the AudioSink doesn't accept it.
Also move use of the SkipCutBuffer from NuPlayer to ACodec, so that it also
works when using the new Java APIs, and make SkipCutBuffer derive from RefBase.

Change-Id: I34df9fea3e6730617eae559afaa556f4085ef0a0
aeb8fd460ed87d032b3fb8bb61e21eb542ce0f5b 19-Apr-2012 Dave Burke <daveburke@google.com> Add Fraunhofer AAC encoder with AAC-ELD support.

Change-Id: I6cd499d257d72f50a5b508bed97796a591a51506
c1d8115e8a0bdaeb2b723d395b9a85a02c90c933 24-Apr-2012 Andreas Huber <andih@google.com> Make sure OMXCodec and ACodec both accept more than 2 channels of audio

and fill in the OMX channel mask properly.

Change-Id: I915950a0b252142b9eb3277cf7c6e0d9f5875305
69829f3bd09ee4e6be49fee8795c5df24c4da70e 30-Mar-2012 Andreas Huber <andih@google.com> Add a few more APIs to MediaCodecList.

Change-Id: I5ac193cd40c82bbcd87c1e55003b78102e8d4674
ecdd39c5af016e2fa57cbfd837aa670b706dabd3 29-Mar-2012 Andreas Huber <andih@google.com> Implementation of a raw audio "decoder".

Change-Id: Ie89f01e59dd8106883937188afbb407550f0ac92
cb5b766bb0a3ed992998a5bd66de0ee1d2223b81 29-Mar-2012 Marco Nelissen <marcone@google.com> Add ABuffer support to SkipCutBuffer

Add support for ABuffer to SkipCutBuffer, and make it (re)allocate an
appropriately sized buffer when needed, rather then relying on the
caller to tell it ahead of time how big the buffers are going to be.

Change-Id: I8b5c9ba5dd2fc13ef8870b7d4fe93a1bfdc7a626
ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6 26-Mar-2012 Andreas Huber <andih@google.com> Provisional support for secure decryption of media streams.

Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
a98478bfbcc0f7fb4b164d3dce40ca96df75667d 21-Mar-2012 Marco Nelissen <marcone@google.com> Support gapless playback for mp3 and m4a

Gapless playback for appropriately tagged mp3 and m4a files.
Currently this is implemented in OMXCodec, which most players
use, but should be easy to support in other players as well by
using the SkipCutBuffer utility class.

Change-Id: I748c669adc1cfbe5ee9a7dea2fad945d48882551
c5255ac5b1bd313dcb50159566163b24dce7483f 16-Mar-2012 Andreas Huber <andih@google.com> ACodec is a little more aggressive in its error checking now.

Update components to do the right thing.

Change-Id: Ibfbad3f53effc16368cca4a0e978d01d54d08a1d
6c6b4d0d2b98a7ceee8b697daaf611f8df3254fb 12-Mar-2012 James Dong <jdong@google.com> Switched to use the header files in /frameworks/native
and deleted the duplicate header files in /frameworks/base

o related-to-bug: 6044887

Change-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795
25a9ce1b1fea65341299c262b944825d233006f6 02-Mar-2012 Andreas Huber <andih@google.com> Remove hacks that worked around issues in OMX components several releases back.

Change-Id: I89bb3d0be4d2c1824de382aedfdd4f9bd2547dbc
afc16d667afa23f5aa00154ccad62f8c45cf5419 01-Mar-2012 Andreas Huber <andih@google.com> Instead of hardcoding OMX component names in our code, support

a config file instead.

Change-Id: I5835903ab9f1c4a22ccc605ca99ed966767adf57
5778822d86b0337407514b9372562b86edfa91cd 21-Feb-2012 Andreas Huber <andih@google.com> Implementation of a java media codec interface and associated tools.

Change-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b
000e18370baae60ffd9f25b509501dd8c26deabf 07-Feb-2012 James Dong <jdong@google.com> Enable B frame support in MPEG4Writer

This patch allows us to automatically detect whether ctts box is needed in MPEG4Writer.
MPEG4Writer uses ctts version 0 (non-negative offset value) store the composition time
offset on a needed basis.

Currently, the size of the ctts box is not optimized. Optimization will be addressed
in a subsequent patch.

o also changed the private method retrieveDecodingTime(bool) in OMXCodec
to getDecodingTime()

o related-to-bug: 4232183

Change-Id: Ic6dc7b25ecd258c2506ca4b9c25156e922456e51
c71f6e2392bf55cc85ee7c1a376441e9b9aae4c8 03-Feb-2012 James Dong <jdong@google.com> Keep AACEncoder around for a bit longer to have more time fix issues related to video editor engine

o this should be reverted after the problem is fixed.
o related-to-bug: 5947347

Change-Id: Iaec4b59d2c99c975e83f0588a813e9a4bfcb7ee2
83f70f4472e9b0cacc5d372eddfcef4b02662d10 01-Feb-2012 Andreas Huber <andih@google.com> The AMR WB software encoder is now an OMX component.

Change-Id: Iebfb2696783a0163369ba4e8ef72e19ee76ad893
252353088a5ebf8508fbc01439ff417805ef1417 31-Jan-2012 Andreas Huber <andih@google.com> The software AMR NB encoder is now an OMX component.

Change-Id: I890eab052a7c36409b8b694c964884e28dd8d8fc
d459b485c61bd3e7fd81c5cd3af8ada27fc3e8d3 31-Jan-2012 Andreas Huber <andih@google.com> Slighly improve the API to discover if the OMX stack is running in the local


Change-Id: Idd3c2f0d4a9542af01a3fdfd3b0bfab90e083505
2b1892db4a2ab47bfc09e59a4c11751aea99e4ea 26-Jan-2012 Andreas Huber <andih@google.com> The software AAC encoder is now an OMX component.


Change-Id: I74938a20b4e0a622836ea5184d3761180eb0f5de
29357bc2c0dd7c43ad3bd0c8e3efa4e6fd9bfd47 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
5ff1dd576bb93c45b44088a51544a18fc43ebf58 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
df64d15042bbd5e0e4933ac49bf3c177dd94752c 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
a7e4865306b72e8eb97ee73719c897c432c53a0c 22-Nov-2011 Andreas Huber <andih@google.com> am 31626b30: am cb6fbc89: Merge "Report a runtime error instead of asserting on malformed avc configuration data." into ics-mr1

* commit '31626b3075335f4cf579342e99436bb45870cf55':
Report a runtime error instead of asserting on malformed avc configuration data.
71b61a960ae30df990976ca5dbe780d85a15b0d1 18-Nov-2011 Andreas Huber <andih@google.com> Report a runtime error instead of asserting on malformed avc configuration data.

Change-Id: Ibcd9c3fb5b6532eba843ed80ecdcdacaf50d8845
related-to-bug: 5641069
783cfe32ee6f3972849b72283b95d5173ba79766 26-Oct-2011 Jamie Gennis <jgennis@google.com> am 5ded5fc5: am b7b4eaaa: Merge "Stagefright: push blank buffers when tearing down" into ics-mr0

* commit '5ded5fc55f2da2af0a76a9ddc52d27948b227037':
Stagefright: push blank buffers when tearing down
71adab54edf9d0e2c89473d3be12edb6b9dc4549 26-Oct-2011 Jamie Gennis <jgennis@google.com> am b7b4eaaa: Merge "Stagefright: push blank buffers when tearing down" into ics-mr0

* commit 'b7b4eaaa05284634d50d581d924a250f1194f66d':
Stagefright: push blank buffers when tearing down
3856b090cd04ba5dd4a59a12430ed724d5995909 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
1765d6e0c962d2b89897c0278f969084f632d181 25-Oct-2011 Jamie Gennis <jgennis@google.com> Stagefright: push blank buffers when tearing down

This change makes OMXCodec push RGB 565 buffers filled with black to an
ANativeWindow when tearing down after decoding to protected gralloc
buffers. This allows the OMX tear down to zero out any protected
buffers that were used without the possibility that the buffer is still
being used by SurfaceFlinger or HWComposer.

Bug: 5483222
Change-Id: I8acedd81a7bb67dfdc2fd15733e3375b6ce8d560
1d2acaffde56ad79e6e96f228d7857863462397c 20-Oct-2011 Dave Burke <daveburke@google.com> am 23d64420: Merge "Stagefright: idle OMX after ANW errors" into ics-mr0

* commit '23d644202a44383bf008ff86f6faa3ea7e447290':
Stagefright: idle OMX after ANW errors
55f4bc5c3d1acfaa735b8b19cf34b6b68f6cfcca 20-Oct-2011 Dave Burke <daveburke@google.com> Merge "Stagefright: idle OMX after ANW errors" into ics-mr0
b1d666f5cb555d135eb69e005e88a03330bbb54c 20-Oct-2011 Jamie Gennis <jgennis@google.com> Stagefright: idle OMX after ANW errors

This change fixes an issue in Stagefright where the state of an OMXCodec
object can get out of sync with the state of the OMX component. In
particular, if one of the ANativeWindow functions failed and put the
OMXCodec into the ERROR state, this would cause Stagefright to skip
doing the Executing -> Idle transition. Without this transition the
freeBuffersOnPort call would never be made, and the MediaBuffers would
end up being leaked (which would also leak the Gralloc buffers they

Bug: 5333695
Change-Id: I85ea0cf92d18e7ef6d35c7d1e2a7b4e2c9745d34
ca9f7f2d484ba0296db49406e3ef908bc7e119c1 19-Oct-2011 James Dong <jdong@google.com> am 5264f600: Merge "Bail out after kMaxColorFormatSupported calls to OMX_GetParameter(). Avoid infinite loop in querying omx component about the supported color format." into ics-mr0

* commit '5264f6003bbcb8ca70df034379154914260cc322':
Bail out after kMaxColorFormatSupported calls to OMX_GetParameter(). Avoid infinite loop in querying omx component about the supported color format.
5e69eb97b0e5e70919f61099bcc5bdbb1db0861c 19-Oct-2011 James Dong <jdong@google.com> Bail out after kMaxColorFormatSupported calls to OMX_GetParameter().
Avoid infinite loop in querying omx component about the supported color format.

Change-Id: I4997efd36462c792a6d8b5e04c79a80966a559fe
related-to-bug: 5466057
f337772630b0a1b48d7828647d1079ebdc22919d 13-Oct-2011 Andreas Huber <andih@google.com> Merge "Support for an MPEG2 Program Stream extractor."
d20bf0676d6db8f12edcd2307f82409c076c7015 30-Sep-2011 Lakshman Gowda <lakshman79@ti.com> Set crop params to ANative Window during Initialization.

The native_window_set_crop() is called when port reconfig event callback comes from decoder's and
crop parameters are changed from default getconfig() OMX_IndexConfigCommonOutputCrop values.
Since the default crop params are same as port reconfig crop params, the native_window_set_crop()
is not called, hence resulting in displaying the whole frame(paddedWidth x paddedHeight).
By calling native_window_set_crop() during initilaization of output port of decoder ensures
in setting up ANative window to crop region.

Change-Id: I68926464a1f5c7e6053804615c8b9bd32ea85688
Signed-off-by: Lakshman Gowda <lakshman79@ti.com>
2944eca607304a095ea43ba2b8f0b9de61249f9f 08-Sep-2011 Andreas Huber <andih@google.com> Support for an MPEG2 Program Stream extractor.

Change-Id: I606d87c278f72b22a5b6d7ee57bce6b02e280d41
d3523f89a867afa111bb332887bf006ec3ae93e6 16-Sep-2011 Gilles-Arnaud Bleu-Laine <gilles@ti.com> Gracefuly return on detecting wrong AAC format from corrupted files

Return BAD_VALUE error upon detection of wrongly formatted files.
The client should abort the initialization upon error detection.

The current CHECK() interrupts the configurecodec() preventing a graceful

Change-Id: Ic79313fa76a63284897df5d91635de87d06f3100
Signed-off-by: Gilles-Arnaud Bleu-Laine <gilles@ti.com>
729de186450f78c099637e1fce743fe531862c52 28-Sep-2011 Andreas Huber <andih@google.com> Support AMR, G.711 and vorbis audio in ACodec and friends.

Change-Id: I08c03219bf2d60fc5c6e89957bd4b4c615570983
c32589a79f8120ac0060945fffc50279143989aa 28-Sep-2011 Andreas Huber <andih@google.com> Cut down on AwesomePlayer and OMXCodec's verbosity.

Change-Id: Ifd95717e8ea0fb0327099b16d72a6ed58c7c9924
related-to-bug: 5382014
9a5e04438df742c297c5dbcdb60e6fd4d8f8321d 13-Sep-2011 James Dong <jdong@google.com> Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications

Change-Id: I522a994981d86329ccc86c3b536b561dc6e40eeb
related-to-bug: 5300618
8edb8e82fa886564ee8e72178a1969e2437dd525 09-Sep-2011 James Dong <jdong@google.com> Don't check mFilledBuffers whether it is empty or not when the port reconfiguration is not meant for buffer reallocation

Change-Id: Iee9b18449bce9d7565ab5cc7f9e999484051196c
related-to-bug: 5233843
97857479de48fda4c33bb415b2fbb15193f768e8 02-Sep-2011 James Dong <jdong@google.com> Don't overwrite pending port setting change if there are more than one port setting change event.

Change-Id: I3413f5235b191031252aa3785f5aaef00caef1ce
related-to-bug: 5122512
e8eb2f4f0f8eff0313a27892ab8514223553d943 31-Aug-2011 James Dong <jdong@google.com> Fix a crash where the EOS was signalled but some output buffer were still pending.

Change-Id: Ide111264501441b51bb10629ae2021accf9e1fb5
related-to-bug: 5234126
539a735a82fefb1944aa6135df73dfe9f541566c 25-Aug-2011 Chih-Chung Chang <chihchung@google.com> Merge "Port setting change should happen before receiving any filled frame."
0c5c7d2b119d2350c186ae9902919bcf28c3e277 19-Aug-2011 Pannag Sanketi <psanketi@google.com> Testing the GL/ CPU encoding w/ Gralloc buffers

This is the test for Gralloc buffers based encoding.
contains a combination of two main changes:

1. GL based encoding tests added to SurfaceMediaSource_test

2. SurfaceMediaSource ::read() colorformat

The SurfaceMediaSource::getformat() sets it to OMX_COLOR_FormatAndroidOpaque.
The omx encoder needs to interpret that colorformat and reads the format
from the Gralloc buffers directly

Change-Id: Iee2fe8901384109a4952e1d6c528c59eb01eb5b1
84f74fbfeec81eb59e874660fd52ad42820ea8a2 22-Aug-2011 Chih-Chung Chang <chihchung@google.com> Port setting change should happen before receiving any filled frame.

Change-Id: I12a54b80e7ef958b6d451b7add110d38f05ec439
64b944106c697933a453a1ffd8bcddb137fdbc4c 15-Aug-2011 James Dong <jdong@google.com> Don't time out prematurely for video encoding waiting for output buffers

o For timelapse video encoding, the timelapse between two neighoring
input frames could be very long

Change-Id: I2b6f9c392f2237deae71c894efc7fc3692431796
related-to-bug: 5160548
c4847184f0d351ca2587ca66dc5ab8eab4dbe207 10-Aug-2011 Andreas Huber <andih@google.com> When using "secure input buffer mode" we instantiate a different OMX component

We form the new component name by appending the suffix ".secure".

Change-Id: I509848b50ae92edb179a941493ca611f923213ec
17741baf43818ca66c2a88db6b6e252d7abfff49 10-Aug-2011 Andreas Huber <andih@google.com> Revert "Notify the OMX component that it's going to be used in "secure" mode."

This reverts commit 7616178271e95f009452a21ea45e7225997dc27a.
a1f10e8959cd4656aedb2613e855342102e59555 09-Aug-2011 Andreas Huber <andih@google.com> Notify the OMX component that it's going to be used in "secure" mode.

Change-Id: Id87c4b295eb38f7d24045918e73df298d7b842f9
related-to-bug: 5137212
c6354e9396b4d8929058a283cfc77327b47e9944 02-Aug-2011 Sarthak Aggarwal <sarthak@ti.com> Removing hack for framerate setting in Stagefright for encoders.

Ducati binary starting to support frame-rate on i/p port rather than o/p port,
stagefright can start giving frame-rate frame rate on i/p port and 0 on o/p

Change-Id: I70830747e43e6bfcac73f0fb01de0ab0235a7b28
Signed-Off-By: Sarthak Aggarwal<sarthak@ti.com>
Signed-off-by: Iliyan Malchev <malchev@google.com>
be1cc822304d3a29c106ad5b6f330aed3e8c5658 24-Jul-2011 James Dong <jdong@google.com> Merge "Do not wait forever for output buffers in OMXCodec.cpp and error out in case time out happens"
d35924d9928f29dcee6f5666b5bbd084640c7b34 22-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> QueryCodecs() signature change

Restore QueryCodecs() signature exactly as used by third-party libs.
Add an alternative function to select HW only codecs.

Change-Id: Ibb2cb4dd36fc0c6599eb93aa5751c216397e3b6f
9bc7af17974f448291a44912566ec7472a0d798b 19-Jul-2011 Mathias Agopian <mathias@google.com> use SurfaceTexture new scaling mode in SF

SF now obeys SurfaceTexture's scaling mode instead
of inferring it from the buffer's size

Change-Id: I4d50e9851abedd7e64bfcfc8af9eefb9fb668529
db4d3717b4677b3239546a248dc0a7d82db4ba50 18-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "Add option to query hardware decoders only"
df57a0d6d3b0609e69ff79afa63fe44dfa91f6f5 18-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Add option to query hardware decoders only

Add an option to OMXCodec::QueryCodecs() to filter out
software codecs.

Update stagefright command line tool to list the roles of codecs.

Change-Id: Icddb79118c30fe13cc3aea20f340174cc082c4e0
a57a9a491272aa884494b2ec7854960827a73742 16-Jul-2011 James Dong <jdong@google.com> Do not wait forever for output buffers in OMXCodec.cpp and error out in case time out happens

o Deal with vendor codec hang bug

Change-Id: Ic8449afd43045f09a9e0bd3d1be9a320e59ccabe
dc3d6784c73882c888423f0cb9b4de1b14e1dc02 15-Jul-2011 James Dong <jdong@google.com> Merge "Revert "Add some logging to track down where ANR happens during MediaPlayer._release().""
a3f4d7f096e5c91dc6af085761b1459866c043d9 15-Jul-2011 James Dong <jdong@google.com> Revert "Add some logging to track down where ANR happens during MediaPlayer._release()."

This reverts commit a5293d1ca4459293f4993ea39c09ea703a022844.



Change-Id: I2a5960208a6780b9a44ab5cce0ffc0e2fb28f426
87e031caf905145cb6e362a8c60f02736b87deef 13-Jul-2011 Andreas Huber <andih@google.com> Remove old-style software decoders.

Change-Id: Ie0729d6a65470ffdc38229791f25a75a22c724d8
1374eddc4455b26d1dffdca10fc70534b3f08c1d 12-Jul-2011 Dandawate Saket <dsaket@ti.com> Add support for TI H264 encoder

Add support for TI H264 encoder and quirks for buffer allocation.
Temporary switching to baseline profile till ctts patch is defaulted
as per profile detection.

Change-Id: I1d56184b9c5d5f00d6c63aef7e058f3d56b84cef
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Signed-off-by: Iliyan Malchev <malchev@google.com>
d552b88515c6ccd18695e5db5e6032a6425d8c63 08-Jul-2011 James Dong <jdong@google.com> Use advertised h264 encoding parameters by default if the profile is not baseline

o Force to use AVC baseline profile for camcorder low quality videos

Change-Id: I3424c57dd0c55fc4991f5767b57695c8f3420ecb
0bb6b4c5da2451ee0973372b0a3858b15c742689 30-Jun-2011 Andreas Huber <andih@google.com> Support a "secure input buffer" mode for use by Widevine DRM in OMXCodec.

Change-Id: Ie03b285265099dbac9b12f3f41d9ad758d0b50ad
0055e9e1c67e4614135da2cc0866caf3e7bfa3d6 28-Jun-2011 Andreas Huber <andih@google.com> Fix a format string that triggered a compile-time warning in OMXCodec.cpp

Change-Id: Ib4b6cce1b4102034605da8edfb0dd8bc9a578168
884946a23cfe804491ef6067bd9361371d7848fd 24-Jun-2011 Andreas Huber <andih@google.com> Log video dimensions and crop rectangle.

Change-Id: Ia56b09df4f6e9a14c4dcc499a6637fc39f8e3bb5
cb62bc3fe54222cf05824e6f98fefafee552049a 22-Jun-2011 Anu Sundararajan <sanuradha@ti.com> Integrating TI OMAP4 Video Decoder

Added the video decoder component name to kDecoderInfo.
Set the quirks for the video decoder.
Add a new color format to OMX_IVCommon.h to denote TI OMAP4 NV12 color format.
Added a color conversion routine [ from NV12 to RGB ] for thumbnail generation.

Change-Id: I6b23c36441645ef65ec7406ba262d19f89cf64fd
Signed-off-by: Devaraj Rangasamy <dev@ti.com>
Signed-off-by: Sreenidhi Koti <sreenidhi@ti.com>
Signed-off-by: Anu Sundararajan <sanuradha@ti.com>
03168ed2f76e12e5dd41740697ea8206759924c1 20-Jun-2011 James Dong <jdong@google.com> When a recording session is stopped, no outstanding input video frames exist for the output buffers returned from OMX component to SF.

When this happens, default value of 0 will be used for the "decoding" time for these output buffers.
These buffers do not contain valid media data anyway.

related-to-bug: 4725803

Change-Id: I0eaf248bb2ac022ff072eaffd0ed3f21171f824e
965e4239ca1cf6c824c1f8ce23116f9ba8cf6ebd 08-Jun-2011 James Dong <jdong@google.com> Add B frame support for MPEG4Writer

o requires the support of negative ctts duration values (ctts version 1)

Change-Id: Ib14130c9359c3bff3c76f20a7380d468a065dcaf
f6e1ff257eb3c4f98587170d0c6367bf58cfb115 08-Jun-2011 James Dong <jdong@google.com> Call storeMetaDataInVideoBuffers() before get/setParameters() on index OMX_IndexParamPortDefinition

This can potentially save lot of memory for video recording use case since the video encoder
can advertise a much smaller size of the input buffers which are allocated by SF by default.

Change-Id: I582a356cd02c7852e13f2713d90ad5f1eb43177d
d5623ca906f64cc257cd695abd2a6b52b085f65f 04-Jun-2011 James Dong <jdong@google.com> Merge "Move OMX_QCOM_COLOR_FormatYVU420SemiPlanar definition to OMX_IVCommon.h"
20214f3908a6f085ea531c65496347953e2d25b6 04-Jun-2011 James Dong <jdong@google.com> Merge "Initial-checkin for ON2 Software AVC/H264 decoder"
57ca262f8d1c0aabeea294ddb53e4db172fc6bec 03-Jun-2011 James Dong <jdong@google.com> Move OMX_QCOM_COLOR_FormatYVU420SemiPlanar definition to OMX_IVCommon.h

Change-Id: I5cbc7246a63301fa7ff735fa3d6512e940608d2b
2f0a8405f00a6e2e7e9f1cc47ac803ac01d5dfd5 02-Jun-2011 Andreas Huber <andih@google.com> Don't advertise the (old-style) software decoders unless they're actually present.

Change-Id: I3753a21e1a7de86432c9c087be9d52028e3a1e1b
0c1bc742181ded4930842b46e9507372f0b1b963 01-Jun-2011 James Dong <jdong@google.com> Initial-checkin for ON2 Software AVC/H264 decoder

o when neon is present, the performance gain of On2 AVC software decoder
over PV software decoder is more than 30%.

o In addition, it fixes some known PV software decoder issues like missing
output frames

o allow both pv and on2 software avc to be available for easy comparision

o change output frames from 8 to 16

Change-Id: I567ad1842025ead7092f0c47e3513d6d9ca232dd
386d609dc513e838c7e7c4c46c604493ccd560be 19-May-2011 Andreas Huber <andih@google.com> Support mpeg1,2 audio and mpeg1,2,4 video content extraction from .ts streams.

Change-Id: I9d2ee63495f161e30daba7c3aab16cb9d8ced6a5
9eff287f4f59d6a0c9ca1d5dd8a7bb6e64acf5a4 24-May-2011 James Dong <jdong@google.com> resolved conflicts for merge of d5762583 to master

Change-Id: Icba2bcdbc9f967288a65c930b198405fd8566abd
37b2d62df28a1f8e9489ee8adad030a3d24213d7 20-May-2011 James Dong <jdong@google.com> Add some logging to track down where ANR happens during MediaPlayer._release().

o add a log message in AwesomePlayer::reset before acquiring the lock

Change-Id: I9f228f615f99c03c394e9d0dd78c855c0b9fcfbb
related-to-bug: 4409547
b5746d9058c3e81a195f82f5345e1ffe0a26c0b2 18-May-2011 Andreas Huber <andih@google.com> Properly forward rotation information from input format to output format.

The software renderer would otherwise never rotate videos as it only has access to
the decoder's output format.

Change-Id: If893c0c23d0e85a3d9d4eb94390a114af5514b1c
bbba88cb1bdc34705d1477208990a06904c022e7 11-May-2011 Andreas Huber <andih@google.com> Squashed commit of the following:

commit c80992e419ed567abef451042f09c4958534b90d
Author: Andreas Huber <andih@google.com>
Date: Wed May 11 14:00:07 2011 -0700

Support for the mp3 audio decoder as a software OMX component.

Change-Id: I66e10c4d0be4c3aecdef1c21b15a2c7359ceb807

commit a358d0e1bf2a88897887445f42ccdda0f5f2f528
Author: Andreas Huber <andih@google.com>
Date: Wed May 11 13:11:23 2011 -0700

Support for G.711 alaw and mulaw decoders as software OMX components

Change-Id: Ia5c76c02cb83a9f94ce39a27b2251e5880218f03

commit 79088b9c9a5c8b8c97ea66cb4f90a2b0f0d34553
Author: Andreas Huber <andih@google.com>
Date: Thu May 5 15:43:32 2011 -0700

Instead of using an RGB surface and conversion yuv420->rgb565

convert from OMX_COLOR_FormatYUV420Planar to HAL_PIXEL_FORMAT_YV12 instead.

Change-Id: I8c4fc3c54c963f0d4ba6377f3c4ab4e0013152e5
related-to-bug: 4394005

commit 69469d3bd84425777b11b9fc938c5e0c61af26a7
Author: Andreas Huber <andih@google.com>
Date: Tue May 10 15:46:42 2011 -0700

voip mustn't link against libstagefright.so

Change-Id: I4d0ba9a8b9dc9380b792a1bd04bcda231964862c

commit 2a9a9eeeeeb36ae3a9e680469c3016d509ff08c3
Author: Andreas Huber <andih@google.com>
Date: Tue May 10 14:37:10 2011 -0700

Remove most non-OMX software decoders by default

Change-Id: Ic56514bc1b56b8fa952e8c4a164ea7379ecb69d0

commit a4de62c37b335c318217765403a9fb282b20a216
Author: Andreas Huber <andih@google.com>
Date: Mon May 9 16:50:02 2011 -0700

Conditionally build the old-style software decoders.

Change-Id: I5de609e1d76c92d26d6eb81d1551462258f3f15f

commit 5d8b039f9449dc3dad1e77c42c80cc0b54b0c846
Author: Andreas Huber <andih@google.com>
Date: Mon May 9 16:13:12 2011 -0700

Support for MPEG4 and H.263 video decoders as soft OMX components.

Change-Id: I5e3a4835afab89f98e3aa128d013628f5830eafe

commit b25a1bfbeb0ff6e62e1cc694ce2599c91489c7d0
Author: Andreas Huber <andih@google.com>
Date: Mon May 9 11:49:10 2011 -0700

Boost Soft OMX thread priority, fix timestamp handling in vorbis Soft OMX decoder.

Change-Id: I68d26d4999f06fcc451d69e5303663fab0cba9e8

commit c0574362f8dc3319ce84d981097867062a698527
Author: Andreas Huber <andih@google.com>
Date: Mon May 9 11:28:53 2011 -0700

Support for the AMR decoders (NB and WB) as Soft OMX components.

Change-Id: Ia565f59833fb52653e23f26536e7e41fc329a754

commit 3e5575a8f0e27a490cb7bde77bd9456087837f08
Author: Andreas Huber <andih@google.com>
Date: Wed May 4 13:41:25 2011 -0700

Signal an error if the aac decoder failed to initialize from codec specific data.

Change-Id: I01da7831bdf722edd7d6dc5974486daa2cf2b209
related-to-bug: 4272179

commit f94aeaa9886e772ff4823e671ed237096649f4af
Author: Andreas Huber <andih@google.com>
Date: Tue May 3 13:07:38 2011 -0700

Software OMX nodes don't (yet?) support native_window mode.

Change-Id: I7d9ca9164ef4abf66b573ca21dba12d672f8b12d

commit eefdfabac8dc659e00daa56da69aea705c49cb67
Author: Andreas Huber <andih@google.com>
Date: Tue May 3 12:57:16 2011 -0700

Fixing the OMX tests to refer to appropriate files from test content.

Change-Id: I5b61c3498749bfb876abbd3946a5132356e3f6ff

commit f31b7326aef14b6a1b7946520a9688f092e844d5
Author: Andreas Huber <andih@google.com>
Date: Tue May 3 11:08:38 2011 -0700

Soft OMX components are now dynamiclly loaded/unloaded, not directly linked against.

Change-Id: I1e2ecfbfab67a8869886f738eaf0c7b3c948b6d9

commit b7f0343879e4df06f0a1c9bfece24df557954e2f
Author: Andreas Huber <andih@google.com>
Date: Mon May 2 15:58:36 2011 -0700

Support for the AVC software decoder as an OMX component.

Change-Id: I13c12df435ba4afbd968a9fc659f66b91c818bc2

commit 5bb9e616d6c8e1b13d531fe996b9a9affdfb2977
Author: Andreas Huber <andih@google.com>
Date: Fri Apr 29 12:05:37 2011 -0700

Fix Vorbis OMX decoder's component role.

Change-Id: I5e871e5e11b3f951c93590210e63fd7987c467b5

commit 089c91f2333062e196c7afd5fb0ca914878aa474
Author: Andreas Huber <andih@google.com>
Date: Fri Apr 29 12:05:18 2011 -0700

Support vorbis_decoder OMX testing.

Change-Id: I1985be178a12ae3f8768bc72067d9236238be170

commit 56e241fa36fc37219bc536b823bdc2ab82dc1fad
Author: Andreas Huber <andih@google.com>
Date: Fri Apr 29 12:01:46 2011 -0700

SoftVorbis OMX component now respects the number of valid frames per page.

Change-Id: I82a117a064d9b083fc58a54ad900a987a763ef03

commit fcd618ec520c376fdb78f4cbb44b8d9f5d213e2b
Author: Andreas Huber <andih@google.com>
Date: Fri Apr 29 10:59:38 2011 -0700

Support for the vorbis audio decoder as a soft OMX component.

Change-Id: Iaeb057e58ca306d3dce205c0445b74d5aefef492

commit d1fcc3203fc8003ad79c6e96b3a1fc4261743f16
Author: Andreas Huber <andih@google.com>
Date: Fri Apr 29 10:07:50 2011 -0700

VPX decoder now properly resizes buffers after a port settings change.

Change-Id: I110749a31b6cba087891d8e5dfe420830bdbf831

commit 35c7168243cb69849d88911144a2c7fdfed5c54e
Author: Andreas Huber <andih@google.com>
Date: Thu Apr 28 13:23:34 2011 -0700

Support for the VPX video decoder as a Software OMX component.

Change-Id: Ic345add2d6d768d4af631160153f2e9b97fcea71

commit 923b2534b4211fc5405377b5190bfa6f2dd27f32
Author: Andreas Huber <andih@google.com>
Date: Thu Apr 28 11:34:40 2011 -0700

Table-based registration of soft omx components.

Change-Id: I7f45f0fa5b3a7950776e69c66349731f7674e937

commit 04a88f3edb2266a463da9c4481b80178be460902
Author: Andreas Huber <andih@google.com>
Date: Thu Apr 28 11:22:31 2011 -0700

Apparently OMX_GetParameter is valid in any state other than OMX_StateInvalid

OMX_SetParameter is still constrained to OMX_StateLoaded or a disabled port.

Change-Id: I1032d7cf4011982d306aa369d4158a82830d26fb

commit 9d70ca68445e7c40f5c9b2d12466e468f514de88
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 27 15:03:18 2011 -0700

Use the new soft OMX aac decoder for HTTP live playback.

Change-Id: Ifbcfb732a9edb855cb46b49f6d0ac942170ee28f

commit 213fe4a10ea93cce08e8622dc3908053f29878a1
Author: Andreas Huber <andih@google.com>
Date: Tue Apr 12 16:39:45 2011 -0700

Foundation for supporting software decoders as OMX components

Change-Id: I7fdab256563b35d1d090617abaea9a26b198d816

Change-Id: I83e9236beed4af985d10333c203f065df9e09a42
8ce2364512f7c32c824f5ec5719688830ba72427 01-May-2011 Iliyan Malchev <malchev@google.com> frameworks/base: android_native_buffer_t -> ANativeWindowBuffer

Change-Id: Idc2eabaa805bb6d308ebb315872623f28d428417
Signed-off-by: Iliyan Malchev <malchev@google.com>
fa4e195a735ab99e02388ac5c5611e73a76c7c72 09-Apr-2011 Jamie Gennis <jgennis@google.com> am 0fb4e73f: am 3a9f5143: am 66380f76: Stagefright: authenticate ANativeWindow.

* commit '0fb4e73f5fd107b0ebd1c7a1a25dc40d99cf0705':
Stagefright: authenticate ANativeWindow.
d4d43b2ad0f715211feb48ce2f3e2158883583c0 08-Apr-2011 Jamie Gennis <jgennis@google.com> Stagefright: authenticate ANativeWindow.

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
5c43188653b82a8b40bd25ded8b3b8c48d67e132 31-Mar-2011 Andreas Huber <andih@google.com> am 66ec9068: am 8de5df43: am ebf6a72b: Merge "Surfaceflinger expects rectangles to be specified right/bottom edge exclusive." into honeycomb-mr1

* commit '66ec90687f3579fe73f6baa2a188f8a4583167a3':
Surfaceflinger expects rectangles to be specified right/bottom edge exclusive.
89c120e7adbe09c6283591789594c5e591aa5032 29-Mar-2011 Andreas Huber <andih@google.com> Surfaceflinger expects rectangles to be specified right/bottom edge exclusive.

Change-Id: Ib493572c614dbb74fa23b13c3e43899e3b31cf0e
related-to-bug: 4147205
0c03d5c7c2fa4d17f7f5159e3fddd2adf6bfc923 28-Mar-2011 Andreas Huber <andih@google.com> Ignore OMX codec messages once we're in ERROR state.

Change-Id: I2bdf58ed705a641be1f3aec89fa41cada6acfc96
related-to-bug: 4175573
9cbb1a6f99003a9cd8765e11b9d7380e67839f82 18-Mar-2011 James Dong <jdong@google.com> Handle display dimension scaling event due to SAR embedded in AVC videos

bug - 3379293

Change-Id: I03cb548e61d31bc0a2fb40916d207aaf840fafce
2eb62955eb84b97695e8a7e56e14310cbb86412b 28-Jan-2011 Glenn Kasten <gkasten@google.com> Bug 3012968 DRM output control

Modifies Stagefright to verify that there is a hardware-protected path
to video sink for DRM content.

Change-Id: I18b8741390e803a05a88c7f180b860a24ba88a10
9a5f9b7dbe9ecdebfbd9e8f96452c42213b08a31 03-Mar-2011 Jamie Gennis <jgennis@google.com> Merge "Stagefright: Use the ANW min undequeued bufs query."
59e7879a8482284a434268d51b4b438f0625d1be 01-Mar-2011 Jamie Gennis <jgennis@google.com> Merge "Stagefright: Query buffer usage from the component."
258d4e3aef7984574b0972a66871afc8a13d8e4e 28-Feb-2011 Jamie Gennis <jgennis@google.com> Stagefright: Use the ANW min undequeued bufs query.

This change modifies Stagefright's ANativeWindow initialization to use
the new MIN_UNDEQUEUED_BUFFERS query on the ANativeWindow.

Change-Id: I62565945e90ac40de326de77adcfa5577ed89975
Related-Bug: 3356050
74006804065941841883c4b46ee785070164023f 23-Feb-2011 Jamie Gennis <jgennis@google.com> Fix error recovery in Stagefright init.

This change fixes the error path of
OMXCodec::allocateOutputBuffersFromNativeWindow so that it cancels the
correct number of buffers if a dequeueBuffer operation fails.

Change-Id: Ib7cdcdf24f1718bc070ad218a5980949c0e942eb
3c14b9745c4afc88cec247d9dd0b003e087cbb52 24-Feb-2011 Jamie Gennis <jgennis@google.com> Stagefright: Query buffer usage from the component.

This change makes Stagefright query the gralloc buffer usage flags from
the OMX IL component and passing those flags on to the ANativeWindow.

Change-Id: Ic9af8a9e6df9ff4aadc7355890324d68841bc488
Related-Bug: 3479027
43270a821f418f57140220b4c78c559d880850ef 16-Feb-2011 Andreas Huber <andih@google.com> Revert "Make AwesomePlayer's reset process more verbose to track down ANRs (yet again)"

This reverts commit e7c83d4a711241923854d6bbd5de0e24f9192f93.

Change-Id: I5151c7c72d79154528c55aa01bf006c8e38e7af7
9c0096378820e5a61db26e52a7e6df50ba9c872d 08-Feb-2011 Andreas Huber <andih@google.com> Handle some edge cases when seeking while starting up OMXCodec

These were exposed by the new preview-seekframe while paused code.
In particular, the codec may have been in state RECONFIGURING when attempting
to seek, or we may have initiated flushing of the output port and this may not
have completed yet by the time we want to reconfigure the output port.

Change-Id: Id7640ade11dbc7205a22f648ea0b5e3e9b49cf4b
related-to-bug: 3392259
553ab646159d94747dab5c3893ea51c8ec2463d9 04-Feb-2011 Andreas Huber <andih@google.com> Make AwesomePlayer's reset process more verbose to track down ANRs (yet again)

Change-Id: Ie1d853c31ad75ec5b12303c1131c9a74eb8cfc9f
7757f5010a771fb8824b6fdf9788f588a1577e3f 26-Jan-2011 James Dong <jdong@google.com> Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source.

This will fix the stop failure issue where we have to wait n * time_interval before a key frame can be received by the file writer, where
o n is the actual number of buffers advertised by the video encoder
o time_interval is the interval settings for timelapse video recording
specifying the time distance between neighboring input video frames

The fix includes two parts:
o OMXCodec will not submit all n buffers at one time, but instead submit one input
frame at one time if it become available.

o Timelapse camera source made available the first two input frames and do not skip
them so that the first compressed output frame data can be received regardless
the specified time_interval

bug - 3367659

Change-Id: Ia68cc2cb0d71aa7dc54540e9ad82fae911ad530b
2494373e91399a97ad405f4e42dff6543cc296c7 26-Jan-2011 Andreas Huber <andih@google.com> Merge "More instrumentation to track down the hardware decoder not shutting down bug." into honeycomb
43e5eca7048a3b7b3ee0223b7f3cbd837ed10ae5 25-Jan-2011 Andreas Huber <andih@google.com> More instrumentation to track down the hardware decoder not shutting down bug.

Change-Id: I3f31b6fdf5c90b436567bbce578dcbc4666ed7c2
related-to-bug: 3362836
6592195d76b12a9823f82d3352245d0a6d459647 26-Jan-2011 Andreas Huber <andih@google.com> Ignore errors returned from native_window_set_crop.

If the surface is already invalid, we'll know soon enough.

Change-Id: If360ffb8293817afb47df8c1a75722aea74bb335
related-to-bug: 3394601
7fac331b39ca49ce49a67e425dcc031a3cb9e97f 21-Jan-2011 Andreas Huber <andih@google.com> Properly rotate video that's marked as such and decoded to a surface.

Change-Id: I1e9144db3447e58c99aac3f47702ad471678789c
related-to-bug: 3378148
018761c5cc4aefd0495eaa4666f2372a59a7980a 19-Jan-2011 Andreas Huber <andih@google.com> Turn another assertion into a runtime error. Damn you surfaces.

Change-Id: Ib62957180949293a6fb84bb5a40af058798337ab
related-to-bug: 3335220
8eb04084b96d59802615f0e0570359c35ca3df61 11-Jan-2011 James Dong <jdong@google.com> Merge "Fix uninitialized rect structure for retrieving rect cropping information from decoder" into honeycomb
14c858e80dfe2030c9f343dc0c6e2048e030731b 10-Jan-2011 James Dong <jdong@google.com> Avoid deadlock in OMX::freeNode by making sure OMXCodecObserver does not hold the last reference of OMXCodec object

bug - 3336424

Change-Id: I4c79b66a900c527e3ae6a833f76d5da1b75c5a89
c29dd6f4ccd7ea7e41921d48d03d26e159aeaae4 07-Jan-2011 James Dong <jdong@google.com> Fix uninitialized rect structure for retrieving rect cropping information from decoder

o This patch is from NV.

bug - 3333254

Change-Id: I02bc26af464ea0bc9ad9f2e111474e8398c67220
4d785ae6b940c62610612baf9d24f1ee607a2714 06-Jan-2011 Andreas Huber <andih@google.com> If we failed to initialize the codec after transitioning to IDLE state, don't assert

during shutdown.

Change-Id: I40ac44260fb136c15d6dcb9f5ad62211640c66ec
related-to-bug: 3328222
41152efd144ccf70c380d5c9a32105c02a039f43 21-Dec-2010 James Dong <jdong@google.com> Add more debugging code to track down hang during video recording

bug - 3276561

Change-Id: I1e02590b23031f29bcbfc4a1064f039ed80cb862
60693ddde0e435def1617848f545c78cec452766 18-Dec-2010 Jamie Gennis <jgennis@google.com> Change a Stagefright assert to an error check.

During OMX codec initialization it is possible that buffer allocation
fails. This changes Stagefright to set an error state and abort
initialization rather than crashing with an assert failure when that

Change-Id: I2fc2fadfe75657cdbf649cc8cafd2e4c251a5f8b
Bug: 3282700
763b772bb6bca6a4aaef85cec840fd7061630d61 14-Dec-2010 Andreas Huber <andih@google.com> Properly signal the condition if we run out of input data.

Change-Id: I7a5ada8c25c1d32ca603b3b2c75e1808e140c367
985f838934510983d8a887461e98dca60a6e858f 07-Dec-2010 James Dong <jdong@google.com> Yield the omx threads so that file writer threads have a chance to retrieve the output buffers once they become ready

bug - 3252228

Change-Id: Iab7cf1c9a87cce7b814c63b42b21fcd6a7314b36
79e23b41fad961008bfde6e26b3c6f86878ca69d 11-Dec-2010 James Dong <jdong@google.com> Revert "Allows the authoring engine to skip frame."

o Skipping frames could lead to a lot of issues such as I frames is lost etc.
It is not being used anyway.

This reverts commit 53d4e0d58e2d5c18f6e026c705af833b9bdd7aba.



Change-Id: I3abba1647de48db25bdc369066eb2a7ae4dedec2
92bf2f96c53d24adc1ace362439e82ca2cf6b856 07-Dec-2010 Andreas Huber <andih@google.com> Better buffer status management and verification in OMXCodec.

Change-Id: I90410f2ac0d8ff86076a239dc6e281b1bc4d8643
495f154b602a0103b24b98226370349100a26adf 23-Nov-2010 James Dong <jdong@google.com> Do not getConfig on video encoder on output port

Change-Id: Id53e01dd8f3ec0c9ca94bb1d6dfccd7696254a2d
f5ab57c2d5e02af7483c94eddb177e4f5c9e9892 22-Nov-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 0870f7bdd10a7cd36087d723d1957d8e1b967ca7
Author: Andreas Huber <andih@google.com>
Date: Mon Nov 22 12:57:04 2010 -0800

set_surface_crop doesn't seem to work right yet, stop using it in the SoftwareRenderer.

Change-Id: If0a24f78b7810a6cecaa82eb4f23d0f90c22cc42

commit 4767b52bee3a54ae117a8708d6832276a44e6a6a
Author: Andreas Huber <andih@google.com>
Date: Mon Nov 22 11:14:57 2010 -0800

info->mMediaBuffer may still be NULL at this point...

Change-Id: I25a71569015b1bb87f1ea7efff7588958774426f

commit 0cef79874e1f1ddb10b7402177a87d3cffc7de92
Author: Andreas Huber <andih@google.com>
Date: Mon Nov 22 10:55:12 2010 -0800

QCOM's YVU420 color format conversion has now been tested.

Change-Id: I7fef4b642a928af15d42f006f7cdc107d5ff1d67

commit 84fe05a6c969ede0ce8a85a530e110afca07c7a7
Author: Andreas Huber <andih@google.com>
Date: Mon Nov 22 09:59:50 2010 -0800

Removed remaining traces of suspend/resume. Proper reporting of video dimensions based on cropping rectangle.

Change-Id: Ib238b80cbc1f19e7d312f2422eb5e9ab6b06b1bc

commit 50970cdc837c5c498bcf0cb61b436196ca9e2ef7
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 16:11:06 2010 -0800

Revamped Software Renderer respects the crop rectangle.

Removed obsolete ADRENO support code.

Change-Id: I984cbc8a99c4d97e09e7d1b1292099c88b9ae535

commit 8abbc6a5608bff650f968540f24a2eab75f254ed
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 16:10:41 2010 -0800

The metadata retriever now respects the crop rectangle while capturing a video frame.

Change-Id: Id3377176060086d16717f62c77ce26fabe899050

commit 2d42e4466609d304e88bd2cdd6eb7b297340cc21
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 16:09:50 2010 -0800

Changed ColorConverter APIs to be more general.

Clients can now refer to crop rectangles in both source and destination.

Change-Id: Ief151d736818396d0389ec04e7df5650e3ad7c04

commit 273184303d54a54febd3e9c3dd4df30507ea78b5
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 15:04:06 2010 -0800

The stagefright commandline tool now writes the extracted video frame to /sdcard/out.jpg

Change-Id: Ieb2ab3fda7a7cd9294beccb8db0eed75096eeef4

commit 2d43390328cadf4ba94c1c3c02e4fb30baa29690
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 14:36:55 2010 -0800

The AVC software decoder now properly advertises the cropping rectangle.

Change-Id: Idb7a8a7e2fde5740f0fc34b7e8c92eca2577104b

commit 9a7ed23c2fac8ce19dce7a34a603acee945a89f6
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 13:40:39 2010 -0800

OMXCodec now signals a format change if the cropping rectangle changes.

...and puts the cropping info into its output format.

Change-Id: I3ffbd8e877ba286fe06a82c536ef20d92548d2e2

commit efe0323947029df1c502599ccc288c8d676dfd31
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 19 11:29:39 2010 -0800

Stagefright's MetaData object now supports rectangle items.

Change-Id: I5667bb5ee6622c76104b99fb57f60abb802a8504

Change-Id: I27cb78f2c5e0353f95fdfc5cb53991949ed75b70
c726bd8b7b9929fd917b01e5551a66ad5fe2c04e 18-Nov-2010 Jamie Gennis <jgennis@google.com> Set the external display usage bit in Stagefright.

Change-Id: Ie18fa773fdb83508d96300dd7e4e4c7c3cdc4540
07e946ce4908eea5eebb30ea89f088fc7c679b5a 18-Nov-2010 Andreas Huber <andih@google.com> Log H.264 profile/level in OMXCodec

Change-Id: I5bf98e1ace701b543234dd9dae1315037ff363c2
bfd41f33c77c66ead48ee378e4ea4b7bfa5fca1f 15-Nov-2010 Andreas Huber <andih@google.com> Refactor h.264 profile/level support into avc_utils.

Change-Id: Idb33636dc723aa79ea0122dc3582109ada4b1358
related-to-bug: 2368598
393410a441b6d06daf286ed496470e9d6b2b6ca8 11-Nov-2010 James Dong <jdong@google.com> Separate the key for audio sampling rate and video frame rate in MetaData.h

Change-Id: Ia33befaa7e6df8762703002d01aa79c04f15f040
b50a8033f1c7c2b58913212825f9200f1a9e5652 11-Nov-2010 James Dong <jdong@google.com> Add color format query support to QueryCodecs()

Change-Id: Ic8589649cd09392a1b969a30082b4c9c4e6cc6a7
f23c4f92c3b0202435cf87db2642156fabc46f02 11-Nov-2010 James Dong <jdong@google.com> Fix memory leak when 0-memcpy quirk is used

o minor change to the original patch by Andreas:
call restorePatchedDataPointer() method only if kAvoidMemcopyInputRecordingFrames is turned on

Change-Id: Idf3710e6f759d37d28e866613f98d39215722cb9
8480835b4bc1350646376aa7f3ae33742a7adeb1 02-Nov-2010 James Dong <jdong@google.com> Use meta data in the media recording framework

o This patch allows us to do 720p video recording

Change-Id: I2ea37e80a59630145396b08ebcdc6ee71df53333
ed45fe0730a7e7fc9944741428f5a484350acc8a 02-Nov-2010 Jamie Gennis <jgennis@google.com> Fix a MediaBuffer leak in Stagefright.

Change-Id: I548e60b07cf1676476874b156cfbc4ffefdfa2b9
09ddead9fcb391efd718738245455398a7ec6887 27-Oct-2010 Andreas Huber <andih@google.com> Experimentally reenable mpeg4 and h.263 hardware decoders.

Change-Id: I1be266bd4534004a08e8836b48cc6c09ca890ccc
0821a824a718a28fa5144309bf09ea40411c8ae0 30-Oct-2010 Jamie Gennis <jgennis@google.com> Stop using OMX_COLOR_FormatAndroidPrivateStart.

This removes the use (and definition) of the Android-private range of
OMX color formats from Stagefright. Instead we will just be
interpreting the video color format of an OMX port as an Android pixel
format if the port is in native buffer mode.

Change-Id: I3ea50703336a88249e7563bc7022dfedbeac506e
67f4cae120b49fad8b53a83499db1545bfa41e38 02-Nov-2010 Andreas Huber <andih@google.com> Notify surfaceflinger about (changes to) the crop rectangle output by the decoder.

Change-Id: I9c33618dd3351be1ecadcc7d0329654ea50bad3f
related-to-bug: 3153626
d332a72e8f71caea0d3dc898db6a9d7a929fad32 23-Oct-2010 James Dong <jdong@google.com> Add two creation flags to OMXCodec::Create()

o This allows to force to use software codecs or hardware codecs
o If request cannot be fullfilled, Create() returns NULL.

Change-Id: I02b56a9229abb56d49703fe80ac18571d33f3748
c810b75fd04eef8af509bb42aa8837566a374b32 23-Oct-2010 James Dong <jdong@google.com> Remove OMX.PV.* components from OMXCodec.cpp

Change-Id: Ie43c00a4d589e9cca6e9505a5dabd4e0d8af321a
bf2ba2a97927c24d14c0e71158abe7b49c557c68 21-Oct-2010 Jamie Gennis <jgennis@google.com> Fix the non-ANW video decode path.

The BufferInfo::mOwnedByNativeWindow field was not being initialized in
the non-ANativeWindow video decode path.

Change-Id: If2f6249902a08690f6c62ef30791b9979050c0e5
6a9da9fc558263548ebfbae2cbf177eb7454a41b 07-Oct-2010 Jamie Gennis <jgennis@google.com> Add decode-to-ANativeWindow support to Stagefright.

This change adds support to Stagefright for doing OMX video decoding directly
into buffers dequeued from an ANativeWindow. It does this by registering the
dequeued buffers with the OMX component using an Android-specific OMX
extension, and then exchanging buffers between the OMX component and the

Change-Id: Ida66f836503255a68d378c6903d96dfe9747ce87
2ad46bea6b7ef92b24e9bd98b0b459beb71b96ab 19-Oct-2010 Andreas Huber <andih@google.com> am 9b2f18df: am bc96c284: Merge "For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder." into gingerbread

Merge commit '9b2f18df2436b6c2d9735e65119b92f320bb57e2'

* commit '9b2f18df2436b6c2d9735e65119b92f320bb57e2':
For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.
f3712f026aad1fc46b1df18d1dba718281e39726 18-Oct-2010 Andreas Huber <andih@google.com> For thumbnail extraction make sure we instantiate a decoder that allows access to the framebuffer. Implement the samsung workaround to support this by reconfiguring the decoder.

related-to-bug: 3106534
Change-Id: Ie28d72af2f9e93818d1840ac83aa7bc11fa57b3b
11b72e19970f620adfb1aa458b45ff06cec77f10 13-Oct-2010 James Dong <jdong@google.com> Remove hard-coded color format for Nvidia's video encoder

o camera would query the color format if camera source is used
o if camera source is not used, a MetaData can be passed to do the same.

Change-Id: Iff1f802cc4974b286085473e5384bd88e04fa05d
0e4d896cb9ab813131c45b3b1fcd4cc66d341468 10-Oct-2010 Andreas Huber <andih@google.com> am bb708373: am 949f7d90: Merge "Work to support switching transport streams mid-stream and signalling discontinuities to the decoder." into gingerbread

Merge commit 'bb70837397e3fb437b7b4443b37d7a83c11e6e43'

* commit 'bb70837397e3fb437b7b4443b37d7a83c11e6e43':
Work to support switching transport streams mid-stream and signalling discontinuities to the decoder.
79e0ac144ca9bb771e2c6b1954c882da12a4bea8 10-Oct-2010 Andreas Huber <andih@google.com> am 45bd1159: am 02654f01: Merge "On this particular device the hardware video decoder spits out buffers that don\'t actually contain our video data, so we cannot use them to restore the video frame after suspend/resume." into gingerbread

Merge commit '45bd1159fa34b51ba077e0cde760d171ca092552'

* commit '45bd1159fa34b51ba077e0cde760d171ca092552':
On this particular device the hardware video decoder spits out buffers that don't actually contain our video data, so we cannot use them to restore the video frame after suspend/resume.
a240812f10335fe4c8677da824293b7e04aad7e9 07-Oct-2010 Andreas Huber <andih@google.com> Some instrumentation of OMXCodec for future investigation and a possibly temporary fix for the green tinge on video playback.

Change-Id: Iee9cd7b0c326bac96382007b4ea077d4368d7d01
related-to-bug: 3051572
2a4d22d79e927f2245537921e10fc5fda1c47a29 08-Sep-2010 Andreas Huber <andih@google.com> Work to support switching transport streams mid-stream and signalling discontinuities to the decoder.

Change-Id: I7150e5e7342e1117c524856b204aadcb763e06ed
related-to-bug: 2368598
2b82e9652ba049e754c2cc74e381282f231d5fbf 07-Oct-2010 Andreas Huber <andih@google.com> On this particular device the hardware video decoder spits out buffers that don't actually contain our video data, so we cannot use them to restore the video frame after suspend/resume.

Change-Id: I1b8fe68c1766299844fe84ebbff49cb8b3e4cc7c
related-to-bug: 3070094
6d59aa4bb8e9734a9197290a027356e88552f59a 24-Sep-2010 James Dong <jdong@google.com> Added two more video encoders

Change-Id: Ia426da5bfc255974d7bbf3915a473543e0841dc9
45adaf601ea69f8bd060c8a219e1ccf7045bbfa4 23-Sep-2010 James Dong <jdong@google.com> am 693a430c: am 903fc221: Ignore errors from correction parameter query and config for M4v and H263 encoders

Merge commit '693a430cff3c9fac503b5005e9fd5419611eddde'

* commit '693a430cff3c9fac503b5005e9fd5419611eddde':
Ignore errors from correction parameter query and config for M4v and H263 encoders
8872633927679cfeb77948ba7b562e07e899ef91 23-Sep-2010 James Dong <jdong@google.com> am 30c7e132: am 697bd76e: Merge "Use the advertised profile and level from M4V and H263 video encoders" into gingerbread

Merge commit '30c7e132171edf41a787d6e29d169ac467f6f1ae'

* commit '30c7e132171edf41a787d6e29d169ac467f6f1ae':
Use the advertised profile and level from M4V and H263 video encoders
59f63db5d1cdc91336a2b82e195e0000091cd6e3 23-Sep-2010 James Dong <jdong@google.com> Ignore errors from correction parameter query and config for M4v and H263 encoders

This feature is not essential for camcorder application

Change-Id: Id560632207dcf24fe361280ebe8178ea7332f22d
97e0fcc0cb69692a6c518e2bfaf9892a164e7f58 23-Sep-2010 James Dong <jdong@google.com> Use the advertised profile and level from M4V and H263 video encoders

This is already the case for AVC video encoder

Change-Id: I9cc97a03ab457b4bd0b21832c09f6d0aa7f5fc39
a60165dbfcc44c6114ce63dba38bb3f08f614081 22-Sep-2010 Andreas Huber <andih@google.com> am 0b2affe8: am 87d208f7: Merge "This log message is codec specific." into gingerbread

Merge commit '0b2affe8f05f887fcb6ae6314e2a0e586dabe9e1'

* commit '0b2affe8f05f887fcb6ae6314e2a0e586dabe9e1':
This log message is codec specific.
955194dc6a9f74dc4aeb4559f71f0323dc2f8166 22-Sep-2010 Andreas Huber <andih@google.com> This log message is codec specific.

Change-Id: I603ae7bd13b186a6df0a26ea9abe073e89276caf
979d233237271c2acc0c3902508e208fce16a1c9 18-Sep-2010 Andreas Huber <andih@google.com> am 7bc600cb: am f98197a7: Make sure the message dispatcher stays around until after OMX_FreeHandle is finished in case it posts some more messages during shutdown. Clear the source as soon as possible in OMXCodec\'s destructor.

Merge commit '7bc600cb08394e60eef984843976d4f79e5d94e8'

* commit '7bc600cb08394e60eef984843976d4f79e5d94e8':
Make sure the message dispatcher stays around until after OMX_FreeHandle is finished in case it posts some more messages during shutdown. Clear the source as soon as possible in OMXCodec's destructor.
6d2969a09ffe48c1600fd48caeb6293a92e204c2 18-Sep-2010 Andreas Huber <andih@google.com> resolved conflicts for merge of 1fc97385 to master

Change-Id: I9b1fb673844eb822313067d3be16b6c1ce1f2ccb
00998fbb52dfa78ac3a4b3706d64fc612926bfbc 17-Sep-2010 Andreas Huber <andih@google.com> Make sure the message dispatcher stays around until after OMX_FreeHandle is finished in case it posts some more messages during shutdown. Clear the source as soon as possible in OMXCodec's destructor.

Change-Id: I9c896cf07dea0c3201b6f074dbaf27e6d85cd784
095916d92ea2378aea6fc35e80e368172c02021b 16-Sep-2010 Andreas Huber <andih@google.com> Register the new OMX components.

Change-Id: I795287c63073ca86ad0f97d6afcfc85c401dc984
38a7476749eb4b4fd117b6e64027870077eb22d8 16-Sep-2010 James Dong <jdong@google.com> am e30d039f: am a7f5e476: Merge "Fixed a bug in the query to the supported profiles and levels" into gingerbread

Merge commit 'e30d039f0ef797c35dd9f75e590f0b819c1c6194'

* commit 'e30d039f0ef797c35dd9f75e590f0b819c1c6194':
Fixed a bug in the query to the supported profiles and levels
f01691f44dcbe38a0ab3914e7c709ddc009d95dc 16-Sep-2010 James Dong <jdong@google.com> Fixed a bug in the query to the supported profiles and levels

According to OMX spec, the levels returned is the max level settings.
In fact, we could not enum all the levels.

Change-Id: Ib1cba74100512800a5761c7567894c7ea5b5a452
47dc308b114f2ee83f71bc9787db343ff3cc64fd 16-Sep-2010 Andreas Huber <andih@google.com> am 7a848c0d: am 8946ab26: A ThreadedSource wraps around an existing MediaSource and reads output buffers on a separate thread. It\'s now used for the vpx decoder to decode frames ahead of time to improve playback performance.

Merge commit '7a848c0d7cb1978155ab7743aadb2e07bc4bdcc6'

* commit '7a848c0d7cb1978155ab7743aadb2e07bc4bdcc6':
A ThreadedSource wraps around an existing MediaSource and reads output buffers on a separate thread. It's now used for the vpx decoder to decode frames ahead of time to improve playback performance.
aae3516293e58c0b015d4109bde58c11d503433c 16-Sep-2010 Andreas Huber <andih@google.com> A ThreadedSource wraps around an existing MediaSource and reads output buffers on a separate thread. It's now used for the vpx decoder to decode frames ahead of time to improve playback performance.

Change-Id: I57a798b00adeb2c8056e85aab29a2b57aef00b63
0a1b9dcf0106731e1b8113fb77e933ffaf70bd0b 16-Sep-2010 James Dong <jdong@google.com> am 0cd2472b: am 82a39f4a: Merge "Add some explicit error log messages" into gingerbread

Merge commit '0cd2472bf8a0062b56b9cd4613c44791b32fe42f'

* commit '0cd2472bf8a0062b56b9cd4613c44791b32fe42f':
Add some explicit error log messages
a1abc1a76741914c7bc43f1df9e32744f023ab75 14-Sep-2010 James Dong <jdong@google.com> Add some explicit error log messages

Change-Id: I8a69157b75a67f0d3c19f05775a8cb0629232299
5e9d8a22e974627e1b3273cc3ca3277998d93ed4 31-Aug-2010 Andreas Huber <andih@google.com> Make sure we only reallocate buffers on a genuine port definition change.

Change-Id: I434be98700e5d9333f75a3a9a8c78f1acc7e7247
related-to-bug: 2953523
9bdccaca6a7a09457670138bf6cdd9b3ba5e7087 28-Aug-2010 James Dong <jdong@google.com> am a5fe77d0: am df8356ff: Merge "Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder is occasionally too small." into gingerbread

Merge commit 'a5fe77d004091bd9521d087c2572f587191afbfc'

* commit 'a5fe77d004091bd9521d087c2572f587191afbfc':
Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder
824c9ff4a55e86faae4f8f158977329909cbfaf6 27-Aug-2010 James Dong <jdong@google.com> Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder
is occasionally too small.

bug - 2882917

Change-Id: Id59d8529084c5689a26f272e0cd3b1e955fd8a30
27fdb181daebec3dbe477080adad94f81ed667ad 26-Aug-2010 Andreas Huber <andih@google.com> Disable all the hardware decoders except for h.264 video decode, since the software decoders are faster.

Change-Id: Ia41194752ef72feb4ed1d5199e97b1649075b646
8d9dda1ba28bbcd7730a9bec10ce70db4912688e 23-Aug-2010 Dima Zavin <dima@android.com> libstagefright: enable tegra hw audio decoders

Change-Id: Ic94c18a6a6df8e0370dc28634f95561056ed2d02
Signed-off-by: Dima Zavin <dima@android.com>
ea659e51af658d77bef7b88a2fb542ec2d69e032 27-Jul-2010 pgudadhe <pgudadhe@nvidia.com> libstagefright: Enable tegra hw video decoders

Change-Id: Iff770de1369e57e7833a8cfa9a30955030d9974c
4937be23b485ce8edf180ff5e71ebf0884178f17 26-Jul-2010 pgudadhe <pgudadhe@nvidia.com> libstagefright: Enable tegra hw encoder

Change-Id: Ifed6b4dc4877e3fcab86ee81c9117a92b1d1ce8f
f8ca90452ff3e252f20de38f1c3eee524c808c3e 10-Aug-2010 Andreas Huber <andih@google.com> We're now going to ignore timestamps completely in gtalk video conferencing, playing video as soon as it comes in. We also make up fake timestamps in the rtp code, ignoring rtcp SR information to enable early startup.

Change-Id: Idc3df74b42000f7a6aa3eae090718dc9d9c4186f
42d66f25af9cb8089a93c6796876a6bc16e36cea 09-Aug-2010 Andreas Huber <andih@google.com> Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.

Change-Id: I92685d09456c220b8c09842defb721bd55b0b9f6
related-to-bug: 2900021
299766cdbf93fba14634e364b177b7f4d5811453 04-Aug-2010 James Dong <jdong@google.com> Use the target color format from the camera source if possible

- If the target color format is unavailable, the default
platform-dependent color format will be used.

- Also add some logic to prevent looping forever if the
omx component is buggy supporting color format enumeration.

Change-Id: I119a78f0d6201b4c3621235cca2f523ec14e24e3
39ddf8e0f18766f7ba1e3246b774aa6ebd93eea8 04-Aug-2010 Andreas Huber <andih@google.com> Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.

Change-Id: I95b8dd487061add9bade15749e563b01cd99d9a6
542db5d438988360d491a5add1040a2df9aa90c9 21-Jul-2010 James Dong <jdong@google.com> Allows the authoring engine to skip frame.

This is 1st part of the work to allow audio and video resync if
we found out that audio and video are out of sync during authoring

- also fixed a problem in AACEncoder::read() where the buffer acquired
from the buffer group does not release when error out at
reading from source.

Change-Id: I8a2740097fcfdf85e6178869afeb9f3687a99118
abd1f4f870925d6776dbe4b930b759a1ab6595ca 21-Jul-2010 Andreas Huber <andih@google.com> Support finer seek control on MediaSources.

related-to-bug: 2858448

Change-Id: Ifb4b13b990fd5889113e47e2c62249ac43391fa1
59f566c4ec3dfc097ad8163523e522280b27e5c3 13-Jul-2010 James Dong <jdong@google.com> Initial check-in for software m4v_h263 encoder

Change-Id: I4b49fa5c3a5e6e21cfd2419441d98dd784046367
8f5f2fcee5c12d08df71d17017410c50951fc2e3 02-Jul-2010 James Dong <jdong@google.com> Support user-supplied timescales for authoring

- also, change all the real time unit to microseconds in MPEG4Writer

Change-Id: I260f512f2eb670ade7b8858a56335a5d639de756
29a84457aed4c45bc900998b5e11c03023264208 03-Jul-2010 James Dong <jdong@google.com> Initial checkin for software AVC encoder

- Since the software encoder assumes the input is YUV420 planar,
color conversion needs to be added when the input color format
does not meet the requirement. With this patch, I only added
a single color conversion from YUV420 semi planar to YUV420
planar. We can add more as we go.

Change-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9
b914122eb9cb54bbeae4ec03bfebb194aecdccbd 08-Jul-2010 James Dong <jdong@google.com> Add runtime dumpsys support for media recorder client

Change-Id: I4c8a81720f3be2db54678a7e84fe12849255046b
145bfe5eb3e08c9689c28f6bf3287a979438b04b 02-Jul-2010 James Dong <jdong@google.com> Allow application to set two more encoding paramters: video profile and level

Change-Id: I673e681cefe184d5c556c612c54600a24a2143e5
d329e21495eda9dbc531fdd0c26c77f1593ac3f4 30-Jun-2010 James Dong <jdong@google.com> Added encoding parameters set up for H263 video encoder

- Allowed start() call when encoder already starts and stop() call when encoder has not started yet
- Handled default value for audio/video sources/encoders and file output format

Change-Id: I03b2f7d3cf570baa0fd011a8c0ad200f2f2a5da1
ae1f0036bd9cc52353fb3a8ad4556792e1e8047a 29-Jun-2010 Andreas Huber <andih@google.com> Add qcom's new OMX components to the list.

Change-Id: Ic8d261aaa5b15c1be7e6d57aee6be51cecb10bb1
608d77b1cf4fb9f63dc861e4e1fa3e80a732f626 24-Jun-2010 Andreas Huber <andih@google.com> Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright.

Change-Id: Ieafe75a4550c273ad59b4518d7cd4c0fce0f7cce
related-to-bug: 2370115
f60cafe0e6aad8f9ce54660fa88b651ae4e749e6 19-Jun-2010 James Dong <jdong@google.com> Audio/video sync during recording (second part)

Change-Id: Iba0b35f57fdeac7ee1da16899406bf4b957a2c8c
8aa8fe5ea704b05d8f0ab3d7bf18de18151f1b50 14-Jun-2010 James Dong <jdong@google.com> Fixed a typo - maybe we should do comparison ignoring the case?

Change-Id: I498f8242e6ba3e3e8b8c7b714ed49bff51a3010b
d35bd5fb4e09c2cd8608497c279cbb2ef9c3a029 10-Jun-2010 Andreas Huber <andih@google.com> Support "pausing" of MediaSources with the effect that they no longer pull on their upstream source until a subsequent read-with-seek.

Change-Id: Ie4153a10ab36c1135f5fcfb572958129d886bcc3
98c7c319907f4ed3915461ca62b1027590d351e5 10-Jun-2010 Andreas Huber <andih@google.com> Apparently the TI video decoder only supports H.264 up to baseline profile/level 3, not level 3.x as previously assumed.

Change-Id: I4a9aa80f392dbef72f81e25c67e5bd0654848b2c
ddcc4a66d848deef6fb4689e64e30cd9bd2684fe 08-Jun-2010 James Dong <jdong@google.com> Remove some hard-coded encoding parameters

Change-Id: I7a8ccd5d57891a6a585c8da2ee53acb094955913
d07139e2e817a9b3ae9c87ba4e1e8d65d3e549da 07-Jun-2010 James Dong <jdong@google.com> Second part of speeding up video recording frame rate

1. Avoid copying the input recording frames to the encoder via OMX interface
for TI video encoder
This is a missing change for part one which help reduces the CPU load.

2. Release output buffers as early as possible. This is a little bit helpful, but not critical.

We should save the underlying pointers allocated by the OMX component before we replace them
and restore them before we call OMX_FreeBuffer()!

Change-Id: Ib3a88978f4c3b1153808872eaa7ac4c265a811ff
4d1265cd007b9754d0645bc4fb95701140a45648 24-May-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit a2194ecc341fa0c530d0007d8561286c8b8f2d15
Author: Andreas Huber <andih@google.com>
Date: Fri May 21 12:50:09 2010 -0700

Instead of including the libvpx libraries prebuilt in our tree, build them from sources.

Change-Id: I5ec57decf1200cf9137fe13ff77d06f47950c3d7

commit 711098ca3f16800a22ccdb26a07e57e471cca438
Author: Andreas Huber <andih@google.com>
Date: Thu May 20 15:00:27 2010 -0700

Support for VPX/VP8 decoding in stagefright

Change-Id: I16d93faf3f56a5f8ec39c14367704469f914db9e
related-to-bug: 2483739

Change-Id: Ibc124f6af540c2715cb2325151eecdd6edf085ec
7405500bb3b5f8e8e739e344bc9d036c2736fcdf 20-May-2010 James Dong <jdong@google.com> Workaround for preview frame rate setting and encoder profile and level settings on passion
1. QCOM camera HAL does not honor the preview frame rate set request. see bug - 2701282
2. QCOM video encoder has lots of 0-length output buffers if the default level setting is changed. see bug - 2660974

Change-Id: Id01d94bb77dc242c4712d56a91b0d69a96ba6c2f
956c553ab0ce72f8074ad0fda2ffd66a0305700c 15-May-2010 James Dong <jdong@google.com> Initial software encoder checkins

Change-Id: I27f387db23594e46384c4eb3a0093ce220bb6b60
b1ccb623d9db42c451aa9dd4e8cf0e76b164aa50 10-May-2010 Andreas Huber <andih@google.com> am 17078510: am d13efb20: Merge "A new OggExtractor/VorbisDecoder combo to support approximate seeking." into froyo

Merge commit '1707851090e6512a77247b0c260dd673ef687589' into kraken

* commit '1707851090e6512a77247b0c260dd673ef687589':
A new OggExtractor/VorbisDecoder combo to support approximate seeking.
ee7ff20e69498ebd53dd9717a0f984188341a75e 07-May-2010 Andreas Huber <andih@google.com> A new OggExtractor/VorbisDecoder combo to support approximate seeking.

Change-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95
related-to-bug: 2654400
050b28a593350047845a45a14cc5026221ac1620 23-Apr-2010 James Dong <jdong@google.com> Support AAC recording

- Extend the audio recording to AAC format
- Add support for setting some recording parameters
- Add stss box to the meta data in the recorded file

Change-Id: I41167bfd9d70ef9cd33906f8437b39c232b6d3b7
c32cd79d9ad4aba7d959b5b3be7361b4715e6f18 27-Apr-2010 James Dong <jdong@google.com> Use timestamp from camera driver for CameraSource

Change-Id: I09ddec69997c43b8f17fdd21304c76cb4c5ab8cf
261741e728f2137f12b28df25c25e96acd942de9 26-Apr-2010 James Dong <jdong@google.com> am 31431b34: am 374aee68: Switch to use software MP3 decoder Hardware MP3 decoder could lead to hang in the Music application, although the chance is very low.

Merge commit '31431b34f895862ae13efba30bb5771085572687' into kraken

* commit '31431b34f895862ae13efba30bb5771085572687':
Switch to use software MP3 decoder
0b5ba9eeed56a80fed3735f5cd4951477fda79f0 26-Apr-2010 James Dong <jdong@google.com> Switch to use software MP3 decoder
Hardware MP3 decoder could lead to hang in the Music application, although the chance is very low.

bug - 2608400

Change-Id: Ia0b5b6521015fc8d3e086117fa914dcc20ace5bd
fdce1ccd7e468f3229de8f4f1616d017465470cb 20-Apr-2010 Andreas Huber <andih@google.com> am 1e1edb2c: am 25dc5f30: Merge "Don\'t coalesce more than 250ms worth of encoded data into a single codec input buffer. This currently only applies to the component OMX.TI.AAC.decode, it is the only one to support coalescing in the first place." into froyo

Merge commit '1e1edb2c7376dbd9ca24bbeefbddbe4221f397a0' into kraken

* commit '1e1edb2c7376dbd9ca24bbeefbddbe4221f397a0':
Don't coalesce more than 250ms worth of encoded data into a single codec input buffer.
d2c6894b56a538aa807e20d3ef421807cd55c009 20-Apr-2010 Andreas Huber <andih@google.com> Don't coalesce more than 250ms worth of encoded data into a single codec input buffer.
This currently only applies to the component OMX.TI.AAC.decode, it is the only one to support coalescing in the first place.

In certain edge cases (encoded audio track contains silence), each buffer would turn out to be an amazing 6(!!!) bytes, we'd spend lots and lots of time streaming network data to fill the codec's buffers of size 6144 bytes with .. silence.

Change-Id: I9f449f310fc64ca384bd02e4a783e33cf5b46fcc
related-to-bug: 2609049
QA-Impact: streamed (http) playback of aac audio content on Droid.
ea623087e93c6e27ce6284946f94c1d4aff7f91b 13-Apr-2010 James Dong <jdong@google.com> am 9bb8e65a: am c15f48d7: Merge "Don\'t set encoder component role while we query decoders" into froyo

Merge commit '9bb8e65a7d7dc57fdd7383d64d53414b1aa5cbbc' into kraken

* commit '9bb8e65a7d7dc57fdd7383d64d53414b1aa5cbbc':
Don't set encoder component role while we query decoders
5e3cf6cf36feb3b73b8f8c0a8134c46f5bc85094 13-Apr-2010 James Dong <jdong@google.com> Don't set encoder component role while we query decoders

bug - 2558515

Change-Id: I29683507d234d963994c782c07508034ea807739
a3387afbc6dc5db0fd534ab5e3200f46b5a36acd 12-Apr-2010 Andreas Huber <andih@google.com> am f0a49f68: am 1d7a8b44: Merge "Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request." into froyo

Merge commit 'f0a49f68f0edc98fefbe14e3ddcf0d6853519293' into kraken

* commit 'f0a49f68f0edc98fefbe14e3ddcf0d6853519293':
Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.
7110385b31c7bc65c8a923a09689ebb0c4a1e07a 12-Apr-2010 Andreas Huber <andih@google.com> Fix a case where the aac hardware decoder is in a transition state and refused a fillbuffer request.

Change-Id: I4cabd18709c29db0a2763a01cc86525ba0b0aeb7
related-to-bug: 2575976
03b268eac37ca2589bfff0bf58daf79d29cc14f4 19-Mar-2010 Andreas Huber <andih@google.com> Various fixes to enable recording on passion and nexus1.

Change-Id: I75a461c9882e2449082ad754ee7b231c1ceec039
80eb61776f136c316f45ce4187a8bafedf9b3e88 06-Apr-2010 Andreas Huber <andih@google.com> Partial revert of previous change to improve hardware AAC decoder performance, increasing the input buffer size so dramatically accidentally broke streaming performance.

Change-Id: I14e9fbc1fdff61bcf89218d83cb1d2e3d6eb8438
related-to-bug: 2574491
7f498b90a4300ef9badf14d202b0a67c26e20931 02-Apr-2010 Andreas Huber <andih@google.com> Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.

Change-Id: I90c7db6656a53339c5d454336548c4f00d0d9064
related-to-bug: 2548426
08a88e195d2b3697f2f967e9216491e8c5bd3c9e 24-Mar-2010 Andreas Huber <andih@google.com> QueryCodecs now returns the names of the software codecs (non-OpenMax) as well.

Change-Id: Ic4cd61f4dd722fb0dda544ffaa5615e87e3a4d40
related-to-bug: 2541647
2a3847ee1cbdaa8a65eee397a0173bb02211c459 16-Mar-2010 Andreas Huber <andih@google.com> Properly handle errors during the codec configuration phase, attempt to revert to next available (likely software-) codec if configuration fails.

Change-Id: Id1c699711e30139c9cc29df972254b5ba026e6fb
related-to-bug: 2517098
5295c0c55d41a2906ea7f65a3f22e6278cb17d4b 23-Feb-2010 Andreas Huber <andih@google.com> Propagate errors all the way through the MediaSources and send either MEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR depending on the final reason for running out of buffers to play back.

related-to-bug: 2463749
86559de0275b46a9bdba06b749fbd549ad2022d1 22-Feb-2010 Andreas Huber <andih@google.com> This hardware video decoder lies about its required input buffer sizes allocating 2.7 MB of memory instead of the required 176 KB... Added another quirk.

related-to-bug: 2281327
c2158a2f0fb68fe96d24b9bd85c32f15753d8ccb 18-Feb-2010 Andreas Huber <andih@google.com> Disable the TI AMR hardware decoder for audio decoding until its issues are resolved.

related-to-bug: 2450938
758cc74ff08487ded45f7ff4476c200fe727b366 10-Feb-2010 Andreas Huber <andih@google.com> TI does not want the hardware H.263 decoder to be enabled.
c017cfcc24dd63c7efde5747a6ed2d4053788abc 09-Feb-2010 Andreas Huber <andih@google.com> If the codec's input buffer size is too small to accomodate the buffer read from the source, report and error instead of asserting.
ec9dd59902c8beea4ba6a842f3a843d46150d949 09-Feb-2010 Andreas Huber <andih@google.com> A little less verbosity in stagefright and special treatment for the error state while shutting down.
b25e2a948c8b5a96e284069a908c2fddb49efc48 04-Feb-2010 Andreas Huber <andih@google.com> Stop using the PV software decoders and use ours (based on PV code) instead even in non-FULL_STAGEFRIGHT builds.
78d529eb330ab6c04b5c694403f5a7e7de4b702f 01-Feb-2010 Andreas Huber <andih@google.com> The TI MP3 decoder lies about the number of channels it outputs, add a quirk for that.
867d2f6ce668968e463eb86b856d21525f12fd67 26-Jan-2010 Mathias Agopian <mathias@google.com> Simplify the MemoryDealer implementation

At some point the implementation became complicated because of
SurfaceFlinger's special needs, since we are now relying on gralloc
we can go back to much simpler MemoryDealer.

Removed HeapInterface and AllocatorInterface, since those don't need
to be paramterized anymore. Merged SimpleMemory and Allocation.
Made SimplisticAllocator non virtual.

Removed MemoryDealer flags (READ_ONLY, PAGE_ALIGNED)

Removed a lot of unneeded code.
213addfaf4b359c69da4e9b4490c511d116845bb 25-Jan-2010 Andreas Huber <andih@google.com> The qcom OMX video decoders do not allocate output buffer memory at the time OMX_AllocateBuffer is called, wait until we received the first FILL_BUFFER_DONE notification until we rely on the buffer data ptr.
570a3cb7582daa030cb38eedc5eb6a06f86ecc7f 21-Jan-2010 Andreas Huber <andih@google.com> Fix no-copy-overhead OMXCodec implementation to actually work.
7eaa9c9385535b651064e02d05a8ffa4b2359281 16-Jan-2010 Andreas Huber <andih@google.com> Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.
b03fd8c97695d381e202f6a64989b51c7024c04a 14-Jan-2010 Andreas Huber <andih@google.com> Workaround for some hardware decoders not properly signaling end-of-output-stream properly.
fd1fe13b4584628d73df31717794e8e886d6bc39 19-Dec-2009 James Dong <jdong@google.com> Fix a memory corruption problem in software M4v/H263 decoder due to out-of-scope local variable
3306cfee3bf38ab207a0504e49c2d492bb73ffbf 16-Dec-2009 James Dong <jdong@google.com> Initial checkins of the mpeg4 and h263 software decoders based on PV
134ee6a324c35f39e3576172e4eae4c6de6eb9dc 16-Dec-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 16 09:28:23 2009 -0800

This H264 file shows a certain problem even better.

commit 3245f1f3b7471975aeeb824a756c987abd610f55
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 16 09:20:08 2009 -0800

Using only the QA testfiles now.

commit 074817eb3816c5dd70858a3594e3b92d799d873b
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 15 16:17:39 2009 -0800

Yay, roles are back again now that the API is in place.

commit 6d847e4932cc38301ae27cb7283b7f1553a95457
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 15 13:01:20 2009 -0800

Added commandline option for specifying the random seed for reproducable tests.

commit 62ab37b26336eaa67e49791c41c996acb6acee3f
Author: Andreas Huber <andih@google.com>
Date: Mon Dec 14 10:53:27 2009 -0800

When issuing a seek it is important that only the first MediaSource::read call has the seek option.

commit e77c46644b2fb6862bafa3569f7d304252074f1e
Author: Andreas Huber <andih@google.com>
Date: Mon Dec 7 16:39:07 2009 -0800

Make sure the tests are actually built, sp<OMXCodec> becomes sp<MediaSource>

commit 6df56915bd55a9445b3c6f953d3cc251d81579b8
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 3 14:25:36 2009 -0800

Temporarily disable support for querying the roles of OMX components.

commit 31bb26930df9e3658dea684cedb4b0f1a06a4a88
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 1 13:36:52 2009 -0800

Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.

commit 4c382fbc9aebee8197d5988d04378062809e7c48
Author: Andreas Huber <andih@google.com>
Date: Tue Dec 1 09:37:24 2009 -0800

New random seek test for the codec tests. Fixed "sticky" end-of-output-buffers flag behaviour in OMXCodec.

commit c762eac3e44309592b61a168d66e091cf609fa03
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 3 14:13:43 2009 -0800

Fix a typo.

commit 50540a59b65c7d476b0193c7494cd75895e6ca6d
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 3 09:48:35 2009 -0800

Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.

commit 1157a7e52a0636706caa235abe16d2ff8a0b8140
Author: Andreas Huber <andih@google.com>
Date: Wed Oct 28 12:01:01 2009 -0700

Changes to the IOMX::listNodes API, this now returns the component's roles as well, unit tests now test all components in all supported roles by default.

commit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a
Author: Andreas Huber <andih@google.com>
Date: Mon Oct 26 09:45:26 2009 -0700

Initial check-in of unit tests for OMX components.
1af80bc3fefb999756ef4847e72b2dcfd0b88a4a 15-Dec-2009 Andreas Huber <andih@google.com> Properly integrate the software codecs into the OMXCodec::Create hierarchy of available components.
b841f14f8e51f2365945281fbfa54ef6a1b1b5a6 12-Dec-2009 Andreas Huber <andih@google.com> Initial checkin of software AMR NB encoder based on PV source code.
6b91407a918d755454ed396068ff7f67b7088f34 11-Dec-2009 Andreas Huber <andih@google.com> Propagate duration from input to output only if available, support multiple full frames of audio per input buffer in AMR/AAC decoders.
609f1a00c96cf5605f4614e7bb6d0487c98969c5 10-Dec-2009 Andreas Huber <andih@google.com> Initial checkin of software AVC video decoder based on PV source code.
4f1efc098cb5791c3e9f483f2af84aef70d2d0a0 09-Dec-2009 Andreas Huber <andih@google.com> Initial check in of AMR (NB and WB) decoders based on PV source code.
d9618f23226f46c752e56f712bc4b505117d8b4b 07-Dec-2009 Andreas Huber <andih@google.com> Initial checkin of stagefright MP3 audio decoder based on PV source code.
92616b5655b7aef260480f60f2aabf98e821c8f3 07-Dec-2009 Andreas Huber <andih@google.com> Fixing the build, only instantiate the software aac decoder in full stagefright builds.
f44de515d3b6098a0b585865c1a0c7b20d3075a6 07-Dec-2009 Andreas Huber <andih@google.com> Initial check in of stagefright software AAC decoder based on PV source code.
bf697e37550d9e8376089b0b5e498613bede798c 07-Dec-2009 Andreas Huber <andih@google.com> Change OMXCodec::Create to return an sp<MediaSource> instead of an sp<OMXCodec>, this is more general and does not sacrifice any functionality as the remaining OMXCodec APIs are not meant to be public anyway.
c297fccffc4ab1cb3b9f5c6a5b0802be057f3e0f 02-Dec-2009 Andreas Huber <andih@google.com> A small sample tool to encode pcm audio data to amr, decode it again and play it. Some changes to OMXCodec to properly configure the AMR decoder(s).
e5d6df402da9b6c5577470abb81a5e6801bd7752 23-Nov-2009 Andreas Huber <andih@google.com> Some playable/decodable streams have been found in the wild that violate this assertion, let's be lenient for now.
738c4315859395bfeeaae3d4c9d6fb9f414778f1 23-Nov-2009 Andreas Huber <andih@google.com> Make sure the decoder's input buffers are large enough to hold the largest input data. Verify that the setting actually sticks.
bfa6b2d7a1be1832ac40ed90aece1834f720b5c6 20-Nov-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 1efc38dc3c33fef57b759002db3965ed07a28cb0
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 19 14:36:14 2009 -0800

Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed.

Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed.

commit 51973062eb5ee63fd64b845d72bac517cc3369cf
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 14:01:43 2009 -0800

Fix one more unit test, properly send seek-complete notification only after seek actually completed.

commit cb22250b34b1fcfe1bf459723a761fd003950229
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:31:36 2009 -0800

Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails.

commit 25eb9241138ddf7bb27ce90657116c5f8a94d880
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 12:30:40 2009 -0800

Support seeking and duration in AMRExtractor, assuming all frames are the same size.

commit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 10:21:44 2009 -0800

MediaPlayerImpl is dead, long live AwesomePlayer.

commit c5b52d3c0674f5dc94db506afbce52401cceddac
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 18 09:42:23 2009 -0800

New implementation of the stagefright mediaplayer.
30ab66297501757d745b9ae10da61adcd891f497 17-Nov-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 333057b355f8c260c549553b9a0634755c838b6a
Author: Andreas Huber <andih@google.com>
Date: Fri Nov 13 15:35:48 2009 -0800

Some more tweaks to AVC encoding on sholes.

commit 9981d0ee52ec5b8b0182aae733d1571e3ebb8390
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 12 16:36:57 2009 -0800

Support for avc encoding, including sholes specific tweaks to pick the right colorspace for the camera to not require transcoding.

commit 5ba0ebbbd4efca51f3ae1f60e2ca31e7d2cf136d
Author: Andreas Huber <andih@google.com>
Date: Wed Nov 11 09:50:03 2009 -0800

Enable actual (camera) video-only recording using h.263 or mpeg4 encoding.

commit 3fd59c3526a37fe7c696f4a978925d1831c09313
Author: Andreas Huber <andih@google.com>
Date: Tue Nov 10 14:57:48 2009 -0800

Allow switching between the PV recorder implementation and one supported by stagefright.

This is controlled through the property "media.stagefright.enable-record".
022ad466c95001eaf043b1f0aff89cde92e3387f 05-Nov-2009 Andreas Huber <andih@google.com> am 818a9cf8: Merge change Ia4eedace into eclair

Merge commit '818a9cf827f282addbf7c8ee23534e08a3aaa358' into eclair-mr2

* commit '818a9cf827f282addbf7c8ee23534e08a3aaa358':
Now that UseBuffer on this component is fixed, let's use it.
d899d73308f987c932a4366977e67a3d8aa8bc8b 05-Nov-2009 Andreas Huber <andih@google.com> Now that UseBuffer on this component is fixed, let's use it.
888f72a4628eed3c136ff2e346a15d129da0d520 29-Oct-2009 Andreas Huber <andih@google.com> Revive support for video encoding in OMXCodec.
548403bfc52434b875d620a05cc88985e5cc879c 28-Oct-2009 Andreas Huber <andih@google.com> am 54620b1a: Merge change I6e50a8c6 into eclair

Merge commit '54620b1a77e51b3fa531dbd099bd69c39d7d0029' into eclair-mr2

* commit '54620b1a77e51b3fa531dbd099bd69c39d7d0029':
Revert "Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder's input buffers."
17d58a83356ba568861b3aa391c5df915d33c0f1 26-Oct-2009 Andreas Huber <andih@google.com> Revert "Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder's input buffers."

This reverts commit 7a03b074a554ba3fd08dbc20cfd4b2f37c5f3aaa.
ba229b3faa98b3bb6567cf95040062be2d9c2b3f 22-Oct-2009 Andreas Huber <andih@google.com> Prefer software decoders over hardware for thumbnail extraction.

While our hardware decoders clearly outperform the software decoders in terms
of raw throughput, their startup latency makes them less suitable for thumbnail
7e04dcf8d6784dd56f53aa90bf34431ab4f0710c 22-Oct-2009 Andreas Huber <andih@google.com> Extract video thumbnails from the largest sync sample among the first 20.

Also fixes OMXCodec seek behaviour on the very first call to OMXCodec::read()
521bad496a8b80008abe573a6712a8051c9eb322 22-Oct-2009 Andreas Huber <andih@google.com> am b0e6a9a0: Merge change I7a03b074 into eclair

Merge commit 'b0e6a9a0e6e82327f52fd25f3a9e2463ff591905' into eclair-mr2

* commit 'b0e6a9a0e6e82327f52fd25f3a9e2463ff591905':
Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder's input buffers.
4926a47afc079c8d9259f18a26accbfba2f976eb 22-Oct-2009 Andreas Huber <andih@google.com> Now that the underlying bug is fixed we can continue using OMX_UseBuffer for this decoder's input buffers.
c6323f9d72e0f08dd1e813550a56c8d2f0fd76a2 21-Oct-2009 Andreas Huber <andih@google.com> Some cleanup of OMXCodec code, make sure to ignore 0-length output buffers in the metadata retriever.
66d1e82ce5d5e189442285b6225977137b65c608 20-Oct-2009 Andreas Huber <andih@google.com> do not merge: The qcom video decoders always output yuv data after adjusting dimensions to be a multiple of 16.

Add a quirk mode to OMXCodec that makes it aware of this fact for proper display. Also integrate back a change from eclair-mr2 that delays releasing an output buffer briefly after posting it to surface flinger, as we don't know how long it'll take it to actually display the buffer's content.
12658b720b176b7d934444256d07ba3c595d9b44 19-Oct-2009 Andreas Huber <andih@google.com> Avoid signaling a format change to the client if its insubstantial.

For example, the original port settings change may just indicate a change
in the number of buffers to allocate, which won't be visible to the client
in any case.
318ad9c1d9d6515026dfc2c021359d27decaa7a1 15-Oct-2009 Andreas Huber <andih@google.com> Reimplement the OMX backend for stagefright.

Besides a major cleanup and refactoring, OMX is now a singleton living in the media server, it listens for death notifications of node observers/clients that allocated OMX nodes and performs/attempts cleanup.

Changed APIs to conform to the rest of the system.
89e69da4d86348409994c9dafbbb2634ccd7c196 13-Oct-2009 Andreas Huber <andih@google.com> Separated private from public header files.
7f281f87670c63775ea1ae8b24af31822d5ad416 09-Oct-2009 Andreas Huber <andih@google.com> OMXCodec now notifies the reader of changes in the output format by returning a special result/error code.
48c948b1137e7bbdb161b51908657ab72ac5e2da 08-Oct-2009 Andreas Huber <andih@google.com> Change to a int64_t usecs representation for timestamps and duration throughout stagefright.
2a4a7d5af053a17586a262a1267ba993e31790f1 07-Oct-2009 Andreas Huber <andih@google.com> Split the ColorConverter off SoftwareRenderer, metadata support in stagefright.
36efa039efaae4526791336cb688032d22b34bec 08-Oct-2009 Andreas Huber <andih@google.com> Some decoders will return an error on OMX_EmptyThisBuffer to indicate that they don't support the media format, deal with this.
9749025189acc6c737be22007e90ed8bbbcdbc21 08-Oct-2009 Andreas Huber <andih@google.com> The vendor is about to check in a fix for this issue, the workaround is no longer needed
ec430b158df17b2c766f7750a96c35d3902f5f49 07-Oct-2009 Andreas Huber <andih@google.com> Workaround for avc decoder misreporting output buffer size requirements if the content is not a multiple-16 width/height.
5228dd1b7468bfc86a807a299f515d33048f96ac 17-Sep-2009 Andreas Huber <andih@google.com> Another stagefright test-case and ignore end-of-stream notifications while we're flushing.
269091da58951736dc2f4c8b74886b6a9aa12be1 16-Sep-2009 Andreas Huber <andih@google.com> The 8k chipset qcom decoders require that the input buffers be allocated using OMX_AllocateBuffer rather than OMX_UseBuffer for now.

If they aren't, a later call to OMX_FreeBuffer crashes...
95301196d59fb88ef96342fd307a2be374b5079b 15-Sep-2009 Andreas Huber <andih@google.com> Added a little more logging in OMXCodec.cpp for vendors to be able to reproduce issues...
df4de7d7bd0060a84b064ce074d3f86d3a7aa0ae 11-Sep-2009 Andreas Huber <andih@google.com> Apparently I must not use OMX_UseBuffer on either input or output ports on any of the TI components... or else.
18291bc20e55e8f3fd5feb786771a8ed32c19c59 10-Sep-2009 Andreas Huber <andih@google.com> Media MIME types now have corresponding constants in MediaDefs.h, new codec enumeration API.
8cd11d23197209e2c2bdb7980bc17e3f1257a118 10-Sep-2009 Andreas Huber <andih@google.com> Add component name to informational logging in OMXCodec.cpp
2f7daa1d7e01bfc2cd7546edeeaea0c3c2ee728c 10-Sep-2009 Andreas Huber <andih@google.com> Added some more verbose output for AMR formats. Properly fill out the output format.
195ea1e0d4484f1deb2309e239f6a5cc9a7e5ba7 08-Sep-2009 Andreas Huber <andih@google.com> Calculate proper output buffer size for some more 16-bit RGB color spaces.
f75978f63a25e79c683e96611f95cb5cd49efd3d 09-Sep-2009 Andreas Huber <andih@google.com> Added a .amr file extractor (for AMR-NB and AMR-WB content).
456db75516efc889e1ee4e5e16021e77c03b0941 08-Sep-2009 Andreas Huber <andih@google.com> Support encoding amr-wb content in stagefright.
b7802d9ee9c9dbb471ae4f010bd67ba1aaa9f264 04-Sep-2009 Andreas Huber <andih@google.com> The qcom decoder requires that the output buffers be allocated by the component for hardware accelerated display to work.
7a6b9e2eca7d20457ace3538c689640e5bfda4f3 03-Sep-2009 Andreas Huber <andih@google.com> Setting the component role appears to be mandatory now for all mime types.

Also using CODEC_LOGV instead of vanilla LOGV to include the component name the message related to.
e5adbeee3401915ff8e1a983396ce3554436b11c 02-Sep-2009 Andreas Huber <andih@google.com> Some work to make audio encoding work.
37940eefcba982836b579fe1ffec6cada72b0974 02-Sep-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit c45bfbb97ccd05982008df47181f9c73abaf0497
Author: Andreas Huber <andih@google.com>
Date: Tue Sep 1 15:58:12 2009 -0700

This quirk should not be enabled by default in order to make the bug reproducible by the vendor.

commit 21d72e80e795fcae53d9c3bcc8ba6312b081e420
Author: Andreas Huber <andih@google.com>
Date: Tue Sep 1 15:55:45 2009 -0700

Undoing the hack to temporarily give up the lock to facilitate reading from the buffer source.

This simply causes too many issues, there need to be independent threads providing input buffers and dequeuing output buffers.

commit 84d507def8999c146ce124cc8edfe106c9ca70c2
Author: Andreas Huber <andih@google.com>
Date: Tue Sep 1 15:16:23 2009 -0700

The AAC components appear to output stereo data even if the input data is mono...
53f2b2ae6417e8a32961e05cf21920c540d8b823 01-Sep-2009 Andreas Huber <andih@google.com> Temporarily unlock our mutex while fetching a buffer from the upstream source.
450bf4b0d25c933431b790d911a5fcae750fe38d 28-Aug-2009 Andreas Huber <andih@google.com> Fixes a race condition between entering ERROR state and initial buffer submit.
7d719af770ddefc3739fd0597634dea553c5569a 28-Aug-2009 Andreas Huber <andih@google.com> Apparently setting the preferred role of the OMX component is now required on this platform.
284f513a4ce2c5aa0e250c07c873731aedb0be26 27-Aug-2009 Andreas Huber <andih@google.com> An attempt to fix a deadlock between OMXCodec::start and upstream ::read
8297cedd12f689167d74de5ddacb514e9f6896ea 27-Aug-2009 Andreas Huber <andih@google.com> Another quirk, some OMX components fail to properly flush before shutdown and we must do it for them...
0c89199745bc1bf05b997fc7c342017807676b6f 26-Aug-2009 Andreas Huber <andih@google.com> assert => CHECK in stagefright.
355edcea2f15c0f619c1e1d0f4fa433b0d38098f 26-Aug-2009 Andreas Huber <andih@google.com> Disregard the EOS buffer flag while flushing or shutting down the decoder.
ea7d15629752256f6ea1d5c6ea796e59aefd030f 26-Aug-2009 Andreas Huber <andih@google.com> Keep up with latest changes to overlay handling on that unnamable platform.
1beb760d920561679862ded945a04e370368c7f7 25-Aug-2009 Andreas Huber <andih@google.com> Make sure not to ask for more buffers when we know that there won't be any, added a quirk for the aac decoder.
7530e9c708275c273c134c36c68179f511c1940e 20-Aug-2009 Andreas Huber <andih@google.com> Dynamically allocate a pair of MemoryHeaps according buffer count/sizes required by the OMX component, respect JPEG compressed size.
bde3caae211e215e4bbfef1a267f8d680efa4764 19-Aug-2009 Andreas Huber <andih@google.com> Better (proper) parsing of the AVCDecoderConfigurationRecord, respect hardware decoder profile/level limits.
dbc03445db2bbf83b64f0c0a5dc62e61408864d7 19-Aug-2009 Andreas Huber <andih@google.com> The PV AVC software decoder expects each fragment of a NAL unit to be handed to the decoder unframed.
693d271e62a3726689ff68f4505ba49228eb94b2 14-Aug-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 5bb012f0065f7ffaaeb4f569d71f0e3a8d6b19c3
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 14 10:40:08 2009 -0700

An attempt at fixing export using the qcom encoders. More quirks.

commit 0690e76bfa48118a68287ccf1bbfa82febaa620c
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 14 09:08:28 2009 -0700

Callbacks are now dispatched from a separate thread in OMX.

commit c6571a039526df29b6343f9a1971dbc019088c61
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 15:42:25 2009 -0700

Massive API changes throughout stagefright, smart pointers everywhere.

commit 900612af6a0555664d9ba195112cd859491265f4
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 13:33:12 2009 -0700

OMXCodecs now properly shutdown.

commit 96732f05e1b0603dcd1b11f16a23512592eeb4f5
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 13 12:04:04 2009 -0700

More work on JPEG decoding using the hardware OMX component.

commit 63839a073ac393e3a130434ba467969053b694ad
Author: Andreas Huber <andih@google.com>
Date: Wed Aug 12 13:13:31 2009 -0700

An attempt to drive the JPEG decoder OMX node.

commit 3ac2fe5ab2926eda81b2123610b2434c645294ff
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 11 16:38:21 2009 -0700

Renamed StateMachine to OMXCodec and put it in its proper place.

commit 247da75a96bf8881956413023dd49a84d5b4f5b2
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 11 16:06:19 2009 -0700

Statemachine is now a full-fledged MediaSource.

commit 045244f6771fa0b9b329495c953afda900a84b71
Author: Andreas Huber <andih@google.com>
Date: Fri Aug 7 09:16:54 2009 -0700

Properly setup the input format when exporting to AMR audio.

commit 271b984cb32c5cd9e46e3f90ae121f334e4b8da9
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 6 09:59:38 2009 -0700

Added some code to test audio encoding to the OMX harness.

commit 79af4748e4af33bd66d3fbac606e332a69741cf4
Author: Andreas Huber <andih@google.com>
Date: Wed Aug 5 14:36:22 2009 -0700

Merge the old OMXDecoder and the new, shiny, StateMachine code.

commit 91cf5dd77a8762bc10a0b2ffce35e3bbeb262231
Author: Andreas Huber <andih@google.com>
Date: Tue Aug 4 17:41:43 2009 -0700

A new harness to test OMX node compliance (and quirks).