• Home
  • History
  • Annotate
  • only in /frameworks/av/include/media/stagefright/
History log of /frameworks/av/include/media/stagefright/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
35d5af131c9d4962e935082f204ccd6a2130861c 28-Jan-2015 Weiyin Jiang <wjiang@codeaurora.org> nuplayer: acquire wakelock during offload pause timeout

Hold a wakelock while paused in audio offload mode, until audio
teardown event is received, or pause is canceled.

Since ARM cores are sleeping, the delayed AMessage will not be
received, and the audio output driver will not be closed.
This blocks XO shutdown.

Bug: 19297092
Change-Id: I3d11fef633e3f2783f4aa31e71285e2fa09d234c
oundation/AWakeLock.h
3a01a71dcbb467d06cc5da4a72a82bb588648cfc 31-Jan-2015 Lajos Molnar <lajos@google.com> stagefright: add fallback for native flex-YUV support

Use software renderer if codec cannot support flex-YUV on a surface

Bug: 17906609
Change-Id: I3d0e3ff5fee7d7b3e2416892968fa18f6139598a
ediaCodec.h
0d09182a1dde960f7acda1c28469e5deead1b996 30-Jan-2015 Lajos Molnar <lajos@google.com> stagefright: add support for native flex-YUV formats

Bug: 17906609
Change-Id: I14116796eaa94aa8ae62dcc29f67cb7d2c060d34
Codec.h
78b01639c08fe5e7e9c1be5e9dc5de560f1383f9 30-Jan-2015 Rachad <rachad@google.com> Acodec: Send framerate information to OMX decoder if available

Bug: 19110889
Change-Id: Ia8dbe1b77aaac421ec9415884e1248b9b68168dc
Codec.h
0b460ad7557f6be56aad3fa027d93b38d5995ac4 10-Jan-2015 Rachad <rachad@google.com> Merge "ACodec: Added support for E-AC3 decoders" into lmp-mr1-dev
1713460104b86f6be3a5d9993d9ace864d889b2d 08-Jan-2015 Chong Zhang <chz@google.com> mark any copyrighted content as protected to disable capture

bug: 18916274
Change-Id: I23f096b51433bf18a10dc5fe6dc6b75c3881c340
Codec.h
8a4728966dc9c78e21c3c93a927707e93c05e5e0 24-Dec-2014 Rachad <rachad@google.com> ACodec: Added support for E-AC3 decoders

Bug: 17883772

Change-Id: I05f674c33522eec0e6ceeece88dd800b1857b3ab
Codec.h
ediaDefs.h
eee82e44548f17253c2e06b25725f91c7b549ec2 12-Dec-2014 Lajos Molnar <lajos@google.com> MediaCodecList: handle binder death

Bug: 18691591
Change-Id: Icc402d6ea9b0de4ac642c3b403fb64e865481b2e
ediaCodecList.h
a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5 24-Sep-2014 Lajos Molnar <lajos@google.com> stagefright: misc fixes to software video encoders (and decoders)

- move logic to set encoder parameters to common encoder class
(similarly to what was done for decoders)
- set compressed buffer size based on frame size and compression ratio,
and codec-specific minimum size
- set raw buffer size based on frame size and metadata mode
- do not set stride and slice height on compressed ports
- advertise only QCIF support for google H263 encoder
- set large-enough input size for video decoders to support adaptive
playback
- do not change input buffer size on output port reconfiguration, as
no input buffer reallocation takes place
- do not return empty buffers with EOS after EOS has been signaled

Bug: 18513091
Bug: 18639027
Change-Id: Ib13492ef66adf331aa4572c67d2b283ea020cb41
oundation/AUtils.h
4e865a3cfe4c955e0890321a6b488cf661808b63 06-Dec-2014 Lajos Molnar <lajos@google.com> stagefright: preserve output format flags on format change

Some flags are only set in configure, and get lost when output
format changes.

Bug: 17383204
Change-Id: I2011bce70920c4ee46fccc378da3b428f3395c11
Codec.h
cede28e22bce0c92a6d139b51d2c007d2e3f6fca 14-Nov-2014 Lajos Molnar <lajos@google.com> Merge "stagefright: add runtime debug support" into lmp-mr1-dev
97e6ca1a0be83e420ab238d9a1c31d3112126646 14-Nov-2014 Chong Zhang <chz@google.com> Merge "Stagefright: use MediaCodec in async mode for recording" into lmp-mr1-dev
1099188151eb63af24ecf542b58d4257bbb8236a 16-Oct-2014 Praveen Chavan <pchavan@codeaurora.org> Stagefright: use MediaCodec in async mode for recording

Async mode reduces the number of messages posted between
MediaCodec and MediaCodecSource. This reduces thread
wakeups and helps reduce CPU utilization.

Bug: 18246026
Change-Id: I4b0837f309fdd12e323c1dfa72525f5a31971a03
ediaCodecSource.h
f296e2b262d2a8f7c570eaed454a28cca99eb976 19-Jun-2014 Lajos Molnar <lajos@google.com> stagefright: add runtime debug support

Bug: 18285408
Change-Id: I56346f4652b2c5f7ef5fa3003fd8676051339384
oundation/ADebug.h
oundation/AStringUtils.h
04f101c35eaa90b1f95939afac30674ec1611e6f 04-Nov-2014 Dan Stoza <stoza@google.com> Add a BufferItem parameter to onFrameAvailable

Passes the BufferItem for the queued buffer to the onFrameAvailable
callback so the consumer can track the BufferQueue's contents.

Bug: 18111837
Change-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0
urfaceMediaSource.h
258420480e1edc73b112a5994a8456e31c558860 22-Oct-2014 Lajos Molnar <lajos@google.com> Merge "stagefright: try to free codec instance if MediaCodec.release hangs" into lmp-dev
30358faf33fb9b638257b017fadb4c5f7352d903 22-Oct-2014 Lajos Molnar <lajos@google.com> stagefright: try to free codec instance if MediaCodec.release hangs

Bug: 18033275
Change-Id: If86cd26566d7b75941976f37829bbec619800778
Codec.h
52dfbee90cc3c4426428318e06a92774f5201198 15-Oct-2014 Praveen Chavan <pchavan@codeaurora.org> Stagefright: MediaCodec: shutdown allocated codec on error

If MediaCodec sees a fatal error and transitions to
UNINITIALIZED state, The codec may still be alive (with an
exception of 'mediaserver-died' error).
Handle Shutdown of the codec during release().

Bug: 17784012
Bug: 18033275

Change-Id: I891e036499d9b440a57f77fb735a5ba4da9a6e43
ediaCodec.h
584c14c370f141685b7e8963a13ed91584383ca1 07-Oct-2014 Rachad <rachad@google.com> Merge "stagefright: do not allocate output buffers for tunneled playback" into lmp-dev
f2a64852a4a48c5a3d8a08ffcda20d6884586672 04-Oct-2014 Chong Zhang <chz@google.com> MediaRecorder: only dequeue available buffers from MediaCodec

Bug: 17514968
Change-Id: If232f92d163deb2440b927315c69e0c4d51ca290
ediaCodecSource.h
a147b4f91143d9f2fb608e22f9fca14bbd029573 02-Oct-2014 Lajos Molnar <lajos@google.com> mediarecorder: set level if setting default profile

Bug: 17676461
Change-Id: If01ccd09935945d330de0842be95c3544951b6b9
Codec.h
c416becd966945fca5fa7fb45ac51f84d1d8cd20 02-Oct-2014 Lajos Molnar <lajos@google.com> stagefright: move math templates into AUtils.h

add unit test for math templates

Bug: 17676461
Change-Id: Ie964c5fcfcca1ec53b4538f8e577392e8fbb4319
oundation/AUtils.h
d0b9efe7d8300e48f7a99c1dd746d60060206b3c 01-Oct-2014 Chong Zhang <chz@google.com> Merge "add AAC audio decoder params for PCM limiter enable" into lmp-dev
360d6d0924f99b82ebacb5cfb6f7bca95e11b4ee 29-Sep-2014 Robert Shih <robertshih@google.com> GenericSource: support disconnect before NuCachedSource2 is created

Bug: 17672488
Change-Id: I96776c9679fdcfbe9a442c86447c59802b1465ac
ataSource.h
2965f4eb7dceaf1173f0e2d93c11c28293aeead7 01-Oct-2014 Chong Zhang <chz@google.com> add AAC audio decoder params for PCM limiter enable

Bug: 17470065
Change-Id: Ib67aa1c50e3b6c24c4b12b0f31a996cc6874abd1
Codec.h
ab76066c11e988ca3d3a5d6d74dd510ae080322e 23-Sep-2014 Rachad <rachad@google.com> stagefright: do not allocate output buffers for tunneled playback

Do not allocate native window buffers for tunneled video playback codecs.

Bug: 17112525
Change-Id: I262d8030a9df6188938fde5d62ebce8faf7dba1f
Codec.h
d7f77cd78f5180ba7a04b270d632cc4f9f11718a 22-Sep-2014 Andy Hung <hunga@google.com> Merge "MediaCodec: Fix deallocated pointer reference when calling reset()" into lmp-dev
dc9f58dc23a86d0635fd8601d1cbc8d47bab0303 18-Sep-2014 Andy Hung <hunga@google.com> MediaCodec: Fix deallocated pointer reference when calling reset()

The name pointer argument in MediaCodec::init() was being
implicitly deallocated.

Bug: 17499622
Change-Id: If9409f95674e52d1478f969f77693c4d27ff1ff2
ediaCodec.h
96e92b58b7e9647b4c7c2f54b62a1b357ab06b66 19-Sep-2014 Wei Jia <wjia@google.com> MediaBuffer: ABuffer will release MediaBuffer when it's destructed.

Bug: 17454455
Change-Id: Ia423bcc2e1fa39137f114eac44912ed15357bb99
ediaBuffer.h
oundation/ABuffer.h
oundation/MediaBufferBase.h
7ea429295a2eb31f2d9256c36c1ef53a195456ac 27-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: don't use AAtomizer in AMessage

Bug: 15094301
Change-Id: Ib82fb6d8fb6b48402d81f411123b3d924368eb93
oundation/AMessage.h
9caf1f5677edb365c20739612cba9f59291a9afb 10-Sep-2014 Jeff Tinker <jtinker@google.com> Merge "Add error code for insufficient output protection" into lmp-dev
ea8462ccd1a882f2c7c785250bcfaa2606b53cb5 03-Sep-2014 Marco Nelissen <marcone@google.com> Merge "Fix more potential deadlocks in ALooperRoster" into lmp-dev
97827bd7c7e64dec22c8fe0f9e734a3c432ad7ee 29-Aug-2014 Rachad <rachad@google.com> Tunneled Video Playback:
Changed AudioHwSync token to int32_t to match Audio stack api.

Bug: 17112525
Change-Id: I673819495c2e7b540e8d7572cc95796bddbf63bb
Codec.h
0671947255321526cb1ba1ec3a20af9e8579c257 29-Aug-2014 Jeff Tinker <jtinker@google.com> Add error code for insufficient output protection

bug: 16034599
Change-Id: Ib52c8bdae83ea138cac897bce78ab651c36c1998
ediaErrors.h
047dd13ca42ff7cea10821ef64eb09229fa3e751 28-Aug-2014 Marco Nelissen <marcone@google.com> Fix more potential deadlocks in ALooperRoster

Bug: 17059501
Change-Id: I242f2859527bed2d6e275c27de94fb19f4dcdc28
oundation/ALooperRoster.h
d354d8d1b09503c0166c1f3e626cda72a3eeb83c 20-Aug-2014 Chong Zhang <chz@google.com> move cache prefill to GenericSource's message handler

This allows prepareAsync to be terminated by reset promptly.

It also makes it easier to do buffer update as GenericSource
can access the cache status now.

Bug: 16892748
Bug: 17182378

Change-Id: Ia55c04a810fd805041cb2025f6739afa5120b5ed
ataSource.h
5a446aafff3020d607ad6fb14cc7ae76dd8f7947 30-Jul-2014 Rachad <rachad@google.com> Added Tunneled video playback support to ACodec

Bug:16132368
Change-Id: I88d2d66b8548fc203f4a2c4797196af15e56ff38
Codec.h
ddabe554e95940891c5df9a7f092798351b5f75e 08-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AAC decoder: add support for controlling presentation parameters" into lmp-dev
8045853d03649f43ea2f7107e7d2dbb9b2d20855 02-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> AAC decoder: add support for controlling presentation parameters

Control the dowmixing of the AAC decoder
Control the DRC processing of the AAC decoder

Bug 16740915

Change-Id: I9b06ea8785f56213ea120ed85eeb360c88223297
Codec.h
317bb9163befccd87348c11bdfc0044e629b362b 08-Aug-2014 Andy Hung <hunga@google.com> Merge "Clarify and implement MediaCodec status codes" into lmp-dev
251d4be8aa5ab80bc915a82a2420233bdc62018e 31-Jul-2014 Andy Hung <hunga@google.com> Clarify and implement MediaCodec status codes

Clarify MediaCodec status codes in MediaError.h
When appropriate, return OMX error codes for status.
Optionally return a status code from CreateByType() and
CreateByComponentName().

Bug: 12034929
Bug: 13976475
Change-Id: I7463dd08d101074f730481b26127a69c9186c97e
ediaCodec.h
ediaErrors.h
229d242665c612fd97431d1e7ac004823b47f181 07-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: support flexible YUV format

- Report flexible format for standard OMX formats that are flexible.
- Accept flexible format when specifying video port formats.

Bug: 10706245
Change-Id: I9e82bc895bb0d5d606eb05fdf83bec766eaa2046
Codec.h
60b1c0e79d12a1c70758bc8d060156924635f8ba 07-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: rework media codec list and infos

This is in preparation of serving the codec list and codec infos
from the mediaserver

Bug: 11990470
Change-Id: Ib8e2708679c9ce461a4ba179974a740cdcdf2731
ediaCodecList.h
MXCodec.h
8accee4f0e94f19866d260be6eecd6c219eb4982 06-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: add AString parceling, and equal/compareIgnoreCase

Bug: 11990470
Change-Id: If43ada5d2e768931f4409e499eaa268edade0500
oundation/AString.h
a9522673f3076ea937eb2912945d7ed646ca05df 06-Aug-2014 Lajos Molnar <lajos@google.com> stagefright: move ARRAY_SIZE to foundation

Bug: 11990470
Change-Id: Ifae790b774a0fb210acbe33a1310d3d6ba46e7fa
oundation/ABase.h
3de157dd8f9cd45bf9b0406268f5830887105ae1 06-Aug-2014 Chong Zhang <chz@google.com> some fixes for crash when extractor creation fails

- prefetch data for sniffing

- notify error instead of crashing if extractor is NULL

Bug: 16818302

Change-Id: I56ff4996d99ac2811d19d141f7ff7acdd7c1da17
ataSource.h
ediaExtractor.h
b97cc6a9a3c81215e365c61b071a932073b56ff2 02-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> AAC encoder: add support for SBR mode selection

Change-Id: Ibc07bff7710398929c135f38324dd29857fa0ea6
Codec.h
3c9879b980ad195797543ce237ecbe479267e16f 06-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "AAC encoder: add support for SBR mode selection" into lmp-dev
16e79115e497386eaf010af388627f94314a55a3 01-Aug-2014 Chong Zhang <chz@google.com> MediaCodecSource: stop puller from caller's thread instead of looper

Currently CameraSource/AudioSource's stop() and read() are both called
from the puller's looper. This works if source operates normally (i.e.
read() returns regularly before source is stopped), as the stop() will
eventually be handled by the looper. However, if for some reason the
source hang, it will get stuck in read(), and the stop() will never
be processed, which could lead to ANR (in addition to the source hang).

We need to move the source's stop out of the puller's looper. It also
can't be on MediaCodecSource's looper, because the source's stop
synchrounously waits for all outstanding buffers to return, these
are only returned when MediaCodecSource's looper processes the buffer.

This change moves the stop to MediaCodecSource::stop, after encoder
is shutdown.

Bug: 16522726
Change-Id: Ie91f563c5d8a98ab091bf1945af4e51f662b9403
ediaCodecSource.h
1d5b45f70f684996acc24fbf3e30fa5af0a0c642 31-Jul-2014 Lajos Molnar <lajos@google.com> Merge "stagefright: MediaCodec async operations." into lmp-dev
89869f692c35d0ca914c7de4a1f5ff63c9920634 28-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: enable decoder color format selection

Bug: 10706245
Change-Id: I9a77631bfae0358be229b079228c1fcae0e77faf
Codec.h
0e8cfc36044ba97545e7c9e129b0b3e98eec5089 31-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: MediaCodec async operations.

In async mode:
- codec must be restarted after flush
- dequeueIn/OutputBuffers fail
- getIn/OutputBuffers fail

Bug: 11990118
Change-Id: If2d6a76ab499ee9ed4a11486fb537acbc52e66f6
ediaCodec.h
e9e63bcf6c36351f1129b0bdc5e93f17f0f9f0b4 31-Jul-2014 Chong Zhang <chz@google.com> handle rotation in NuPlayer

Bug: 16653284
Change-Id: I54165041da5a13498d627eee1b3ec59ef3c923b0
Codec.h
d00b7d1fb949e226b189e7d0047d78531b3264da 29-Jul-2014 Andy Hung <hunga@google.com> Add isSafeArraySize for new array size checks

Bug: 15328708
Change-Id: I9dfca30745c3e4dda91c3894363462f8631c41a1
oundation/ABase.h
03c556ae1eb409ad088c49037e185946c54e1d25 25-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add flexible YUV support

Bug: 10706245
Change-Id: Icd246f22edfc67ed5240d59f5a5bde3e5f749465
Codec.h
90b16fbdef406d95a6fb2f9395719dd7b7ca6adb 25-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add ABuffer.CreateAsCopy

Bug: 10706245
Change-Id: I8c4e96a2581a039e9e8237c3e09e2c22226da055
oundation/ABuffer.h
b104d5a4dfbd8415f6bc227106b9f0130350d79a 23-Jul-2014 Robert Shih <robertshih@google.com> Merge "MediaWriter: make get/setStartTimeOffsetMs virtual" into lmp-dev
2606b10d51c2dceb851a2ea63e803aba4134bf00 22-Jul-2014 Chong Zhang <chz@google.com> update battery stats for video/audio

Bug: 12979595

Change-Id: Iafd93046a4fd9f22bcd66084deace746a7ca5d3c
ediaCodec.h
d8cf55d878edddfc36bb821a95b88dfb2453c2c3 17-Jul-2014 Robert Shih <robertshih@google.com> MediaWriter: make get/setStartTimeOffsetMs virtual

Bug: 16329805
Change-Id: Ib971dd95b54829438c8af97528f9e00b87ab3f1e
PEG4Writer.h
ediaWriter.h
513d967dae82cd03e67bff17b927cf869d9bc43e 15-Jul-2014 Lajos Molnar <lajos@google.com> Add MediaCodecList capabilities

Bug: 12065651
Change-Id: Icfb73c0009621cd747e113d8a0cd84c966bf055d
ediaCodecList.h
oundation/AMessage.h
oundation/AString.h
c9a11abbb6b48604ea063daedd6118024cfbfa92 17-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add nonblocking MediaBufferGroup.acquire_buffer method

Bug: 15699665
Change-Id: I31c1ab4413c62ff3dd4e0d5b06a398064b4aaddd
ediaBufferGroup.h
8eebda045d865c2e23fc439e87fe915467812967 17-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add nonblocking read option to MediaBuffer

Bug: 15699665
Change-Id: I2aaddc4c937cf5c1e36386bafd7d396d5781bf6d
ediaSource.h
dd235727a1b4e283deeb581559f99c2c8889da07 12-Jun-2014 Robert Shih <robertshih@google.com> GenericSource: implement getTrackCount/getTrackInfo

Bug: 15153976
Change-Id: I0204c4188d485cda026497469c7cde24f7bd5c95
etaData.h
671160ffe81592efa376dc1ff0fc3f4ddcdebc35 15-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add MediaCodec.reset()

Bug: 12034929
Change-Id: I326f1356df89474aa088c1c87f8505b33654139d
ediaCodec.h
e71dcef63a746970d5c11c83207201fe8de02a78 12-Jul-2014 Chong Zhang <chz@google.com> Merge "MediaCodec: change onError cb to return CodecException"
749dafad09d85f2aaf6902a7ff16b4087e3bc4c7 12-Jul-2014 Chong Zhang <chz@google.com> MediaCodec: change onError cb to return CodecException

Bug: 11990118
Change-Id: I3278aecb20df88c42fa2709a66e6166eb3cbe56f
ediaCodec.h
c5619c7a6dcc1137fde7520351ad5284e3e958ab 09-Jul-2014 Chong Zhang <chz@google.com> MediaCodec async callbacks

Bug: 11990118

Change-Id: I6fe4b407d9c85cddec8d958620d5d356735273cf
ediaCodec.h
7bad72237b49ac47e77ffe2a89fd26f3d171324c 09-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: add indexed buffer and format getters to MediaCodec

These are designed to be called from the same thread as the one
calling dequeue?Buffer, and use a mutex to avoid switching
context. All other calls of MediaCodec are designed to be blocking
and synchronous.

Bug: 14297827
Change-Id: If341c6e4407ca6f10f5e0d47008dddc0e20b0a50
ediaCodec.h
2db91ae0e6aa33b50cc924ad65d6dc01876d220f 11-Jul-2014 Chong Zhang <chz@google.com> Merge "MediaCodec async callbacks"
2829edccd7d2bb8244246f316face82b650b8949 18-Jun-2014 aarti jadhav-gaikwad <agaikwad@nvidia.com> stagefright: Pass audio aac sub formats in offloadinfo

Pass audio aac sub formats in offloadinfo according to
aac profile. Audio HAL can take decision about offload
using DSP capabilities

Change-Id: If269a3654b5d2b09c183212b0646ef03e06f2d8f
tils.h
718cee5f3ba7c0a055fbeced90f26296f8acb117 08-Jul-2014 Chong Zhang <chz@google.com> Merge "handle emulation_prevention_three_bytes for AVC"
e8eb7a885e574858ddfe3dfd836fbe9ce62f92b8 08-Jul-2014 Lajos Molnar <lajos@google.com> Merge "AString: add startsWithIgnoreCase and endsWithIgnoreCase"
862f8455eaacc1ffb5d8911f0bc7ecc3cf7ec46c 27-Jun-2014 Chong Zhang <chz@google.com> handle emulation_prevention_three_bytes for AVC

bug: 15917805
Change-Id: I824fe7eea807f8faba6b149c31890b7a5df87825
oundation/ABitReader.h
d8cbe4a024ef54adf043b6ea31fa22271b8b2c51 08-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: update ACodec to use CodecBase enumerations directly

Bug: 11784825
Change-Id: I9f322b78b52bfcc5040fda951486df4354cdba4f
Codec.h
92cd05b8f2e994aabcdda5d7454c96a707dc9579 07-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: update MediaCodec to use CodecBase instead of ACodec

MediaCodec still creates an ACodec instance in init()

Bug: 11784825
Change-Id: Ifba1e1582c788056c0e59afdf68cd3a504ab3679
ediaCodec.h
05ca3bfb847ff3c1980f2f0922a4d494c0e7ebab 07-Jul-2014 Lajos Molnar <lajos@google.com> stagefright: create CodecBase interface (abstract class)

This abstracts out the ACodec dependency in MediaCodec.

Bug: 11784825
Change-Id: I0aa8b56c6414865fd4b0646e2c5bd1b62d030682
Codec.h
odecBase.h
oundation/AHierarchicalStateMachine.h
4ce87ac008bcd6a1004ca416f6d7031ba813078f 28-Jun-2014 Rachad <rachad@google.com> Merge "Add HEVC encoder support to ACodec"
c8efda9e9cd61dfe8e486c93fa8940b77cc3cceb 20-May-2014 Rachad <rachad@google.com> Add HEVC encoder support to ACodec

Bug: 14571712
Change-Id: Idaec2394d569541f3963befe722f46f6b0007937
Codec.h
3c1da7224155516a08d94598eb64b64204bf10f8 18-Jun-2014 Lajos Molnar <lajos@google.com> AString: add startsWithIgnoreCase and endsWithIgnoreCase

Change-Id: I340159aa14d4d3d28ea675c6c5b8a82f7e731069
oundation/AString.h
3ea91c9593c2c792f96682f436b587c278fe228c 16-Jun-2014 Chong Zhang <chz@google.com> Merge "support for CEA-608 closed caption"
a7fa1d9530b6870f2c7850e3025d7db963661803 11-Jun-2014 Chong Zhang <chz@google.com> support for CEA-608 closed caption

Bug: 15470448

Change-Id: Ic6a527f5c35a8ee0a08a5b043336e4d193216083
ediaDefs.h
404fced9bfa8fa423ee210a271ca051ffd1bec13 11-Jun-2014 Chong Zhang <chz@google.com> refactor getTrackInfo()

(this is in preparation for supporting other cc source)

- split into two methods: getTrackCount() and getTrackInfo()

- move track info parcelling to NuPlayer

- parcel in the mime type of the subtitle format

Bug: 15470448
Change-Id: If00724d8c3a2b2319cb9c5f29d3fe76347bfe947
ediaDefs.h
bdb8ef09f119c3fa8cc751babd483e942ad17749 16-Jun-2014 Chong Zhang <chz@google.com> Merge "refactor getTrackInfo()"
7903bb2b3065d58cc75637900922b434f50024d9 12-Jun-2014 Elliott Hughes <enh@google.com> am 2a8270e6: am c323737d: Merge "Offer a type-safe album art interface."

* commit '2a8270e6944fb3addfcba87f6885aaad196b8b88':
Offer a type-safe album art interface.
2a8270e6944fb3addfcba87f6885aaad196b8b88 12-Jun-2014 Elliott Hughes <enh@google.com> am c323737d: Merge "Offer a type-safe album art interface."

* commit 'c323737dd46d724b4c1ec230b283f26ae2a22b4f':
Offer a type-safe album art interface.
f3e80dddd7376aa9deeb27de25e1d50030a2ad98 11-Jun-2014 Elliott Hughes <enh@google.com> Offer a type-safe album art interface.

Bug: 15514223
Change-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95
tagefrightMediaScanner.h
3b5a6b9fa6c6825a1d0b441429e2bb365b259827 20-May-2014 Harish Mahendrakar <harish.mahendrakar@ittiam.com> stagefright: added support, and SoftOMX decoder, for HEVC

also fixed QuerySupportedProfileLevels in
SoftVideoDecoderOMXComponent.cpp

Bug: 14571712
Change-Id: Ifa3793f7c1b18ac5e8c0a096848c998cabd9e777
etaData.h
MXCodec.h
ddde219f2f93c1d81ff1cfaf4d3d31d95156f7a3 20-May-2014 Rachad <rachad@google.com> Merge "Add HEVC decoder support to ACodec bug: 14571712"
609b815a3131d22da38b2f452faa9f89daad4039 02-May-2014 Andy Hung <hunga@google.com> Update OMX messages for 64 bit

Change node_id and buffer_id to uint32_t.
Ensure IOMX messages are fixed size.
Remove 64 bit compile warnings in associated files.

Change-Id: Icdbef00aca575e5dc502ebb52e3ce7d0d7883203
Signed-off-by: Andy Hung <hunga@google.com>
ediaCodec.h
2472b1c0d63454e5d90a982bd6c555de6c3127bd 06-May-2014 Rachad <rachad@google.com> Add HEVC decoder support to ACodec
bug: 14571712

Change-Id: I221625a42e143cb1c581059694f6730211e251ae
ediaDefs.h
fc7fca77caa12993dd938d5ff43797d781291027 08-May-2014 Lajos Molnar <lajos@google.com> MediaCodec: add renderAndReleaseOutputBuffer() method with timestamp

Bug: 11784827
Change-Id: Ia1dcbd6c1d1a4380db04b750c0eb3fa0bd58d7b4
ediaCodec.h
192d6a509cf609a2a4b7f9cb70aeb5daabb0204e 02-May-2014 Lajos Molnar <lajos@google.com> am edf6131d: am 075c8f6e: am a69d6f52: Merge "stagefright: add ClockEstimator API and WindowedLinearFitEstimator"

* commit 'edf6131d1eca1fdff3b151805d241a1cc81b52ca':
stagefright: add ClockEstimator API and WindowedLinearFitEstimator
edf6131d1eca1fdff3b151805d241a1cc81b52ca 02-May-2014 Lajos Molnar <lajos@google.com> am 075c8f6e: am a69d6f52: Merge "stagefright: add ClockEstimator API and WindowedLinearFitEstimator"

* commit '075c8f6e174e824b6bc95809cc25f1430e9d4e62':
stagefright: add ClockEstimator API and WindowedLinearFitEstimator
075c8f6e174e824b6bc95809cc25f1430e9d4e62 02-May-2014 Lajos Molnar <lajos@google.com> am a69d6f52: Merge "stagefright: add ClockEstimator API and WindowedLinearFitEstimator"

* commit 'a69d6f529239950a8bdf5e4253ea13bb029375cb':
stagefright: add ClockEstimator API and WindowedLinearFitEstimator
aa8b569eb652c22821b93a6e543449a52ad21158 23-Apr-2014 Lajos Molnar <lajos@google.com> stagefright: add ClockEstimator API and WindowedLinearFitEstimator

Change-Id: I74474c385848a8eab2ac0da7c069510378e2b217
lockEstimator.h
1a7be1ec9c769203e6c8e26378de0ab8e2ad493d 29-Apr-2014 Bill Yi <byi@google.com> Merge commit '91820d46b5f3065c2fded3cdf65d305715b33bb1' into HEAD
1b24cf32e02a1372e57b3a2a432bc0adfe496e6d 16-Apr-2014 Mark Salyzyn <salyzyn@google.com> am e80631aa: am 839d11d1: Merge changes I0a744dc7,Id993a70d

* commit 'e80631aa1992ca50af679cd6a018c0ffda7f9b17':
media: use size_t for integer iterator to Vector::size()
media: 64 bit compile issues
e80631aa1992ca50af679cd6a018c0ffda7f9b17 16-Apr-2014 Mark Salyzyn <salyzyn@google.com> am 839d11d1: Merge changes I0a744dc7,Id993a70d

* commit '839d11d1f7be9dff2f06c7d30a9eb39cb6782078':
media: use size_t for integer iterator to Vector::size()
media: 64 bit compile issues
db43b34c3428e480f8c4c66e7e88f4001f37f91e 04-Apr-2014 Mark Salyzyn <salyzyn@google.com> media: 64 bit compile issues

- change internal sized types to use stdint.h
- printf & scanf formats
- size_t or unsigned int for iterators

Change-Id: Id993a70d8bf54c667c5d652b34179a2c727ed446
ileSource.h
dd01ce9c28e37d4556606f481faeec032a1fe04e 11-Apr-2014 Mark Salyzyn <salyzyn@google.com> am 52a861d2: Merge "warnings be gone."

* commit '52a861d2825544fe2eb90f8e5f6351d02ff95536':
warnings be gone.
d411b4ca2945cd8974a3a78199fce94646950128 11-Apr-2014 Andreas Huber <andih@google.com> warnings be gone.

(cherry picked from commit 84333e0475bc911adc16417f4ca327c975cf6c36)

Modified by Mark Salyzyn <salyzyn@google.com> to keep merge conflicts
or errors downstream to a minimum.

Change-Id: Ic3b272f9cbf3155001aabd2f79728f1bc31de613
ediaSource.h
a1df816c0677185534babba6ffc29970b048e52e 04-Apr-2014 Lajos Molnar <lajos@google.com> stagefright: log uri protocols, and opt-in to log full uri

Added property media.stagefright.log-uri. Set it to true or 1 to
log uris by AwesomePlayer.

Added utility function to get uri debug string based on incognito
and log opt-in status.

Change-Id: I5ccc23079ddfb120dd9703a3ed651a162ed5acec
Related-Bug: 6994761
tils.h
bcf08569453dcb42730cda3230d5d375a697005b 05-Apr-2014 Lajos Molnar <lajos@google.com> stagefright: add AString constructor from String8

Change-Id: I85b37b6dee4ea9d5f7f1c1a40ff405a01a0c67f1
oundation/AString.h
cffcba5681be302b1c1b40747a1305f2c2a667c3 04-Apr-2014 Dan Stoza <stoza@google.com> Merge "Remove deprecated BufferQueue constructor"
54b0bc74e051bd7df10cd657b481d88db6cdaa27 31-Mar-2014 Lajos Molnar <lajos@google.com> ACodec: do not signal kWhatShutdownCompleted on codec error

Do not signal kWhatShutdownCompleted when moving to Uninitialized
state due to receiving a codec error.

Do not abort if error happens just before handling a stop request.

Bug: 13675112
Change-Id: I4b14b2e64cff0f71215d2bbc24cd850617dfb67b
Codec.h
1000d426bedb1ec38bdfff98fc8f004b64af13cb 28-Mar-2014 Lajos Molnar <lajos@google.com> am f780d28d: Merge "DO NOT MERGE: Revert "mediaplayer: keep more buffers with the BufferQueue"" into klp-dev

* commit 'f780d28de2e3cf7f6b26b9626321dba75719736e':
DO NOT MERGE: Revert "mediaplayer: keep more buffers with the BufferQueue"
114c1b6553e3d2dc5f2780a76d92bb382234220c 28-Mar-2014 Lajos Molnar <lajos@google.com> DO NOT MERGE: Revert "mediaplayer: keep more buffers with the BufferQueue"

This reverts commit b635b0e66b257ab442e230bca96afd5105cf6829.

Bug: 13655631
Codec.h
2301acc6a9c7a3af4ad01f3d1d0f76f13eca7350 17-Jan-2014 Glenn Kasten <gkasten@google.com> Update comments

Change-Id: I5776313b9b49072cd666d28880f0d07cc73f827b
ileSource.h
d74110cdef2becd4f7fd2334c34c3ca73f56b355 19-Mar-2014 Lajos Molnar <lajos@google.com> stagefright: add include support for MediaCodecList xml parser

One can include full-formed XML files using <Include href=".." />.
For security/simplicity, file names must be in the form of
"media_codecs_.*\.xml"

Change-Id: Id039a4fd0ade390224485fcf5ecc1d107b2bdb9a
ediaCodecList.h
9cde517297827156de1c3b2ff54e272a5d4ae7c3 19-Mar-2014 Lajos Molnar <lajos@google.com> am b635b0e6: mediaplayer: keep more buffers with the BufferQueue

* commit 'b635b0e66b257ab442e230bca96afd5105cf6829':
mediaplayer: keep more buffers with the BufferQueue
4647dba9afd0b365e47b9493a680d71b59a361e6 19-Mar-2014 Lajos Molnar <lajos@google.com> am b635b0e6: mediaplayer: keep more buffers with the BufferQueue

* commit 'b635b0e66b257ab442e230bca96afd5105cf6829':
mediaplayer: keep more buffers with the BufferQueue
b635b0e66b257ab442e230bca96afd5105cf6829 14-Feb-2014 Lajos Molnar <lajos@google.com> mediaplayer: keep more buffers with the BufferQueue

Change OMX buffer allocation policy to allocate
nBufferCountMin + what is required for the BQ.

For the BQ, try to allocate 2 additional buffers than
the minimum undequeued count.

Also account for the fact that BQ may return one less
than the actual minimum undequeued count.

In most cases the resulting number of buffers ends up
being the same as with the previous policy, but we
keep more buffers with the BQ.

Change-Id: I826db8bf7dd333b620299dba60bf1b81b228275d
Bug: 13170236
Codec.h
b1120b65c328cf6e35c0494d7d61addcbdc16821 14-Mar-2014 Lajos Molnar <lajos@google.com> Merge changes I1455bfc6,I90c7e34b,I06e001df

* changes:
NuPlayer: use MediaCodec instead of ACodec
MediaCodec: add getInputFormat() method
Revert "NuPlayer: Use a software renderer when using software codecs"
7c47cafa5be623f1db483483ac27f714c54dc1cc 14-Mar-2014 Chong Zhang <chz@google.com> am c69bc40a: Merge "Cap pts gap between adjacent frames to specified value" into klp-dev

* commit 'c69bc40a347c411751cb082b3eb4a82d976a68ec':
Cap pts gap between adjacent frames to specified value
a671f943b72155460f0c94cdd92d829cb059b571 13-Mar-2014 Chong Zhang <chz@google.com> am c69bc40a: Merge "Cap pts gap between adjacent frames to specified value" into klp-dev

* commit 'c69bc40a347c411751cb082b3eb4a82d976a68ec':
Cap pts gap between adjacent frames to specified value
5205977929c8a63d3bba026c6bd7b4cc1e236627 12-Mar-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Bug: 13415624
Change-Id: I1a824d09ce582ee54753683d30cdc23813c13b6b
urfaceMediaSource.h
e257e5ebefdd50f808ee3b4d1596db261c9b62dd 14-Feb-2014 Lajos Molnar <lajos@google.com> mediaplayer: keep more buffers with the BufferQueue

Change OMX buffer allocation policy to allocate
nBufferCountMin + what is required for the BQ.

For the BQ, try to allocate 2 additional buffers than
the minimum undequeued count.

Also account for the fact that BQ may return one less
than the actual minimum undequeued count.

In most cases the resulting number of buffers ends up
being the same as with the previous policy, but we
keep more buffers with the BQ.

Change-Id: I826db8bf7dd333b620299dba60bf1b81b228275d
Bug: 12080418
Codec.h
8bd4d16aa5636e98522c07ae31236420788aa749 11-Jan-2014 Chong Zhang <chz@google.com> Cap pts gap between adjacent frames to specified value

- In the scenario of cast mirroring, encoding could be suspended
for prolonged periods. Limiting the pts gap to workaround the
problem where encoder's rate control logic produces huge frames
after a long period of suspension.

- Repeat last frame a couple more times to get better quality
on static scenes.

- Fix the timestamp on repeat frames (it was not set)

Bug: 11971963
Change-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7
(cherry picked from commit 94ee4b708acfa941581160b267afb79192b1d816)
Codec.h
3a0fb34ed9fcb665e71cc055abde520af393c493 11-Mar-2014 Jesse Hall <jessehall@google.com> Merge "Add empty onSidebandChanged callbacks to BufferQueue::ConsumerListeners"
e0381245dff04aa823a59aa8b85869eddab0f39f 25-Feb-2014 Lajos Molnar <lajos@google.com> MediaCodec: add getInputFormat() method

Additional input-port format item:

int32: "adaptive-playback"
video decoders only
whether codec is configured for adaptive playback. In this case, if
codec has max-width/height limits, those limits are also exposed
(int32: "max-width", "max-height")

Also, getInput/OutputFormat() is now callable in CONFIGURED and
STARTING states, although output format may be missing CSD fields
until INFO_OUTPUT_FORMAT_CHANGED message.

Includes missing OMX support for MP3 software decoder.

Bug: 11785204
Change-Id: I90c7e34ba81c7b81c43641599f3f496e838958c6
Codec.h
ediaCodec.h
8dcc81a2fdb35905347cf7ef46d198afa7ae79cd 04-Mar-2014 Jesse Hall <jessehall@google.com> Add empty onSidebandChanged callbacks to BufferQueue::ConsumerListeners

Change-Id: I94384aefd47b3a581cbdc3905ba9fdbc88d3d06c
urfaceMediaSource.h
8e4b38470a367aec409e905aed392397e6b85bf4 07-Mar-2014 Lajos Molnar <lajos@google.com> am 2613347d: Merge "Added support to query ACodec whether adaptive playback is enabled." into klp-dev

* commit '2613347d74c3f35bc6fda5df1c29c1119c22d432':
Added support to query ACodec whether adaptive playback is enabled.
72d09f6280cd701e48922a86df0d2e5f4e61cd8e 07-Mar-2014 Lajos Molnar <lajos@google.com> am 2613347d: Merge "Added support to query ACodec whether adaptive playback is enabled." into klp-dev

* commit '2613347d74c3f35bc6fda5df1c29c1119c22d432':
Added support to query ACodec whether adaptive playback is enabled.
2613347d74c3f35bc6fda5df1c29c1119c22d432 07-Mar-2014 Lajos Molnar <lajos@google.com> Merge "Added support to query ACodec whether adaptive playback is enabled." into klp-dev
933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c 24-Jan-2014 Robert Shih <robertshih@google.com> Added support to query ACodec whether adaptive playback is enabled.

Bug: 11854054
Change-Id: I6b0308aa8550c643706959277e46dad586c37297
Codec.h
343947abc8b7c126f966fd32a0b18bff6c2cecd1 08-Feb-2014 Robert Shih <robertshih@google.com> Stagefright: added WebM muxer.

Change-Id: I50bbf9c6f089b205d5ecef1371bfdd2028b3b358
ediaMuxer.h
f590f948e6c0fe3c54008dd7802fd513f127792d 06-Dec-2013 Eric Laurent <elaurent@google.com> stagefright: do not offload LD-AAC decoding

For now, do not offload LD and ELD AAC decoding because there
is no way to know if it is supported by the audio DSP implementation.
The longer term fix will be to have mapMimeToAudioFormat() use the
audio object type in track metadata to refine the AAC format and the
audio HAL list supported AAC profiles.

Bug: 11697128.

Change-Id: Iaa88ecf3f4ae42ad48c1b42a9b007dd80eb88147
etaData.h
d0115d8c4db2f337030dea706bc0a434c4a03ed6 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Bug: 12823955.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioPlayer.h
b4350af65dd66ed57f1ff79b1b426507f0e73b7b 04-Mar-2014 Lajos Molnar <lajos@google.com> Merge "Opus Matroska support in OpenMax"
bf927f8ec7979f2b64331c2b2f12a6a5dba05bca 29-Jan-2014 Vignesh Venkatasubramanian <vigneshv@google.com> Opus Matroska support in OpenMax

Adding Openmax component for libopus software decoder. This can
decode opus audio files embedded in matroska containers.

Change-Id: I7e0691cfc6d719c4e927b9efbd05a3143be49abc
Note: This CL is part of adding Opus support to Android.
ediaDefs.h
etaData.h
dc6ac201032d0f6ad0c8149ae2f009ec38693025 22-Feb-2014 Chong Zhang <chz@google.com> Merge "support for time lapse/slow motion when using SURFACE source"
26cee964ab4e0a2bd6ae9ad199ba78ea9634421c 15-Feb-2014 Ruben Brunk <rubenbrunk@google.com> Handle recording failure more gracefully.

Bug: 13027666
Change-Id: Iec8239bfcd293c8f466b3780e69883b97f387949
ameraSource.h
2c9c8cba8562cc3a27532e4cd348912cc78d8d98 11-Feb-2014 Chong Zhang <chz@google.com> support for time lapse/slow motion when using SURFACE source

Bug: 13032650
Change-Id: Iecbadf9f29c8c49353416fc467fb3acdde279595
Codec.h
4ef5d8f038588080b73790a46a45d710a6a1d977 11-Feb-2014 Andreas Huber <andih@google.com> Merge "warnings be gone."
4bbfff2dbf3968c267c3b2ea9f8912a38372a9da 10-Feb-2014 Andreas Huber <andih@google.com> Support "data:" URIs again in mediaplayer...

Change-Id: I6dac35c7e606f738a60f985f6dca977dc92c82a4
related-to-bug: 12957757
ataURISource.h
84333e0475bc911adc16417f4ca327c975cf6c36 08-Feb-2014 Andreas Huber <andih@google.com> warnings be gone.

Change-Id: Ie3bae3f037730e316d7fca12e7a3527973f752ef
ediaSource.h
72cecca17d735db6532c45f0a7e10c47ee6f065a 26-Dec-2013 Chong Zhang <chz@google.com> Change StagefrightRecorder to use MediaCodec

Bug: 12305192
Change-Id: I72d7cb571be5bd348b58ad650f3269d24c15d350
Codec.h
ediaCodecSource.h
412d4744efae64083e4f99a664e3efaba031af48 05-Feb-2014 Andreas Huber <andih@google.com> Merge "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code"
1b86fe063badb5f28c467ade39be0f4008688947 29-Jan-2014 Andreas Huber <andih@google.com> FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code

Change-Id: I9f74a86e70422187c9cf0ca1318a29019700192d
ataSource.h
ediaHTTP.h
uMediaExtractor.h
imedtext/TimedTextDriver.h
3627c74343617fa70ebfd40b46712c234888f456 03-Feb-2014 Robert Shih <robertshih@google.com> Merge "Added support to query ACodec whether adaptive playback is enabled."
dd432ce03eccf280d83672f95076b6fbd561047f 28-Oct-2013 Changwan Ryu <changwan@google.com> [DO NOT MERGE] Support TS + AC3 for ATSC standard

Change-Id: I141667f3f54b242bafdf0ab9db86852c56f49ffa
MXCodec.h
9090338367bd9f3fc5678032332a44d457a4a2fe 28-Oct-2013 Changwan Ryu <changwan@google.com> [DO NOT MERGE] Support AC3 in stagefright

Change-Id: I12016b424bd069413bd6e380ff11484e175e05f3
Codec.h
ediaDefs.h
94ee4b708acfa941581160b267afb79192b1d816 11-Jan-2014 Chong Zhang <chz@google.com> Cap pts gap between adjacent frames to specified value

- In the scenario of cast mirroring, encoding could be suspended
for prolonged periods. Limiting the pts gap to workaround the
problem where encoder's rate control logic produces huge frames
after a long period of suspension.

- Repeat last frame a couple more times to get better quality
on static scenes.

- Fix the timestamp on repeat frames (it was not set)

Bug: 11971963
Change-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7
Codec.h
75832930a28fd70f6fc683ed966477ceea810668 24-Jan-2014 Robert Shih <robertshih@google.com> Added support to query ACodec whether adaptive playback is enabled.

Change-Id: I6b0308aa8550c643706959277e46dad586c37297
Codec.h
9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec 17-Jan-2014 Marco Nelissen <marcone@google.com> am 6146f60c: am 319c5640: am 07a017d3: Merge "Added support for ID3v2 meta data in 3gp files"

* commit '6146f60c87a8a9c66036325c66dea826d2e98f6f':
Added support for ID3v2 meta data in 3gp files
319c5640ca2e5838e35faaddc47df00174dac1b5 17-Jan-2014 Marco Nelissen <marcone@google.com> am 07a017d3: Merge "Added support for ID3v2 meta data in 3gp files"

* commit '07a017d3ff9cb36e47649a9de28e469415eb8103':
Added support for ID3v2 meta data in 3gp files
328abde67f57c026ac44e927f9244c40832499c8 27-Jan-2011 Oscar Rydhé <oscar.rydhe@sonyericsson.com> Added support for ID3v2 meta data in 3gp files

Added support for parsing ID3v2 meta data from
the ID32 chunk in 3gp files. The priority will be
3gpp -> ID3v2 -> iTunes per field.

Change-Id: I0282ecab58e3e5fa6bd738078d562c8bb8ce00ed
etaData.h
e6144d7a558c74e508a5c103cdc462c3cd7cf508 21-Dec-2013 Eric Laurent <elaurent@google.com> am 42d89e5d: am b904d53f: am 8115f4b2: Merge "stagefright: do not offload LD-AAC decoding"

* commit '42d89e5de5f401c7e81e1961061d07ae490c9d29':
stagefright: do not offload LD-AAC decoding
b904d53ffaaafddb2f9b6f469b73d2a3bec3dd0d 21-Dec-2013 Eric Laurent <elaurent@google.com> am 8115f4b2: Merge "stagefright: do not offload LD-AAC decoding"

* commit '8115f4b206dbd04c620f062feb3c7785e2732ab3':
stagefright: do not offload LD-AAC decoding
db170bb1cae145d07efc803a3c208963de0c6087 06-Dec-2013 Eric Laurent <elaurent@google.com> stagefright: do not offload LD-AAC decoding

For now, do not offload LD and ELD AAC decoding because there
is no way to know if it is supported by the audio DSP implementation.
The longer term fix will be to have mapMimeToAudioFormat() use the
audio object type in track metadata to refine the AAC format and the
audio HAL list supported AAC profiles.

Change-Id: Iaa88ecf3f4ae42ad48c1b42a9b007dd80eb88147
etaData.h
51d166ec7985949fa69262f213a4162708ebe81e 17-Dec-2013 Eric Laurent <elaurent@google.com> am 9060d498: Merge "update offloaded audio track sampling rate"

* commit '9060d498be0c54d3caf84e2dbf1ba62516b3e76e':
update offloaded audio track sampling rate
5e49afd05566820517747b9a8071c99ec0918328 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioPlayer.h
7e3c19fbead7af39b3c0ca3d170406a98f97dbd0 26-Nov-2013 Robert Shih <robertshih@google.com> Merge "Avoid the call to CameraSourceTimeLapse::trySettingVideoSize if initialization failed in the parent class ctor CameraSource::CameraSource."
9bb976e1c78048081cf9df4d8a1db67311413e5b 22-Nov-2013 Robert Shih <robertshih@google.com> Avoid the call to CameraSourceTimeLapse::trySettingVideoSize if initialization
failed in the parent class ctor CameraSource::CameraSource.

Bug: 11636771
Change-Id: I5e6bffc1ebeeb1c2b84d6ed2049b2b3676ac046a
ameraSource.h
6f59db12a64f4496866952a251122ccb77a36c6b 27-Jul-2013 Eric Laurent <elaurent@google.com> update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88
udioPlayer.h
704287d1b9427cc39e7be2fc44b0ae21840831e4 19-Nov-2013 Lajos Molnar <lajos@google.com> am 72afcd5d: am 5ea5b020: Merge "WA: Queue extra buffers on output port during reconfig if input EOS-ed" into klp-dev

* commit '72afcd5da296b1f5fb38ef037054855aaea88054':
WA: Queue extra buffers on output port during reconfig if input EOS-ed
5ea5b020b311a68f513d4a40aca5551abc6a07d8 19-Nov-2013 Lajos Molnar <lajos@google.com> Merge "WA: Queue extra buffers on output port during reconfig if input EOS-ed" into klp-dev
b4213a1252c23115f3fac77101adb33a9c6b9423 15-Nov-2013 Eric Laurent <elaurent@google.com> am 576e89b5: am 7dae71d6: Merge "AwesomePlayer: correct stream type for offload" into klp-dev

* commit '576e89b523d7705545032edc67d98d9ab1dedbd2':
AwesomePlayer: correct stream type for offload
22612345ae97648d5b6db43cc1aa30aad77f7bba 15-Nov-2013 Eric Laurent <elaurent@google.com> AwesomePlayer: correct stream type for offload

canOffloadStream() function in stagefright utils forces the
stream type to AUDIO_STREAM_MUSIC when querying the audio policy
manager if a particular track is offloadable or not.
This causes MP3 ringtones to be offloaded which is not a validated use case.

The fix consists in using the actual stream type read from the AudioSink.

Bug: 11410937.
Change-Id: I44b8e033a8e785a79cdc291b142f80b5580bdc4d
tils.h
4dd0a8a3d66c2853faf2834565b3c5df4f68734d 07-Nov-2013 Lajos Molnar <lajos@google.com> WA: Queue extra buffers on output port during reconfig if input EOS-ed

Some codecs may return input buffers before having them processed.
This causes a halt if we already signaled an EOS on the input
port. For now keep submitting output meta buffers one at a time if
the input EOS-ed, but the output not yet.

Normally, we submit an output buffer for each input buffer that is
with the component (waiting to be processed).

Change-Id: I8a1251bfb504f40f1e4085a1e220bf9a4d0b05d9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11433909
Codec.h
5595f6de606f51ec61fbf40a269b52312507aded 13-Nov-2013 Marco Nelissen <marcone@google.com> Merge "Only initialize sniffers once, don't hold mutex while sniffing" into klp-dev
d725d23ae67045c22003d419d5c31ca1d551da89 12-Nov-2013 Andreas Huber <andih@google.com> am db50cb5f: am caee8747: Merge "configure bitrate and bitrate mode at encoder initialization for VP8/9" into klp-dev

* commit 'db50cb5f7ae6d2beacd8a4fa4a8991035b3c88e7':
configure bitrate and bitrate mode at encoder initialization for VP8/9
41e7ae8f7f1ec93f8473142d1f3bfe07b22c5c51 12-Nov-2013 Lajos Molnar <lajos@google.com> am cc5aeced: am e100b813: Merge "StageFrightRecorder: do not use meta-data mode for software encoders" into klp-dev

* commit 'cc5aeced30609326c7495eca1286163af3933fe1':
StageFrightRecorder: do not use meta-data mode for software encoders
caee8747b7df3b1119426594d4ba1c0e300ff6db 12-Nov-2013 Andreas Huber <andih@google.com> Merge "configure bitrate and bitrate mode at encoder initialization for VP8/9" into klp-dev
e3067743d6ef2c6c1aac4361b6ed65e6d7bbe3e3 06-Nov-2013 Marco Nelissen <marcone@google.com> Only initialize sniffers once, don't hold mutex while sniffing

b/11482896

Change-Id: Ie036554b4c9e7e8863cb07901d414ea457f1b2f1
(cherry picked from commit 377fce69297a0e5b7c3b266a7602b17146785635)
ataSource.h
377fce69297a0e5b7c3b266a7602b17146785635 06-Nov-2013 Marco Nelissen <marcone@google.com> Only initialize sniffers once, don't hold mutex while sniffing

b/11482896

Change-Id: Ie036554b4c9e7e8863cb07901d414ea457f1b2f1
ataSource.h
d3c079ae9859011d118f94616d0069c2987013ed 28-Oct-2013 Changwan Ryu <changwan@google.com> Support TS + AC3 for ATSC standard

Change-Id: I141667f3f54b242bafdf0ab9db86852c56f49ffa
MXCodec.h
97358c3e1adaf4a744cad78891a16d12e3e9c88e 28-Oct-2013 Changwan Ryu <changwan@google.com> Support AC3 in stagefright

Change-Id: I12016b424bd069413bd6e380ff11484e175e05f3
Codec.h
ediaDefs.h
89b31a3f670d8bec87bed50aaad9bcd8edec66b6 05-Nov-2013 Andreas Huber <andih@google.com> configure bitrate and bitrate mode at encoder initialization for VP8/9

Change-Id: I0389264db4102cabb0c6fcb4ca223d85cc9e86fb
related-to-bug: 11536167
Codec.h
9c7f845780d62ea09469a8dac7117cc01adfea5c 30-Oct-2013 Lajos Molnar <lajos@google.com> StageFrightRecorder: do not use meta-data mode for software encoders

Camera HAL v1 uses vendor-specific camera-source meta-data mode, but
software encoders use generic gralloc-source mode, so they are not
compatible.

Change-Id: I0d1bab8eada26dcb70c97b1eec83f06d1f331239
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11446505
ameraSourceTimeLapse.h
a6cdabf38b29ee98bdb3e874b4e2978dbc409624 18-Sep-2013 Marco Nelissen <marcone@google.com> Fully reset SkipCutBuffer state in clear()

b/8543366

Change-Id: I1b90d56ba3d672fd12b4ee91fa9ba24c665126ed
kipCutBuffer.h
7f9551f75eedb3e4e1fe8feaaba48d8080635fc4 10-Sep-2013 Zhijun He <zhijunhe@google.com> MediaMuxer: Hook up setLocation method

This method is needed when mediamuxer is used for camera video recording.

Bug: 10594784
Change-Id: I9bd006a07e5e2ac7019849e3f4f7cf7b8356d669
ediaMuxer.h
75c16dde986e16ac5fd4d34b06b0cc6a90679866 15-Aug-2013 Andreas Huber <andih@google.com> Merge "You can now opt-in to having the video decoder push blank buffers to the" into klp-dev
0167414e261f88a96b5e4bf6cb592e6ca11e5a95 14-Aug-2013 Andreas Huber <andih@google.com> You can now opt-in to having the video decoder push blank buffers to the

surface on the transition from executing->idle by specifying the key
"push-blank-buffers-on-shutdown" with a value of 1 in the call to configure.

Change-Id: I1155fccf89f18e717728c985e590651597595515
Codec.h
7f76a81b18ade3158ae27015637074ce08e837b2 14-Aug-2013 Lajos Molnar <lajos@google.com> Merge "Check adaptive playback support via CodecCapabilities" into klp-dev
2ee14000a38683220fb250d9e7300e1d71ccdaa0 07-Aug-2013 Lajos Molnar <lajos@google.com> Check adaptive playback support via CodecCapabilities

Added flags field to CodecCapabilities, so that applications
can query whether codecs support various features. For now
added one video-decoder feature:

kFlagSupportsAdaptivePlayback

Media playback applications can query it to see if a codec
supports seamless resolution changes, such as by supporting
dynamic output buffers.

Signed-off-by: Lajos Molnar <lajos@google.com>
Change-Id: I09da46e8ab6b8645fa2749e33128e49eda2e865b
Related-to-bug: 7093648
ediaCodecList.h
MXCodec.h
a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58 31-Jul-2013 Andreas Huber <andih@google.com> Optionally repeat the previously submitted frame to the encoder

if no new frame has been delivered by surface flinger within the timeout
interval.

Change-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde
Codec.h
2f583c0ac819a7bbd1228d7b8c3857c7e6a98a91 07-Aug-2013 Jeff Tinker <jtinker@google.com> Merge "Adds a drm resource busy error, removes some deprecated errors"
deeef54487a34034dc0cfaab20b20d557224c07c 02-Aug-2013 Mathias Agopian <mathias@google.com> separte producer and consumer interfaces

Bug: 9265647
Change-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c
urfaceMediaSource.h
362552a53523c46679e8b3cbb83b39d7ae769ff7 03-Aug-2013 Jeff Tinker <jtinker@google.com> Adds a drm resource busy error, removes some deprecated errors

Change-Id: Id719fb6df9c9d955ac24803082d08f2a4a5bc766
related-to-bug: 9695816
ediaErrors.h
30873bfd08255e2c4e98ff5732ffff2838772617 31-Jul-2013 Andreas Huber <andih@google.com> Unregister any handlers still registered on now "dead" ALoopers

upon the death of an ALooper.

Change-Id: I64c0835b8db04486204f3d0fa7173ee53708a116
related-to-bug: 10106648
oundation/ALooperRoster.h
94ea60f975c3eb7ce6d2a4430538a42a5fc3babd 14-May-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> stagefright: offload playback support

Offloading of compressed audio decoding to audio DSP
is implemented for audio only, non streamed content.
when the datasource is

AudioPlayer:
- Create an offloaded sink when playing a compressed
source
- Send metadata to audio HAL
- Return sink start error to AwesomePlayer so that a
new player for PCM audio can be created in case of problem.
- Forward stream end and tear down callback events to AwesomePlayer
- Stop the sink and wait for stream end callback when EOS is reached.
- Pause and restart the sink if needed before flushing when seeking
(otherwise flush is a no op).
- For current media time, directly query the render position from the
sink and offset by the start position (seek to time)

AwesomePlayer:

- When initializing the audio decoder, check with audio policy manager
if offloading is supported. If yes, create the software decoder in
case a reconfiguration is needed but connect the audio track directly
to the AudioPlayer.
- In case of error when starting the AudioPlayer, reconnect the software
decoder (OMXSource) and recreate a PCM AudioPlayer.
- Handle AudioPlayer tear down event by detroying and recreating the
AudioPlayer to allow transitions between situations were offloading
is supported or not.
- Force tear down of offloaded AudioPlayer when paused for a certain time:
This will close the sink and allow the DSP to power down.

Utils:
- Added helper methods:
- send meta data to audio ia sink setParameters
- query audio policy manager if offloading is supported for a
given audio content

Change-Id: I115842ce424f947b966d45e253a74d3fd5df9aae
Signed-off-by: Eric Laurent <elaurent@google.com>
udioPlayer.h
8060060217ff16cd67c8f6a15c649f44c343acf0 18-Jul-2013 Andreas Huber <andih@google.com> ANetworkSession and ParsedMessage are now part of stagefright foundation.

Also fixes some bugs in ParseMessage and adds "WebSocket" mode to
ANetworkSession, something that's opt-in and should not affect existing clients
of the API.

Change-Id: I86d5748e0d818231d85d3590d86c2b41d4f8b1f1
oundation/ANetworkSession.h
oundation/ParsedMessage.h
ad3af3305f024bcbbd55c894a4995e449498e1ba 25-Mar-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Public API changes for audio offload support.

NOTE: this does _not_ include all private member variables added
to classes as part of offload support. Only public/protected functions
and stubs functions/variables needed to make the changes buildable.

- isOffloadSupported() added to audio policy service
A stub implementation is required to build, this always returns false
- setParameters() added to IAudioTrack
A stub implementation is required to build, this always returns
INVALID_OPERATION

- CBlk flag for stream end

- Change AudioSystem::getRenderPosition() to take an audio_output_t
so caller can specify which output to query

- Add AudioSystem::isOffloadSupported()
This is fully implemented down to the AudioFlinger function
AudioPolicyServer::isOffloadSupported() which is just a stub
that always returns false.

- Add EVENT_STREAM_END to AudioTrack interface.
STREAM_END is used to signal when the hardware has actually finished
playing all the data it was sent.

- Add event type enumeration to media player interface AudioSink callbacks
so that the same callback can be used to handle multiple types of
event. For offloaded tracks we also have to handle STREAM_END and
TEAR_DOWN events

- Pass audio_offload_info_t to various functions used for opening outputs,
tracks and audio players. This passes additional information about the
compressed stream down to the HAL when using offload.
For publicly-available APIs this is an optional parameter (for some of
the internal and low-level APIs around the HAL interface it is mandatory)

- Add getParameters() and setParameters() API to AudioTrack
Currently dummy implementations.

- Change AudioPlayer contructor so that it takes a set of bitflags defining what
options are required. This replaces the original bool which only specified
whether to use deep buffering.

- Changes to StageFright class definition related to handling tearing-down of
an offloaded track when we need to switch back to software decode

- Define new StageFright utility functions used for offloaded tracks
Currently dummy implementations.

- AudioFlinger changes to use extended audio_config_t.
Fills in audio_offload_info_t member if this info is passed in when
opening an output.

- libvideoeditor changes required to add the new event type parameter
to AudioSink callback functions

- libmediaplayerservice changes required to add the new event type parameter
to AudioSink callback functions

Change-Id: I3ab41138aa1083d81fe83b886a9b1021ec7320f1
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
udioPlayer.h
tils.h
3b6d6b1b95b9aefc4b2c78808ad7c873f1e8f0f5 26-Jun-2013 Lajos Molnar <lajos@google.com> Merge "Adds VP9 decoding support for stagefright."
94705aff3c9eef58cbb72ec6fe5d2dcfd9481646 24-Jun-2013 hkuang <hkuang@google.com> Adds VP9 decoding support for stagefright.

Also change the VP8 encoder role name from
video_encoder.vpx to video_encoder.vp8 for
future VP9 encoder support.


Requires the change in frameworks/native and media_codecs.xml
corresponding to the device.


VP9 decoding test will be added to cts repo later.
ediaDefs.h
054e7347cc60ad4b9dd2e8f456406f122f9f5879 03-May-2013 Lajos Molnar <lajos@google.com> stagefright: support for video decoder metadata mode

Change-Id: Id360f29236798163f9f3a82135f601083a8a5058
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 7093648
Codec.h
e2ffd5b583da9d30d96710b0e8879e90b2b51d30 13-Jun-2013 Glenn Kasten <gkasten@google.com> AudioRecord must be used as sp<> only

Bug: 9423855
Change-Id: I78ba8228c60dff11fb466156bb632c5dda45cdaf
udioSource.h
63e9f73c2db01fec30246adbcfea2880671e2108 12-Jun-2013 Lajos Molnar <lajos@google.com> am f8af99b7: am 0662f7b6: Merge "stagefright: synchronously change nativewindow crop" into jb-mr2-dev

* commit 'f8af99b7c10f1441d9a52676724b168f20752270':
stagefright: synchronously change nativewindow crop
577db6d42b8d83b3578c7e56b1391bdaca9cb705 12-Jun-2013 Lajos Molnar <lajos@google.com> stagefright: synchronously change nativewindow crop

Only change the nativewindow crop before queuing frames
with the new crop.

Change-Id: Icd8a84c82e66a8be3d6bc1675c777b1de8dc39b9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 9395753
Codec.h
2799d743ee2ae5a25fe869a7f9c052acc029559f 30-May-2013 Glenn Kasten <gkasten@google.com> Use sp<AudioTrack> instead of raw AudioTrack *

This change prepares for the new implementation of AudioTrack client, which
will require clients to use only sp<AudioTrack>, not raw AudioTrack *.
A raw delete will cause a race condition during AudioTrack destruction.

AudioTrack was made a RefBase by commit b68a91a70bc8d0d18e7404e14443d4e4020b3635
on 2011/11/15, when it was needed by OpenSL ES (for the callback protector).
At that time, the only other client that was also converted from
AudioTrack * to sp<AudioTrack> was android.media.AudioTrack JNI in
project frameworks/base (file android_media_AudioTrack.cpp).

Details:
* Use .clear() instead of delete followed by = NULL.
* ALOG %p need .get().
* sp<> don't need to be listed in constructor initializer, if initially 0.
* Use == 0 for sp<> vs == NULL for raw pointers.
* Use if (sp != 0) instead of if (raw).

Change-Id: Ic7cad25795d6e862e112abdc227b6d33afdfce17
udioPlayer.h
c3a73bb6446df8c1387a2b3ff9357190f515eccb 30-May-2013 Lajos Molnar <lajos@google.com> am 1cd68527: am 41688da2: Merge "MediaMuxer: Remove SAMPLE_FLAG_SYNC flag" into jb-mr2-dev

* commit '1cd68527a6c4cc92608dfe8a8c6ba51e5e2c4fc2':
MediaMuxer: Remove SAMPLE_FLAG_SYNC flag
6f505a4c0b91d88d2759fbd7e17d91f3ed715165 28-May-2013 Lajos Molnar <lajos@google.com> MediaMuxer: Remove SAMPLE_FLAG_SYNC flag

MediaMuxer.writeSampleData() uses MediaCodec.BufferInfo
objects to specify the flags, so use directly the MediaCodec
flags. This is more intuitive and avoids users of the
MediaMuxer API having to create translations between
MediaMuxer's and MediaCodec's flag constants.

Change-Id: I18e12a6839ffb2c63da62516a4dc4c94e8bb3d17
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 9169479
ediaMuxer.h
d030447b617105b31bf3013e5e4b39d422b53b77 15-May-2013 Lajos Molnar <lajos@google.com> stagefright: BufferProducer updates

Update BufferQueue and ConsumerBase users to new BufferQueue
API, to allow BufferQueue slots to be reused. Buffer consumers
generally now need to track the unique frameNumber belonging to
each frame acquired if they are using BufferQueue directly.
Otherwise, they can simply track the graphicBuffer.

Change-Id: I30ee3158cf40fb10bbd085241646d5f1128ee480
Signed-off-by: Lajos Molnar <lajos@google.com>
Related-to-bug: 7093648
urfaceMediaSource.h
308bcaa44e578279e61be32b572fdb0b11b1e4c7 04-May-2013 Chong Zhang <chz@google.com> wifi-display: add support for metadata mode on encoder output

pass buffer_handle_t from encoder output to HDCP encryptor input

Bug: 8968123

Change-Id: Iea8007ce568641e213fd2e3cf6947a6f7a95746c
Codec.h
cd4ac42ed448f1cb286ca4c3c7ea64621adf9d42 01-May-2013 Andreas Huber <andih@google.com> Support MediaCodec::getOutputFormat for encoders

codec specific data is provided as part of the MediaFormat if available.

Change-Id: I5a79c936e2411fe66ebc694791071faefc33941e
related-to-bug: 8616651
ediaCodec.h
e96ee699aca0f711d41e6c0833e5de2341c4a36d 01-May-2013 Andreas Huber <andih@google.com> Support MediaCodec::getOutputFormat for encoders

codec specific data is provided as part of the MediaFormat if available.

Change-Id: I5a79c936e2411fe66ebc694791071faefc33941e
related-to-bug: 8616651
ediaCodec.h
6e96f5927bd2234606ad3fcef1c1dc3029e66347 22-Apr-2013 Andreas Huber <andih@google.com> Merge "3rd time's the charm, right? Fix another instance where MediaCodec would" into jb-mr2-dev
4613b7e38b1830535cbf00e962afdfa5fe1308ba 22-Apr-2013 Andreas Huber <andih@google.com> Merge "3rd time's the charm, right? Fix another instance where MediaCodec would" into jb-mr2-dev
6b5d15099579c179d8e7531bb5abfb272614513a 19-Apr-2013 Andreas Huber <andih@google.com> 3rd time's the charm, right? Fix another instance where MediaCodec would

not return from a stop() or release() call if mediaserver dies at just the right
moment.

Change-Id: I7728f8df82d62602d4d272f8023aa88678dd7d95
related-to-bug: 8397711
ediaCodec.h
aa7f97bb9c70176245ffb7ed0ce52bee6c1a57d7 19-Apr-2013 Andreas Huber <andih@google.com> 3rd time's the charm, right? Fix another instance where MediaCodec would

not return from a stop() or release() call if mediaserver dies at just the right
moment.

Change-Id: I7728f8df82d62602d4d272f8023aa88678dd7d95
related-to-bug: 8397711
ediaCodec.h
0ae2001f40587556e2f5ed56f791292fb5e9a329 19-Apr-2013 Andreas Huber <andih@google.com> A flush of a video decoder connected to a native window must reclaim

output buffers already queued for rendering before considering a flush
completed. Otherwise the decoder may not have enough output buffers to
continue decoding after the discontinuity and we'll never dequeue more
from the native window.

Change-Id: I42e275dc336568e180081c6d7c0dc05fc9637c79
related-to-bug: 8578467
Codec.h
7e7013392e302a28364df1dcee79b82ad90978b4 19-Apr-2013 Andreas Huber <andih@google.com> A flush of a video decoder connected to a native window must reclaim

output buffers already queued for rendering before considering a flush
completed. Otherwise the decoder may not have enough output buffers to
continue decoding after the discontinuity and we'll never dequeue more
from the native window.

Change-Id: I42e275dc336568e180081c6d7c0dc05fc9637c79
related-to-bug: 8578467
Codec.h
b87d5cd72cc2ce6a85899b7a06d881fad4c39d77 18-Apr-2013 Jeff Tinker <jtinker@google.com> Add new error codes for DRM to improve error reporting

bug: 8621516
Change-Id: I9a06c9ea5bfde924906d3876a417b9451b6abde8
ediaErrors.h
45ae3d644289f656cebf7aded0783efca0342dd3 18-Apr-2013 Jeff Tinker <jtinker@google.com> Add new error codes for DRM to improve error reporting

bug: 8621516
Change-Id: I9a06c9ea5bfde924906d3876a417b9451b6abde8
ediaErrors.h
cb7032acc963e447adbffcf95ee297643d64e0d7 15-Apr-2013 ztenghui <ztenghui@google.com> Merge "MediaMuxer prefer not to use the MPEG4Writer in real time recording mode." into jb-mr2-dev
8f1efee1c17e997af5ea3c46c62b3ae106b18264 15-Apr-2013 ztenghui <ztenghui@google.com> Merge "MediaMuxer prefer not to use the MPEG4Writer in real time recording mode." into jb-mr2-dev
e756d9753c7cffe2e9731a31fa98a3e8f37151c9 12-Apr-2013 ztenghui <ztenghui@google.com> MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.

By default, MPEG4Write will keep running in real time recording mode.

bug:8598944

Change-Id: Idf7fbd4e0feb7763660a74279ba8817b79098aaf
PEG4Writer.h
etaData.h
de05c8eab188e98798f2b9c3dfac53dbc18ef584 12-Apr-2013 ztenghui <ztenghui@google.com> MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.

By default, MPEG4Write will keep running in real time recording mode.

bug:8598944

Change-Id: Idf7fbd4e0feb7763660a74279ba8817b79098aaf
PEG4Writer.h
etaData.h
6610a7d621c634fe059b855ca7eb3f58fb8d0757 12-Apr-2013 Andreas Huber <andih@google.com> ACodec now signals an error if the mediaserver died while it is in

anything other than "uninitialized" state.

Change-Id: Id133d897ac65b455b34e5de17ff9c39b47285630
related-to-bug: 8397711
Codec.h
ac0230da14a3d223c2144b165a3a163e8519d239 12-Apr-2013 Andreas Huber <andih@google.com> ACodec now signals an error if the mediaserver died while it is in

anything other than "uninitialized" state.

Change-Id: Id133d897ac65b455b34e5de17ff9c39b47285630
related-to-bug: 8397711
Codec.h
5544c66ba0aa789a997b376df503a5ffae425dc7 08-Apr-2013 Marco Nelissen <marcone@google.com> Add support for common encryption

b/7465749

Change-Id: I5403b74a5ae428ad28b382863a09daafc400b137
ataSource.h
etaData.h
uMediaExtractor.h
ec77122351b4e78c1fe5b60a208f76baf8c67591 08-Apr-2013 Marco Nelissen <marcone@google.com> Add support for common encryption

b/7465749

Change-Id: I5403b74a5ae428ad28b382863a09daafc400b137
ataSource.h
etaData.h
uMediaExtractor.h
190cdbab6ba24519d6b5e8bec6c2c74e6650e284 26-Mar-2013 Andreas Huber <andih@google.com> Identify network servers and clients with a OS version related string

and put the logic to create that string in one location instead of many...

Change-Id: I1f729f2e7376cd3b45eea0e48f7bd10084b41b39
tils.h
cd77d4a1d38b7609a03f6826a1ff5fa7c98aa34f 26-Mar-2013 Andreas Huber <andih@google.com> Identify network servers and clients with a OS version related string

and put the logic to create that string in one location instead of many...

Change-Id: I1f729f2e7376cd3b45eea0e48f7bd10084b41b39
tils.h
11287471298193ff51ffb429686f5d63a84a621b 12-Mar-2013 ztenghui <ztenghui@google.com> Add the presentation rotation support

bug:7991013

Change-Id: I10cb034b432876c724baa4974efcb3d67b8a99b6
ediaMuxer.h
e0fb528f8e3bbab04620c8534177168b358e837b 12-Mar-2013 ztenghui <ztenghui@google.com> Add the presentation rotation support

bug:7991013

Change-Id: I10cb034b432876c724baa4974efcb3d67b8a99b6
ediaMuxer.h
b7be24f055426f00fd1ae1af07d5dd40dbcedfe7 14-Mar-2013 Tenghui Zhu <ztenghui@google.com> Merge "Make limitations of MPEG4Writer explicit" into jb-mr2-dev
7d02488e0af9f21f5f15abcbd8dd8746606a124c 14-Mar-2013 Tenghui Zhu <ztenghui@google.com> Merge "Make limitations of MPEG4Writer explicit" into jb-mr2-dev
5883d53cf8300d8b13a1a6ef3310d72a55e191c0 12-Mar-2013 James Dong <jdong@google.com> Make limitations of MPEG4Writer explicit

o No more than 2 tracks will be supported
o No more than one video and/or one audio tracks will be supported
o Only take video and/or audio track (for instance, no text tracks)
o If there is no track before start() is called, bail out.

At the same time, make sure the errors from addSource() report to
addTrack(), not to start().

Bug: 7991013

Change-Id: I1ca35aaeb75b5448d75ed2c6c10dd12ecea720ab
PEG4Writer.h
acc47642e0f5d962f6289e6ba687fabf68f8312b 12-Mar-2013 James Dong <jdong@google.com> Make limitations of MPEG4Writer explicit

o No more than 2 tracks will be supported
o No more than one video and/or one audio tracks will be supported
o Only take video and/or audio track (for instance, no text tracks)
o If there is no track before start() is called, bail out.

At the same time, make sure the errors from addSource() report to
addTrack(), not to start().

Bug: 7991013

Change-Id: I1ca35aaeb75b5448d75ed2c6c10dd12ecea720ab
PEG4Writer.h
33da402287605e40e189289b11a08b8f5d515818 13-Mar-2013 Mathias Agopian <mathias@google.com> remove uses of Surface in favor or IGraphicBufferProducer

Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
ameraSource.h
ameraSourceTimeLapse.h
99617adda9bc46c43f511f0940bc735c73de61de 13-Mar-2013 Mathias Agopian <mathias@google.com> remove uses of Surface in favor or IGraphicBufferProducer

Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
ameraSource.h
ameraSourceTimeLapse.h
dbda1c852d68fde2e729ff2f8e85a406da73994b 09-Mar-2013 ztenghui <ztenghui@google.com> Merge "Clean up the native code to match Java update" into jb-mr2-dev
70369845f8250df4f6f22c336414b4df0a3ce53e 09-Mar-2013 ztenghui <ztenghui@google.com> Merge "Clean up the native code to match Java update" into jb-mr2-dev
afde4e56566af19b36f1fe5e7aa7f226bf1703dd 22-Feb-2013 ztenghui <ztenghui@google.com> Clean up the native code to match Java update

1. Add flags to match the java side change.
2. Update the interface.

bug:7991013

Change-Id: I8ffe84c466b2a68e2e1e48b35b78db9e44640265
ediaMuxer.h
3db62dfc5102247d415df4667bd9609e669fc022 22-Feb-2013 ztenghui <ztenghui@google.com> Clean up the native code to match Java update

1. Add flags to match the java side change.
2. Update the interface.

bug:7991013

Change-Id: I8ffe84c466b2a68e2e1e48b35b78db9e44640265
ediaMuxer.h
ba6218eae3dbcf3f962b3561b26374a214dbf5e2 05-Mar-2013 Andy McFadden <fadden@android.com> Correct MediaCodec + Surface behavior

Assorted tweaks:
- Allow signalEndOfInputStream() before ACodec is in Executing
state (added message to two more states).
- Return an error if signalEndOfInputStream() is called a second
time on the same stream.
- Require AndroidOpaque color format in createInputSurface().
- Disallow dequeueInputBuffer() after an input surface has been
created (boolean flag in MediaCodec tracks it).
- Discard input surface when encoder is re-configure()ed (drop
OMXNodeInstance's ref when we go back to Loaded).

Bug 7991062

Change-Id: Iff30f3036e14eb5a2f6536910dcf11aba33031ee
Codec.h
ediaCodec.h
6507d14c6d10f93d390de62b9eed267f9b544985 05-Mar-2013 Andy McFadden <fadden@android.com> Correct MediaCodec + Surface behavior

Assorted tweaks:
- Allow signalEndOfInputStream() before ACodec is in Executing
state (added message to two more states).
- Return an error if signalEndOfInputStream() is called a second
time on the same stream.
- Require AndroidOpaque color format in createInputSurface().
- Disallow dequeueInputBuffer() after an input surface has been
created (boolean flag in MediaCodec tracks it).
- Discard input surface when encoder is re-configure()ed (drop
OMXNodeInstance's ref when we go back to Loaded).

Bug 7991062

Change-Id: Iff30f3036e14eb5a2f6536910dcf11aba33031ee
Codec.h
ediaCodec.h
f779bb50d9746d9526541c3e6dcdf619cac941b7 19-Feb-2013 Andy McFadden <fadden@android.com> Implement Surface input to MediaCodec.

Also, renamed a CHECK_INTERFACE macro that was clashing with the
Binder version.

Bug 7991062

Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0
Codec.h
ufferProducerWrapper.h
ediaCodec.h
7cd58537932ef6f481f68be0b9c597a89cebdfec 19-Feb-2013 Andy McFadden <fadden@android.com> Implement Surface input to MediaCodec.

Also, renamed a CHECK_INTERFACE macro that was clashing with the
Binder version.

Bug 7991062

Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0
Codec.h
ufferProducerWrapper.h
ediaCodec.h
48af7e8dd40883d6154e7029d9500072b551b5fa 19-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CameraService and Stagefright: Support AppOps

Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost

Stagefright:
- Pass on client name, UID to camera as needed

Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
ameraSource.h
ameraSourceTimeLapse.h
ceb388d6c03c38b96dc41c0ea4804b749aa077c4 19-Feb-2013 Eino-Ville Talvala <etalvala@google.com> CameraService and Stagefright: Support AppOps

Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost

Stagefright:
- Pass on client name, UID to camera as needed

Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
ameraSource.h
ameraSourceTimeLapse.h
b1e7cd156ca3e1747374e0d20cdd1ce467210453 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830
ediaCodec.h
ativeWindowWrapper.h
urfaceMediaSource.h
1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3 15-Feb-2013 Mathias Agopian <mathias@google.com> Refactoring: Rename SurfaceTextureClient to Surface

Change-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830
ediaCodec.h
ativeWindowWrapper.h
urfaceMediaSource.h
62ad9071cd61fc56355d3c2d25895382003ea362 13-Feb-2013 Marco Nelissen <marcone@google.com> Add support for fragmented mp4 to MPEG4Extractor

This makes FragmentedMP4Extractor obsolete. It will be removed in a
separate change.

Change-Id: Ida74c07ccf84983e20a1320ee24ffc7a5c083859
ataSource.h
05f625c46b992ab66b8d1527a366fe2746b4e3c7 13-Feb-2013 Marco Nelissen <marcone@google.com> Add support for fragmented mp4 to MPEG4Extractor

This makes FragmentedMP4Extractor obsolete. It will be removed in a
separate change.

Change-Id: Ida74c07ccf84983e20a1320ee24ffc7a5c083859
ataSource.h
6269d53cce5c1c9350565d3d72d92116594260cb 05-Feb-2013 ztenghui <ztenghui@google.com> Add the native MediaMuxer support.

MediaAdapter: a helper class to convert the push model to pull model.
MediaMuxer: the real muxer.

bug:7991013

Change-Id: If3b79551bc6332bc81f5c2740885e579a5c4abf9
ediaAdapter.h
ediaMuxer.h
4f1732b8068970b368a89271158ca29daf25650e 05-Feb-2013 ztenghui <ztenghui@google.com> Add the native MediaMuxer support.

MediaAdapter: a helper class to convert the push model to pull model.
MediaMuxer: the real muxer.

bug:7991013

Change-Id: If3b79551bc6332bc81f5c2740885e579a5c4abf9
ediaAdapter.h
ediaMuxer.h
c71601c3b1dd63afc9be462194809813e4dbacf1 07-Feb-2013 Andreas Huber <andih@google.com> Allow for dynamic reconfiguration of the video bitrate used

to encode video while running as a wfd source.

Change-Id: I44f7b2350c88fc5807047c61bfe594ef8fa79275
Codec.h
ediaCodec.h
a2eb22c1de262aa3fa7c356537ac2fe165afdf3d 07-Feb-2013 Andreas Huber <andih@google.com> Allow for dynamic reconfiguration of the video bitrate used

to encode video while running as a wfd source.

Change-Id: I44f7b2350c88fc5807047c61bfe594ef8fa79275
Codec.h
ediaCodec.h
484566c410afdfbc4b6bc5aa1732aef37428a5b8 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
ediaCodec.h
urfaceMediaSource.h
8ba01021b573889802e67e029225a96f0dfa471a 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
ediaCodec.h
urfaceMediaSource.h
e9810fae2ca6620337b75a787786cc0ea52adecd 04-Dec-2012 Andreas Huber <andih@google.com> Respect sample aspect ratio in NuPlayer.

related-to-bug: 7569402
Change-Id: I302de95d83b180bd2dc72ddd0c69a665dbce2527
etaData.h
516dacfb02d0b0eafe21114330c98ce0e7d90da9 04-Dec-2012 Andreas Huber <andih@google.com> Respect sample aspect ratio in NuPlayer.

related-to-bug: 7569402
Change-Id: I302de95d83b180bd2dc72ddd0c69a665dbce2527
etaData.h
2e57f4c428be32a574e31b0f4aeeae8de24e5895 29-Nov-2012 James Dong <jdong@google.com> am 296cb9dd: am 0dbe5a93: Added optional intra macroblock refresh support for encoding

* commit '296cb9ddd916c43983bfb4ddab9c69ed555d4cc4':
Added optional intra macroblock refresh support for encoding
239a901bb320383eb1aa2820c02c80937053acb4 29-Nov-2012 James Dong <jdong@google.com> am 296cb9dd: am 0dbe5a93: Added optional intra macroblock refresh support for encoding

* commit '296cb9ddd916c43983bfb4ddab9c69ed555d4cc4':
Added optional intra macroblock refresh support for encoding
cb9d270eecb7108e19323f522c5e82dcc80a5f32 29-Nov-2012 James Dong <jdong@google.com> am 0dbe5a93: Added optional intra macroblock refresh support for encoding

* commit '0dbe5a9321b24b6883fbb2fe97cd9d525128b0b5':
Added optional intra macroblock refresh support for encoding
296cb9ddd916c43983bfb4ddab9c69ed555d4cc4 29-Nov-2012 James Dong <jdong@google.com> am 0dbe5a93: Added optional intra macroblock refresh support for encoding

* commit '0dbe5a9321b24b6883fbb2fe97cd9d525128b0b5':
Added optional intra macroblock refresh support for encoding
e97adde42fabc3928a2ac0b8cdc88e35b24b85dc 15-Nov-2012 James Dong <jdong@google.com> Added optional intra macroblock refresh support for encoding

o related-to-bug: 7524791

Change-Id: I95ac4ee925e2dbeb00b3cfb2e29c611698c5cc9f
Codec.h
0dbe5a9321b24b6883fbb2fe97cd9d525128b0b5 15-Nov-2012 James Dong <jdong@google.com> Added optional intra macroblock refresh support for encoding

o related-to-bug: 7524791

Change-Id: I95ac4ee925e2dbeb00b3cfb2e29c611698c5cc9f
Codec.h
1dc9b1b88cfedc61a0795ea646b728ee129fc2e6 27-Nov-2012 Andreas Huber <andih@google.com> am 9abbd0fb: am 3eb46d17: Merge "Fix of uninitialized mIsDrm variable."

* commit '9abbd0fb822aa0076f6de03f2092db47760b924d':
Fix of uninitialized mIsDrm variable.
d5314733f9b432dfbfa40bbf74efe4dd3025c9b2 27-Nov-2012 Andreas Huber <andih@google.com> am 9abbd0fb: am 3eb46d17: Merge "Fix of uninitialized mIsDrm variable."

* commit '9abbd0fb822aa0076f6de03f2092db47760b924d':
Fix of uninitialized mIsDrm variable.
761ad2c39ab2b6d40379c5926caaf9d8bd5dce15 27-Nov-2012 Andreas Huber <andih@google.com> Merge "Fix of uninitialized mIsDrm variable."
3eb46d179b1f62cde21077fde466925d4c5c79ad 27-Nov-2012 Andreas Huber <andih@google.com> Merge "Fix of uninitialized mIsDrm variable."
9ca2596be1e624ebf1e39f645d3b3a9c3ed18eb2 31-Oct-2012 Henrik B Andersson <henrikb.andersson@sonymobile.com> Fix of uninitialized mIsDrm variable.

The mIsDrm is a bool that isn't initialized.
This causes it to be true in most default cases.

Change-Id: I41b534514bf6a3ca88a9f0994b814d55fcd7453b
ediaExtractor.h
bb983e5b4640555533241753f4a8e4b48331ed1d 31-Oct-2012 Henrik B Andersson <henrikb.andersson@sonymobile.com> Fix of uninitialized mIsDrm variable.

The mIsDrm is a bool that isn't initialized.
This causes it to be true in most default cases.

Change-Id: I41b534514bf6a3ca88a9f0994b814d55fcd7453b
ediaExtractor.h
a98a8877396fdcdf04e64cf8674ede9d4212c97b 26-Nov-2012 Andreas Huber <andih@google.com> am 5bc5bf39: am 79fd6853: Merge "MediaCodec: Add a method for getting the component name"

* commit '5bc5bf39120ae27ef46a8b13f85bf44ea19c7d5e':
MediaCodec: Add a method for getting the component name
53f6244746342f06a028702a6b850af2d93f20ac 26-Nov-2012 Andreas Huber <andih@google.com> am 5bc5bf39: am 79fd6853: Merge "MediaCodec: Add a method for getting the component name"

* commit '5bc5bf39120ae27ef46a8b13f85bf44ea19c7d5e':
MediaCodec: Add a method for getting the component name
8601efe463bf3331fa2a389ee13db25f21d28eb9 25-Sep-2012 Martin Storsjo <martin@martin.st> MediaCodec: Add a method for getting the component name

If the codec was chosen based on mime type, the caller does
not know what component actually was chosen. This allows
getting essential information (such as supported color formats,
for a video encoder) for this component.

Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
ediaCodec.h
717fd3d4328abf524978ce9c125ab8ae8d6bffad 25-Sep-2012 Martin Storsjo <martin@martin.st> MediaCodec: Add a method for getting the component name

If the codec was chosen based on mime type, the caller does
not know what component actually was chosen. This allows
getting essential information (such as supported color formats,
for a video encoder) for this component.

Change-Id: Ie471f40f8104b37d27ced3dba5a54facc6504b1b
ediaCodec.h
2ed5cf016c1b45426ae25ab105e02ff4bb992f28 15-Nov-2012 Marco Nelissen <marcone@google.com> Add GSM 6.10 decoder

Supports Microsoft frame packing only, since that's what the sample
file used.
b/6620569

Change-Id: Ia89d95bcbf0f8dcbaad42148a7401728f60e079d
ediaDefs.h
ba933df89521d63f75ca66af12ce9d7ae9496b9e 15-Nov-2012 Marco Nelissen <marcone@google.com> Add GSM 6.10 decoder

Supports Microsoft frame packing only, since that's what the sample
file used.
b/6620569

Change-Id: Ia89d95bcbf0f8dcbaad42148a7401728f60e079d
ediaDefs.h
7b4262221c06951e9df75d5414c0a7daab365177 01-Nov-2012 Andreas Huber <andih@google.com> Make video encoders' bitrate mode (constant, variable, ...) configurable

through the desired output format. Configure the video encoder to use
constant bitrate mode for WFD.

Change-Id: Id7bd619598153c13448a9c5acd69d80f8a01f333
related-to-bug: 7459597
Codec.h
96076964863ee6887f0bed9d0f11f424b48ab9b9 01-Nov-2012 Andreas Huber <andih@google.com> Make video encoders' bitrate mode (constant, variable, ...) configurable

through the desired output format. Configure the video encoder to use
constant bitrate mode for WFD.

Change-Id: Id7bd619598153c13448a9c5acd69d80f8a01f333
related-to-bug: 7459597
Codec.h
72c6686ad04feb976ea3d2f816c784e485b55506 03-Oct-2012 Andreas Huber <andih@google.com> Better power savings with wifi display code.

No more polling the encoder for work to do, the encoder instead notifies
if there's activity.

Change-Id: Ia707211b4f5c5a6e6b70d750233d204a2d6bb778
related-to-bug: 7248248
ediaCodec.h
575a5361fc970476cd7979638ee3ac00cc6e5024 03-Oct-2012 Andreas Huber <andih@google.com> Better power savings with wifi display code.

No more polling the encoder for work to do, the encoder instead notifies
if there's activity.

Change-Id: Ia707211b4f5c5a6e6b70d750233d204a2d6bb778
related-to-bug: 7248248
ediaCodec.h
fa0e033ab5a0ab5d96e90c9f6d4d53bedc74514b 02-Oct-2012 Andreas Huber <andih@google.com> ALooper::GetNowUs() now relies on systemTime instead of gettimeofday.

Change-Id: Ia31eb0940b02581327a8bf51af6df135f9ab6de3
related-to-bug: 7266324
udioSource.h
imeSource.h
af5dd7753e62353411cf0daf3b513c38818e9662 02-Oct-2012 Andreas Huber <andih@google.com> ALooper::GetNowUs() now relies on systemTime instead of gettimeofday.

Change-Id: Ia31eb0940b02581327a8bf51af6df135f9ab6de3
related-to-bug: 7266324
udioSource.h
imeSource.h
90689fda75c343ab9328ced63e58f45eabaa33cc 02-Oct-2012 Andreas Huber <andih@google.com> Optionally have SurfaceMediaSource return absolute timestamps

based on systemTime().

Change-Id: I2eff15dd149a4b737d6e7473d1907cf0c80b6b38
related-to-bug: 7266706
urfaceMediaSource.h
0868deae404604b577892413c128d55a2bafc56e 02-Oct-2012 Andreas Huber <andih@google.com> Optionally have SurfaceMediaSource return absolute timestamps

based on systemTime().

Change-Id: I2eff15dd149a4b737d6e7473d1907cf0c80b6b38
related-to-bug: 7266706
urfaceMediaSource.h
a54dee4002624e0885b39451cb29028406f5bf8e 01-Oct-2012 Andreas Huber <andih@google.com> Remove double negatives from SurfaceMediaSource

ensure mStarted actually reflects the state of SurfaceMediaSource

Change-Id: I92557896993ad8da23fe6940e997402ad63b8cbc
related-to-bug: 7258622
urfaceMediaSource.h
0e1d71641624c641a0a1abe4098943f5a42c6f94 01-Oct-2012 Andreas Huber <andih@google.com> Remove double negatives from SurfaceMediaSource

ensure mStarted actually reflects the state of SurfaceMediaSource

Change-Id: I92557896993ad8da23fe6940e997402ad63b8cbc
related-to-bug: 7258622
urfaceMediaSource.h
a7f7e0ac9436a8417bb9f31aecedfec1909d4630 28-Sep-2012 Andreas Huber <andih@google.com> Various improvements to a cleaner shutdown of the wifi display connection.

Change-Id: Id029a89939e53c2bd1d20e572d3975ec2795c239
related-to-bug: 7247918
urfaceMediaSource.h
96fc6cc65ca93009a759a3a874b82a35771b9714 28-Sep-2012 Andreas Huber <andih@google.com> Various improvements to a cleaner shutdown of the wifi display connection.

Change-Id: Id029a89939e53c2bd1d20e572d3975ec2795c239
related-to-bug: 7247918
urfaceMediaSource.h
afcb6aec27a52b87f3990691698ebe6b62e7a7bf 14-Sep-2012 James Dong <jdong@google.com> Merge "Allow OMXCodec to specify an output color format for OMX decoder component" into jb-mr1-dev
2637cb172105939052d8a02f4eea693a90549518 14-Sep-2012 James Dong <jdong@google.com> Merge "Allow OMXCodec to specify an output color format for OMX decoder component" into jb-mr1-dev
03e2ffa64470eec4e886614a4fa4facbae58a862 14-Sep-2012 Andreas Huber <andih@google.com> Support IDR requests in wifi display, MediaCodec and ACodec.

Change-Id: I596cf8dd61b63465437f78413186fad2be287244
Codec.h
ediaCodec.h
496238cc7551d414067dcbbb4fe3bd801f205f95 14-Sep-2012 Andreas Huber <andih@google.com> Support IDR requests in wifi display, MediaCodec and ACodec.

Change-Id: I596cf8dd61b63465437f78413186fad2be287244
Codec.h
ediaCodec.h
b62f95145293bf1a39959166a4964088bb413224 12-Sep-2012 Andreas Huber <andih@google.com> Throttle SurfaceMediaSource.

Change-Id: I214ce60f8d94df9c07041577e34ed1ad5e199fdb
urfaceMediaSource.h
00f41327264fa2e59cc05abaa5c554b2a32938e1 12-Sep-2012 Andreas Huber <andih@google.com> Throttle SurfaceMediaSource.

Change-Id: I214ce60f8d94df9c07041577e34ed1ad5e199fdb
urfaceMediaSource.h
2020801209f7f0f82ddd7635daf2c371b46ea6d6 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
MXCodec.h
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
MXCodec.h
1e9ee018c6fa906c99270616456c32f0bb30c9c0 29-Aug-2012 Marco Nelissen <marcone@google.com> Fragmented mp4 extractor

Still experimental. Set property "media.stagefright.use-fragmp4" to true to
enable.

Change-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e
tils.h
56997121c5031598fbbba7b7c53980b7fd529c2d 29-Aug-2012 Marco Nelissen <marcone@google.com> Fragmented mp4 extractor

Still experimental. Set property "media.stagefright.use-fragmp4" to true to
enable.

Change-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e
tils.h
7f06639d375c44f260e00aa5e18cd883624b38bf 05-Sep-2012 Andreas Huber <andih@google.com> Configure the SurfaceMediaSource to emit the same number of buffers

as the video encoder allocates for its input. Do this before connecting
the bufferqueue through surface flinger.

Change-Id: Ibc81db1359afe2d88fdb75b23fadae65c8a6f7cc
urfaceMediaSource.h
66e72bc85fb762876baff60ef29de729da93cf26 05-Sep-2012 Andreas Huber <andih@google.com> Configure the SurfaceMediaSource to emit the same number of buffers

as the video encoder allocates for its input. Do this before connecting
the bufferqueue through surface flinger.

Change-Id: Ibc81db1359afe2d88fdb75b23fadae65c8a6f7cc
urfaceMediaSource.h
bd381af4d618a4da78de99d05d44a10c0c37207b 30-Aug-2012 Andreas Huber <andih@google.com> Prepare for transmitting audio through AudioSource.

AudioSource can now be configured to output buffers timestamped based
on looper time (absolute) instead of based on systemTime() relative to
start time.

Change-Id: I8eca42648eb50033ac4aafbe5daac64a98a40690
udioSource.h
082830f92373a1b9e512dbbfb940187ffa1c2c6f 30-Aug-2012 Andreas Huber <andih@google.com> Prepare for transmitting audio through AudioSource.

AudioSource can now be configured to output buffers timestamped based
on looper time (absolute) instead of based on systemTime() relative to
start time.

Change-Id: I8eca42648eb50033ac4aafbe5daac64a98a40690
udioSource.h
35213f1420c669f43314cb75eadea450d21a75cb 29-Aug-2012 Andreas Huber <andih@google.com> Initial checkin of support for acting as a wifi display source

Change-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a
Codec.h
d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480c 29-Aug-2012 Andreas Huber <andih@google.com> Initial checkin of support for acting as a wifi display source

Change-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a
Codec.h
1c356d38527efbbee0894188c0a8f82074b0f441 27-Aug-2012 James Dong <jdong@google.com> Merge "Fixed a native crash due to unexpected state at destroy time when encoder component's source fails to start" into jb-mr1-dev
a0ead0a2d2ce1d114ad3a17d755dddce831abb40 24-Aug-2012 Jamie Gennis <jgennis@google.com> SurfaceMediaSource: a few fixes / cleanups

- Remove the setting of mStopped to true in onBuffersReleased
- Cleaned up a few function call logs
- Removed the 'reset' method.

Change-Id: I56bab1d5cb2f3e6d59d54698c2e045d796d1849f
urfaceMediaSource.h
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
MXCodec.h
dbcb4c17f16230dfc6af908f176681c49f61b13e 24-Aug-2012 Marco Nelissen <marcone@google.com> Allow directly setting a DataSource for NuMediaExtractor

This adds NuMediaExtractor::setDataSource(const sp<DataSource> &source),
which some new code under frameworks/av will use to let applications
provide a custom data source for extractors.

Change-Id: I8fb743441d04b4eadbda3c2d76858c3d60e2a3b2
uMediaExtractor.h
b3e12a4d15a329821979bf287c49a9630486e23f 11-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 3ca352c4: am 24893fef: Merge "MPEG2TSWriter: Write a proper CRC in PAT and PMT"

* commit '3ca352c4cd01f6df3b691f835efc68a5771e724e':
MPEG2TSWriter: Write a proper CRC in PAT and PMT
24893fef8e0f816a8a21749fa3eb9eed9173a0fd 11-Aug-2012 Jean-Baptiste Queru <jbq@google.com> Merge "MPEG2TSWriter: Write a proper CRC in PAT and PMT"
751fa786aa9599c694219085601f9f5ebe96a516 10-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 31a593b9: am 2001d2ac: Merge "MPEG2TSWriter: Write proper continuity counters for PAT and PMT"

* commit '31a593b901eeb924ae5214962c628397dd0197f2':
MPEG2TSWriter: Write proper continuity counters for PAT and PMT
2001d2ac01e36c13c1abda5f73b6404cba2648e1 10-Aug-2012 Jean-Baptiste Queru <jbq@google.com> Merge "MPEG2TSWriter: Write proper continuity counters for PAT and PMT"
e983aa4ff4d80af7702888e230b9aaa93a7b7e57 08-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 51af4af2: am e28df5b9: Merge "Store correct time stamps in recorded mp4 files"

* commit '51af4af2414cdaaf0185b971a41fc0b4f8c0b7e4':
Store correct time stamps in recorded mp4 files
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
MXCodec.h
a6ee7bc5f9524c220377e37f6525e2d46c69b75b 07-Aug-2012 James Dong <jdong@google.com> Remove obsolete hack for TI specific code

o related-to-bug: 6566886

Change-Id: I39aad214cbf7b748a95a9d22db50cd8f421931e6
MXCodec.h
a3b71fa5235b758d5f9ea00b9c58fbfd707fb9dd 03-Aug-2012 Marco Nelissen <marcone@google.com> Merge "experimental support for fragmented mp4 playback in nuplayer" into jb-mr1-dev
840667883fd09d44015716d79bc3ac4d60edc0f0 16-Aug-2011 Andreas Huber <andih@google.com> experimental support for fragmented mp4 playback in nuplayer

cherry picked from change 170999

Change-Id: I407775f0290154ad4961134839a15c9f296424c0
oundation/hexdump.h
983cf231ab2d176a14595cdae46ff1b0c239af47 02-Aug-2012 James Dong <jdong@google.com> Dynamically configure the number of video buffers used by camera source, if supported

o related-to-bug: 6920805

Change-Id: I413bb50954cc84e32ed40bcb713842dc7b58e2b6
ameraSource.h
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
etaData.h
c9729ca1cb1760da836e293e3ed7a82f769f3e07 24-Jul-2012 Insun Kang <insun@google.com> Unifying TimedTextDriver's resume() and start().

(cherry picked from gtv bb23a2b7e06c59f56e353fd4a2a66a9b8179d425)

Change-Id: If5f14549fa315c34e32d6fed7c1ea09deabceb63
imedtext/TimedTextDriver.h
bb6bc8491fe819f96e1902e56694715cb110ce94 10-Jul-2012 Insun Kang <insun@google.com> Adds resume() function

o Revived resume() function to fix pause/resume bug. (Bug: 6663740)
o Mannually cherry-picked from GTV change.
(commit: ad1197226d1c6745959f0e469f510ca06f99489f)

Change-Id: I77ac90085fb1f1d2e7eb706642978a4fa4d28b49
imedtext/TimedTextDriver.h
efcdf187baab9ec29e12adcf85e63fe3e6d5aa4d 08-Mar-2012 Johannes Carlsson <johannes.carlsson.x@sonymobile.com> Store correct time stamps in recorded mp4 files

According to the specification (ISO_IEC_14496-12_2008 page 17, 19 and
21) the time is "in seconds since midnight, Jan. 1, 1904, in UTC time"
which is not the same as Unix epoch time. This is already correctly
handled in MPEG4Extractor.cpp when reading files.

The specification also supports 64 bit timestamps which would make
it a bit more future proof, but unfortunately it seems like support
for this in players are poor (tested both Windows media player and
Quicktime player).

Change-Id: I102d728f098b8b0a21013956f017b0c4f2d69112
PEG4Writer.h
983995747ed3adaf25035c433df1ccbaa056a898 23-Jan-2012 Paul Fariello <fariello@archos.com> MPEG2TSWriter: Write a proper CRC in PAT and PMT

Change-Id: I6ec8039b176878da6f02691194d96b0a1e894055
PEG2TSWriter.h
d4e5af6bc0a012e8d43975ca8b5627631333920d 23-Jan-2012 Paul Fariello <fariello@archos.com> MPEG2TSWriter: Write proper continuity counters for PAT and PMT

Change-Id: If94e31e51c563867db6d2376ad771f9751416084
PEG2TSWriter.h
2cd25a9056cc150b9fd3ac9b0bca37a1334ffd47 22-Jun-2012 Jamie Gennis <jgennis@google.com> SurfaceMediaSource: keep refs to current buffers

This change fixes a bug in SurfaceMediaSource where it would not keep a
reference to all of the Gralloc buffers that the video encoder is currently
using.

Bug: 6655597
Change-Id: Ifd99976cc7ae57ed724bbf2bbcff357a39497391
urfaceMediaSource.h
bc098410be55f9d96f394b3981a0c482b83859b6 22-May-2012 Andreas Huber <andih@google.com> Tell surface flinger that we want to protect output buffers from being

sent to HDMI (without HDCP) and push a few black frames on IDLE->LOADED
similar to OMXCodec's behaviour.

Change-Id: Iea6055a115151ca881220a70a31af6ade2c58cb3
related-to-bug: 6537187
Codec.h
88ba895b5ddd8b3da364c3ceacdb698224ee746f 17-May-2012 Andreas Huber <andih@google.com> Merge "Stop extrapolating audio time from the anchor if we're paused or reached eos." into jb-dev
8c460498c028888c533ab442be12b6d4b669b965 15-May-2012 James Dong <jdong@google.com> Speed up stsz box write in MPEG4Writer

With this patch, the write time for 30+ minutes recording session is reduced from 10+ seconds down to around 2-3 seconds.

related-to-bug: 6435176

Change-Id: I83b705cea42d8de798e7032c770c5c7b033e267e
PEG4Writer.h
a99a5bca365277271915cbaeea811ad87131270d 16-May-2012 Andreas Huber <andih@google.com> Stop extrapolating audio time from the anchor if we're paused or reached eos.

Change-Id: I55903ba625d9c075a9a6e7bcd5ff95d450b915b2
related-to-bug: 6479613
udioPlayer.h
e4451a91a61a341014f5eff61db356156c3ecb37 15-May-2012 Andreas Huber <andih@google.com> Smoothen audio "real" time by compensating with system_time()

for the delay since the last buffer submission to the audio sink.

Change-Id: Ib1a8672f96ba8bbef07d23372f1076fbb1f0bdcc
related-to-bug: 6479613
udioPlayer.h
7cf0de49dbdcb2da7d9bf9421f58adf442dfeaea 12-May-2012 James Dong <jdong@google.com> Merge "Remove unused VideoSourceDownSampler class" into jb-dev
3a2633008be4a92fbca6e76c057f86e220558197 11-May-2012 James Dong <jdong@google.com> Remove unused VideoSourceDownSampler class

Change-Id: I2faf5962ff4cc366c688ef5bb27f53596f08fe0a
related-to-bug: 6484217
ideoSourceDownSampler.h
eb61431af13741aa8b7e57a39f69bba5a6c190dc 11-May-2012 Andreas Huber <andih@google.com> Increase AAC software decoder's buffer count. Refactor how clients

of ACodec get notified about codec buffers and buffer ids.

Change-Id: I962f873262dae7aa7b43f5f68a6d60268282f91e
related-to-bug: 6478823
Codec.h
af9e6a17d7038b411b61a3cb0669694058511a05 10-May-2012 Andreas Huber <andih@google.com> Merge "Properly connect/disconnect to/from the native window in MediaCodec." into jb-dev
7541ff5d83a3e77cb533841a0326a241550b95d9 10-May-2012 Andreas Huber <andih@google.com> Properly connect/disconnect to/from the native window in MediaCodec.

Change-Id: Ib5bf90a3b81fca8ff2346235bc28a2bd0bc7bfb1
related-to-bug: 6472161
ediaCodec.h
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
Codec.h
8ee516a515c70a492c395b67ce12e19e7d159804 08-May-2012 Andreas Huber <andih@google.com> Submit codec specific data automatically

if it is contained in the format passed to MediaCodec::configure.

Change-Id: I8ef6755e8389ec47b44a9c70904ea6c03a00f4f2
related-to-bug: 6364139
ediaCodec.h
9806555d3930be43e11106281dee354820ac1c88 03-May-2012 Andreas Huber <andih@google.com> Respect channel mask in ACodec and NuPlayer.

Refactor conversion from MetaData into AMessage while we're at it.

Change-Id: I5479129836ea4316e8de28cf1b472bf19e3ac4ab
related-to-bug: 6439076
Codec.h
tils.h
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.
b/774846

Change-Id: I34df9fea3e6730617eae559afaa556f4085ef0a0
Codec.h
MXCodec.h
kipCutBuffer.h
9d07855aaff8a6b502a3ab058002cdd4a278b965 26-Apr-2012 Andreas Huber <andih@google.com> NuMediaExtractor API to unselect tracks and finer control over seeking.

Change-Id: I44d5a2b01d34b771bb0ff48b12829e33314c2374
related-to-bug: 6276111
uMediaExtractor.h
aeb8fd460ed87d032b3fb8bb61e21eb542ce0f5b 19-Apr-2012 Dave Burke <daveburke@google.com> Add Fraunhofer AAC encoder with AAC-ELD support.

Change-Id: I6cd499d257d72f50a5b508bed97796a591a51506
ACWriter.h
Codec.h
etaData.h
MXCodec.h
e370bb62b89d2f2980f519392010ea08a24c558e 25-Apr-2012 Andreas Huber <andih@google.com> Bump up the max number of items in an AMessage, remove overly stringent

CHECK() limiting us to just audio/* or video/* tracks.

related-to-bug: 6399405
Change-Id: I9bdaf7e709665ecc22da8839c8b16c081dbf4535
oundation/AMessage.h
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
MXCodec.h
dc7431e70b4b030b5f42d0dfc3ef244d4f583dd2 23-Apr-2012 Andreas Huber <andih@google.com> Make sure NuMediaExtractor is thread safe.

Change-Id: If261c4d87d5569a0d7cfd75afe311803a6ce0109
uMediaExtractor.h
f853499c6a088ef8506cacbb3ccdffa87e0cec3e 21-Apr-2012 Eric Laurent <elaurent@google.com> Merge "Add support for deep audio buffers"
1948eb3ea6eee336e8cdab9b0c693f93f5f19993 14-Apr-2012 Eric Laurent <elaurent@google.com> Add support for deep audio buffers

Allow AudioSink to use deep audio buffering when the
source is audio only and its duration is more than
a certain threshold.
This helps improve battery life but implies higher
audio latency.

Change-Id: Ie79915b61c370292f05aabda9779356570e03cbb
udioPlayer.h
a53d87c7b1428fe02f535c31dafd64cb1362fde9 20-Apr-2012 Andreas Huber <andih@google.com> Add the ability to query the amount of cached data to NuMediaExtractor.

Change-Id: I0966270a2bd36698330beaa03f47d02fc6a40c44
related-to-bug: 6364341
uMediaExtractor.h
8d6086781c79620ce6133df7bd27f0efdee6b4e6 19-Apr-2012 Andreas Huber <andih@google.com> Merge "Allow propagation of error information and description from the CryptoPlugin to"
5b8987e7de9d04b09153f329c680d2316cdb44ec 19-Apr-2012 Andreas Huber <andih@google.com> Allow propagation of error information and description from the CryptoPlugin to

the higher layers.

Change-Id: I9f434ad55cdf575803c208bedf47b607baff2330
related-to-bug: 6365261
ediaCodec.h
ediaErrors.h
eee7f9dd0d3410877dd58a14c4b80aacbeb32d72 19-Apr-2012 James Dong <jdong@google.com> Merge "Make timed text source type explicit in TimedTextDriver"
692ac36c4b6a09fed5113a4f45f00a041665a769 19-Apr-2012 James Dong <jdong@google.com> Make timed text source type explicit in TimedTextDriver

o related-to-bug: 5542712

Change-Id: Ifdc730e616336e8b16783e8a5766f27df62a0592
imedtext/TimedTextDriver.h
f69e53033f23f9f70fcdb28a3c2e650de0147459 18-Apr-2012 Andreas Huber <andih@google.com> Some refactoring and cleanup of now obsolete crypto fields.

codec commandline tool no longer supports decryption.

Change-Id: I7b10be6524631b20ac5d361d47949b00addf4a93
etaData.h
uMediaExtractor.h
52bef17f5953cd07b1655a3371d833f4de01caae 18-Apr-2012 James Dong <jdong@google.com> Merge "Fix for multiple audio/timed track feature implementation - part one"
eec46abb88dcc50621fd2d3f17a6b8d24fd07a19 12-Apr-2012 James Dong <jdong@google.com> Fix for multiple audio/timed track feature implementation - part one

o getTrackInfo now returns all tracks, rather than just the timed text tracks.
o the index of the track info is kept to the same as the track index if the
track is not from an external source
o correctly maps the selectTrack() and unselectTrack() calls to the right
track index

o TODO:
1) note that the selectTrack() and unselectTrack() only works for timed text
track at present; 2) the lock is timed text specific

o related-to-bug: 6110705

Change-Id: Ib1feeef2184bc992930ace0d1197b6c00a2636d7
imedtext/TimedTextDriver.h
a98db787397633155fd71b06ecaa765a7ad20cf2 16-Apr-2012 Andreas Huber <andih@google.com> Merge "Change NuMediaExtractor's API to support different kinds of data sources."
db9b87e30a2ffe71554150e33066738ab134bc3c 13-Apr-2012 James Dong <jdong@google.com> Merge "Add external timed text source using a passed file descriptor"
613c8ae1b7a2b4f43b33a72dc2fff0bc8b7d4c6f 13-Apr-2012 James Dong <jdong@google.com> Add external timed text source using a passed file descriptor

o Also fixed a minor issue where the file length should be of type off64_t rather than size_t

o related-to-bug: 5542712

Change-Id: I35fd8ceea0bc75e553b7f4a99932cf58ea560c4e
imedtext/TimedTextDriver.h
918c7652b9a38c02e26c0c46541cea82070c0e43 13-Apr-2012 Andreas Huber <andih@google.com> Change NuMediaExtractor's API to support different kinds of data sources.

Change-Id: I080aa2ce28300a72a85751509334dbdc491936c6
related-to-bug: 6276111
uMediaExtractor.h
5892e3e173f20e01956f318ae7dce43d46c5fc1d 12-Apr-2012 Andreas Huber <andih@google.com> Add metadata keys to communicate encrypted fragments and associated info.

Change-Id: I90a27c9bbe649328b88144b161c420916673846f
related-to-bug: 6275919
etaData.h
2d531e1b5865d61d5ca25d77d53017b1ad180efa 11-Apr-2012 Mathias Agopian <mathias@google.com> Merge "Refactored SurfaceMediaSource"
bdddc659a941afdb7f4958f582c6901c07246097 31-Mar-2012 Daniel Lam <dalam@google.com> Refactored SurfaceMediaSource

SurfaceMediaSource takes advantage of BufferQueue to avoid
duplicated code.

Change-Id: I5e60b8eca21e6c3cf728d363cd8f3786125182d1
urfaceMediaSource.h
4b75a9c8b93a90749bc5d22912ad0d96c12f4ecf 06-Apr-2012 Andreas Huber <andih@google.com> New API to support submitting encrypted buffers to the decoder.

Change-Id: I69dd60e43078c4211c6123cf6e0ce90e676bf873
related-to-bug: 6275919
ediaCodec.h
f15cb4472aaca54c13f8250e4c7872470c4bed83 04-Apr-2012 Jeff Tinker <jtinker@google.com> Merge "frameworks/av/media portion of removing YouTube specific error codes"
8f883be3bd1fffd4e30bc7298c34085a4055be2b 04-Apr-2012 Jeff Tinker <jtinker@google.com> frameworks/av/media portion of removing YouTube specific error codes

Change-Id: Id0d84d3aaaf340cd5287611c9dc7cb8d11466772
related-to-bug: 5883949
ediaErrors.h
1bd139a2a68690e80398b70b27ca59550fea0e65 03-Apr-2012 Andreas Huber <andih@google.com> New Crypto services talking to the new crypto "HAL".

Change-Id: I69ed31e7a8b4d69d1209d2d516f94d258f072566
related-to-bug: 6275919
ediaCodec.h
69829f3bd09ee4e6be49fee8795c5df24c4da70e 30-Mar-2012 Andreas Huber <andih@google.com> Add a few more APIs to MediaCodecList.

Change-Id: I5ac193cd40c82bbcd87c1e55003b78102e8d4674
ediaCodecList.h
MXCodec.h
df7e6ea0c755fb95a77d21010105e3a2eac69ff8 30-Mar-2012 Mathias Agopian <mathias@google.com> reduce IPCs in BufferQueue

Change-Id: I1f8c32a771a411476d225adc62d1f07c24f39a3e
urfaceMediaSource.h
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
kipCutBuffer.h
ed3e3e046840d5bf1ca84a8c0cc097425e89d6d6 26-Mar-2012 Andreas Huber <andih@google.com> Provisional support for secure decryption of media streams.

Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
Codec.h
ediaCodec.h
etaData.h
uMediaExtractor.h
MXCodec.h
oundation/AString.h
be9b24b86d2c84f2dc45bb8c8d1578b55cbd151d 24-Mar-2012 James Dong <jdong@google.com> Fixed missing return value from a method should have returned status_t

Change-Id: I83ad2735eaf8a8dfa5f8f29f30aec1311b3222de
urfaceMediaSource.h
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
MXCodec.h
kipCutBuffer.h
feba11fd788c99b0b63e0bce724730817688d82f 21-Mar-2012 Marco Nelissen <marcone@google.com> Add MetaData::dumpToLog

Utility method for dumping the content of a MetaData object to the log.

Change-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074
etaData.h
6da08fc33642b832d1cde2e46815a5fd67dd0016 20-Mar-2012 Marco Nelissen <marcone@google.com> Merge "Parse mp3 encoder padding/delay"
b636abde14f2612ea236257846b9ab15d87d4623 19-Mar-2012 Marco Nelissen <marcone@google.com> Parse mp3 encoder padding/delay

Get the mp3 encoder padding and delay from a XING frame or iTunSMPB tag.

Change-Id: Icde598c8857d7e7c187a718f478ee9799d6a1b8a
etaData.h
f9d660a5e0196240add5daf0199f128d471e592c 16-Feb-2012 Insun Kang <insun@google.com> Defines MediaPlayer APIs to support multiple audio/video/timedtext
tracks.

o Newly introduced APIs are (MediaPlayer):
getTrackInfo() / addExternalSource() / enableTrack() / disableTrack().

o Timed text tracks are supported only, for now.

o TODOs:
- Define the audio/video behavior for enableTrack and disableTrack.
- Refactoring AwesomePlayer / TimedTextDriver so that all types of
track index can be managed in the correct order and be ready for
supporting audio/video tracks.
(MediaExtractor and MediaSource for text file might be necessary.)

Change-Id: Idb85e1b3f2ed49a64f377d05472dd6663ce94e07
ediaDefs.h
imedtext/TimedTextDriver.h
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
ardwareAPI.h
etadataBufferType.h
MXPluginBase.h
penmax/OMX_Audio.h
penmax/OMX_Component.h
penmax/OMX_ContentPipe.h
penmax/OMX_Core.h
penmax/OMX_IVCommon.h
penmax/OMX_Image.h
penmax/OMX_Index.h
penmax/OMX_Other.h
penmax/OMX_Types.h
penmax/OMX_Video.h
56617834920554fc68a818da17b56e0c2ad8f254 06-Mar-2012 James Dong <jdong@google.com> Merge "Remove unused code - MediaSourceSplitter"
054a5a69374efae97924c83c2ee7ec7210bf3283 06-Mar-2012 James Dong <jdong@google.com> Remove unused code - MediaSourceSplitter

Change-Id: Icf37832a1c234501ee3ff91ff13eece2242425ae
ediaSourceSplitter.h
786618ffe881aceb64d65a6a2e2d76ede6e01ec0 02-Mar-2012 Jean-Michel Trivi <jmtrivi@google.com> Add channel mask in AudioSink

Add support for specifying a channel mask when opening an AudioSink.
This parameter does not replace the channel count parameter in order
to not have to duplicate the logic to derive a mask from the
channel count everywhere an AudioSink is used without a known mask.

A mask of 0 (CHANNEL_MASK_USE_CHANNEL_ORDER) means a mask will
be automatically derived from the number of channels.

Update existing AudioSink implementations to use the channel mask,
and users of AudioSink to specify the mask if available, and
CHANNEL_MASK_USE_CHANNEL_ORDER otherwise.

Change-Id: Ifa9bd259874816dbc25ead2b03ea52e873cff474
etaData.h
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
Codec.h
ediaCodecList.h
MXCodec.h
5687da3359c7939dbd982de9fa2e5f19e41ae411 29-Feb-2012 Andreas Huber <andih@google.com> Merge "Separate the notion of "stop" from that of "release", i.e."
c95c2ddcdfc974f42408a377fbe2de51b94a8c94 29-Feb-2012 Andreas Huber <andih@google.com> Separate the notion of "stop" from that of "release", i.e.

stop - means transition back to LOADED state and keeping the component
instance allocated.

release - means we get rid of the component completely.

Change-Id: I40ad01ce70821faaad43f57999249904f9144924
Codec.h
ediaCodec.h
3254b25e8b0f674ccc2226609e01dd86a600802e 27-Feb-2012 Insun Kang <insun@google.com> Moves TimedTextDriver.h into include/media/stagefright/timedtext.

So that other players can include TimedTextDriver.h properly.

Change-Id: I15e72bf655de8555eef6244a6c853c27a0828a1d
imedtext/TimedTextDriver.h
9eeafeb52fecf90882e9b44eeefcb7c3e16aa915 25-Feb-2012 Mathias Agopian <mathias@google.com> remove dependency on android_native{s_priv|buffer}.h

Change-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89
ardwareAPI.h
2d8bedd05437b6fccdbc6bf70f673ffd86744d59 21-Feb-2012 Andreas Huber <andih@google.com> Add new APIs AMessage::(set|find)Buffer to make it safer to pass

ABuffer objects through messages.

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

Change-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b
Codec.h
ediaCodec.h
ediaErrors.h
ativeWindowWrapper.h
uMediaExtractor.h
oundation/AMessage.h
b575ddce78d266fa218006f90306158dda5c8f56 14-Feb-2012 James Dong <jdong@google.com> Limit the amount of audio record data in each buffer

o The size of each input buffer should be less than or equal to kMaxBufferSize
o related-to-bug: 5977032

Change-Id: I04343169aac3df56694aad4ba7967ec45337ad7e
udioSource.h
7a8b0ed6419e57dd8b41d3806893d63d3df91aab 02-Feb-2012 Jean-Michel Trivi <jmtrivi@google.com> Playback rate on MediaPlayer

Add support for modifying the playback rate of a MediaPlayer
by altering the sample rate of its AudioTrack.
The playback rate is expressed in permille, where 1000 is the
playback at normal speed.

Change-Id: I981d060ab32f7bae7a767e82c60c88ae635dceed
udioPlayer.h
f1d5aa162c02a16b7195a43a9bcea4d592600ac4 07-Feb-2012 James Dong <jdong@google.com> Move away from MediaDebug and use ADebug instead

Change-Id: I963a3b6f79a7292891973cbeeaf3378b38629f08
ediaDebug.h
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
MXCodec.h
60c2b4ece6528d6d3f4e9e2c7e45772b65c4b87d 04-Feb-2012 James Dong <jdong@google.com> Don't call virtual function in destructor of SurfaceMediaSource

Change-Id: I3cbc2b1222335b61c814b5cdcfaefa495148b0ec
urfaceMediaSource.h
f9289a4ca88d8f72cb0d6b3ca16fbc44ef4a2aeb 04-Feb-2012 James Dong <jdong@google.com> Merge "Don't call virtual functions in the destructor for audio and camera source classes"
b44c9d2bdc0d5b9cb03254022a58e017b516e9e6 03-Feb-2012 James Dong <jdong@google.com> Don't call virtual functions in the destructor for audio and camera source classes

Change-Id: Ia74ffc1c0cbd7971697f5e3c476e340ec5c7727a
udioSource.h
ameraSource.h
ameraSourceTimeLapse.h
8bcc65c753085fe3328592cceda0cf0e8f8b0a45 03-Feb-2012 James Dong <jdong@google.com> Don't call virtual functions in destructors for the writer classes

Have not found any concrete bugs related to these calls yet, but we should avoid
calling virtual functions in destructors, regardless.

Change-Id: I2d47b79d3fb2d29f418619bee83aa147d232a5d4
ACWriter.h
MRWriter.h
PEG2TSWriter.h
PEG4Writer.h
fd267d7cf640225bb57f0ed1af44efc153275f6d 27-Jan-2012 Glenn Kasten <gkasten@google.com> Merge "Use audio_source_t consistently"
eba51fb3a361f67a6a64d5a16eba6084fe27d60e 23-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_source_t consistently

Was a mix of audio_source_t, uint8_t, and int.

Related fixes:
- fix comments in MediaRecorder.java
- AudioPolicyService server side was not checking source parameter at
all, so if the client wrapper was bypassed, invalid values could be
passed into audio HAL
- JNI android_media_AudioRecord_setup was checking source for positive
values, but not negative values. This test is redundant, since already
checked at Java and now checked by AudioPolicyService also, but might
as well make it correct.

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

Yay.

Change-Id: I74938a20b4e0a622836ea5184d3761180eb0f5de
MXCodec.h
9d2f386dd2885eaffa11fd494ae258bb09fe6397 10-Jan-2012 James Dong <jdong@google.com> Separate sniffing from session initialization

This avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened

o The change is backward compatibile in that no update is required
for existing drm plug-ins if they do not plan to provide separate
sniffer/extractor

related-to-bug: 5725548

Change-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c
ataSource.h
ileSource.h
ediaExtractor.h
d3d822204249eaca4259bdf46f6f0357b96e8e21 28-Nov-2011 Andreas Huber <andih@google.com> If an error occurs that prevents us from reallocating buffers during a format change

we need to transition to executing state anyway to be able to properly flush/shutdown
in the future.

Change-Id: Ie48bc09ea31942009ae3a5a45aabc9ffad9fb91f
related-to-bug: 5655016
Codec.h
e933cb5ae546d023ab756391a135c170874e7901 22-Nov-2011 Andreas Huber <andih@google.com> Merge "Report a runtime error instead of asserting on malformed avc configuration data." into ics-mr1
e8e5f86e9e310b065596c8cbbca1543eb833dee1 20-Nov-2011 James Dong <jdong@google.com> Fix log spamming during time lapse video recording

Change-Id: I4fc0809203684ebb02eaf217d7abad00aefc898f

related-to-bug: 5626569
ameraSource.h
ameraSourceTimeLapse.h
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
MXCodec.h
4948818cb91176df74c972ac27b2f392b5d148bc 09-Nov-2011 James Dong <jdong@google.com> Add support for retrieving location information in mp4/3gpp files

Change-Id: Ib8427704ef9ee5a4fa8fe1818c8a62d77b4ea687
related-to-bug: 5560253
etaData.h
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
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
MXCodec.h
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>
MXCodec.h
2944eca607304a095ea43ba2b8f0b9de61249f9f 08-Sep-2011 Andreas Huber <andih@google.com> Support for an MPEG2 Program Stream extractor.

Change-Id: I606d87c278f72b22a5b6d7ee57bce6b02e280d41
ediaDefs.h
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
exit.

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

Change-Id: I08c03219bf2d60fc5c6e89957bd4b4c615570983
Codec.h
dc9bacd838442a524585887e6ea6696836be2eda 26-Sep-2011 Andreas Huber <andih@google.com> Propagate error signalled by the source all the way to the output EOS notification.

Change-Id: I30e959a6d669f09745c59fbdebee08f869511cf7
related-to-bug: 5372901
Codec.h
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
MXCodec.h
cc54fbaa69c0b69929467449d2c19192f15b5039 12-Sep-2011 Andreas Huber <andih@google.com> Turn an another assertion into a runtime error in ACodec's implementation

Change-Id: I6779b29f200b90d088273ab3204724ef3d8d59bd
related-to-bug: 5284760
Codec.h
77d2e08add3ba24fdc527809408028efe3e06b6b 01-Sep-2011 Pannag Sanketi <psanketi@google.com> Merge "Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource"
ed362eccc7eabc669f9f39169e26662a7215d198 30-Aug-2011 Pannag Sanketi <psanketi@google.com> Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource

The buffers in SurfaceMediaSource were 4 earlier, whereas
we need 5 for one of the devices.

Change-Id: I87bf5e28bbb0f7c9661dc01b040baa903d95d2c2
urfaceMediaSource.h
df4a59c61103e7e0e9332e167a0be67da5d82ff3 30-Aug-2011 Eino-Ville Talvala <etalvala@google.com> Fix SurfaceMediaSource timestamp handling.

Was not basing timestamps on startTimeUs.
Now synchronizes properly with audio.

Bug: 4510826
Change-Id: I613db0aa91e51fc75d120e65540e742d8ab2ae43
urfaceMediaSource.h
6004f2dc9af4088e34cc72b1ac3c4a3c5cd4ae14 27-Aug-2011 Pannag Sanketi <psanketi@google.com> Merge "Modify enum value of OMX_COLOR_FormatAndroidOpaque"
790332a3170f967d58cee5d89cc92be8205d9aa3 27-Aug-2011 Pannag Sanketi <psanketi@google.com> Modify enum value of OMX_COLOR_FormatAndroidOpaque

The enum value chosen earlier had a conflict with one of the vendors.

Change-Id: I47832dd1157447f89324d56e8ab146260cd7927c
penmax/OMX_IVCommon.h
5df775d2f509c76e76a46615fca83dba95299f6e 26-Aug-2011 Andreas Huber <andih@google.com> Support for posting messages and synchronously waiting for a response.

Change-Id: Id6c7a08c34fd5cb6c4632f78ece9e7898b29e52c
oundation/ALooperRoster.h
oundation/AMessage.h
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
urfaceMediaSource.h
penmax/OMX_IVCommon.h
c92fd24c10a6bf80b346d7e261325434d9c6964b 16-Aug-2011 Andreas Huber <andih@google.com> Error handling in ACodec and Nuplayer.

Codec errors (and codec not found errors) now trigger a controlled shutdown
of playback and signal errors to the MediaPlayer client.

Change-Id: I2ee23ff2a1422d05a1a21e50ecb87d7c7ab958cc
Codec.h
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.
ardwareAPI.h
MXCodec.h
820a509687599edb8ff1a7577de8b9295f416263 09-Aug-2011 Mathias Agopian <mathias@google.com> return correct value from query after connecting a surface

the first time a surface was connected, the values returned
by query NATIVE_WINDOW_DEFAULT_{WIDTH|HEIGHT} and
NATIVE_WINDOW_TRANSFORM_HINT were wrong until a call
to queueBuffer was performed.

Bug: 5137366, 5121607
Change-Id: I7ac6b5b0daa876638f6bed7c20f286a6e6d984f6
urfaceMediaSource.h
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
ardwareAPI.h
MXCodec.h
f89d780df70b7fbb8465bce4913c46cca019721f 05-Aug-2011 Andreas Huber <andih@google.com> Eliminate superfluous memcpys by wrapping an ABuffer in a MediaBuffer

Change-Id: I1313f117cd7cdfaf7d6ec25413a0b4b8ea495037
related-to-bug: 5122973
ediaBuffer.h
b283ac1ac6758aba907bfe56713d279e8aafd38b 26-Jul-2011 Pannag Sanketi <psanketi@google.com> Merge "Adding Metadata mode to SurfaceMediaSource"
a4635b0cde4a4b7bf0f9aed6aaade60d88eb2fe6 25-Jul-2011 James Dong <jdong@google.com> Merge "Do not support still image capture mode for timelapse video recording"
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"
726e4527b7a750e688fec4c1e7c5f7b9a33d1623 24-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "QueryCodecs() signature change"
3cecf640c4daf2df616b278bd9986018c8182908 30-Jun-2011 James Dong <jdong@google.com> Do not support still image capture mode for timelapse video recording

related-to-bug: 4973779

Change-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45
ameraSourceTimeLapse.h
a361483bb5dbd3bbf132c5b99b2df7d197c3fc50 14-Jul-2011 Pannag Sanketi <psanketi@google.com> Adding Metadata mode to SurfaceMediaSource

SurfaceMediaSource operates in metadata mode only, i.e. just the
metadata is stored in videobuffers. SurfaceMediaSource passes the Gralloc
buffer handle along with a 4 byte 'type' (indicating that the metadata
is of type GrallocSource) to the encoder as opposed to the
GrallocBuffer itself.

Related to bug id: 4529323

Change-Id: I83aebc0dd10f317658cdf70be5802dfc35a1e72d
etadataBufferType.h
urfaceMediaSource.h
77882a8deb5167235ae591e49c9dcff9abb373c1 23-Jul-2011 Pannag Sanketi <psanketi@google.com> Merge "Connect MediaRecorder Native to SurfaceMediaSource"
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
MXCodec.h
29a142c7237821b6dc7bd1e8b56bb1efdc56767b 19-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: add the abandon method.

This change adds the 'abandon' method to the SurfaceTexture C++ class.
This method may be used to put the SurfaceTexture in an abandoned state,
causing all ISurfaceTexture methods to fail.

Change-Id: Ibd261f7b73f44e2bec36a8508bf92113cfb7cf95
urfaceMediaSource.h
b33f3407bab0970a7f9241680723a1140b177c50 02-Jul-2011 Pannag Sanketi <psanketi@google.com> Connect MediaRecorder Native to SurfaceMediaSource

Making a connection from MediaRecorder Native layer to the
SurfaceMediaSource for the purpose of encoding GL Frames. This will be
called from the java side inside the Mobile Filter Framework.

The mediarecorder native layer (client), when set the videosource to
option VIDEO_SOURCE_FRAMES, asks the StageFrightRecorder on the mediaserver
side to create a SurfaceMediaSource object and pass it back as a
sp<ISurfaceTexture> object. Using that, the client side will dequeue and
queue buffers. Connecting the GL Frames to the obtained
sp<ISurfaceTexture> is not part of this CL.

Related to bug id: 4529323

Change-Id: I651bec718dd5b935779e7d7a050b841c2d0b0fcd
urfaceMediaSource.h
85eafc680a0bf5e0253cf611ac525769fc9bef3e 22-Jul-2011 Jamie Gennis <jgennis@google.com> SurfaceMediaSource: remove getAllocator method

This change removes the getAllocator method from SurfaceMediaSource
because that method is no longer a part of the ISurfaceTexture
interface.

Change-Id: I0e2f0bc3bc1c8cd3c1b4b14246f07b9b4e3066c3
urfaceMediaSource.h
fe388eedca9f46ed3fee9579258acecd93e88641 22-Jul-2011 Pannag Sanketi <psanketi@google.com> Merge "Renaming SurfaceEncoder to SurfaceMediaSource"
10b7197cf9016093bdff20b6f7768543fd1c5720 22-Jul-2011 Pannag Sanketi <psanketi@google.com> Merge "Adding SurfaceEncoder for encoding FilterFrames"
0683eba6b35c396c21f10e926709f2f8fc05f090 18-Jul-2011 Andreas Huber <andih@google.com> Retry datasource fetches a few times before giving up (NuCachedSource2).

Change-Id: I147fc18ef55bc89d2e2fee69b7869c45abbfdd6b
related-to-bug: 3405354
ataSource.h
1a2fafbaa36390a06cc9a066fcbe147c8c47ea77 01-Jul-2011 Pannag Sanketi <psanketi@google.com> Renaming SurfaceEncoder to SurfaceMediaSource

Related to bug id: 4529323

Change-Id: Id820d45a536bd2c65e0a59def564eb5b3ea4a71c
urfaceEncoder.h
urfaceMediaSource.h
3399b7267185646c69b04352211fca4fad9d7547 11-Jun-2011 Pannag Sanketi <psanketi@google.com> Adding SurfaceEncoder for encoding FilterFrames

Adding SurfaceEncoder which can be used to encode
custom frame data. In a sense, it is reverse
of what SurfaceTexture does.

SurfaceEncoder takes in frames from a native window and
passes them to an encoder, thus acting like a MediaSource.
It uses GRAlloc buffers underneath for passing data.
The client side sets the geometry, format in the beginning,
which cannot be changed while the recording is going on.

Currently, there is no common pixel format that both
GRAlloc and HAL understand.
Also, the encoder cannot encode using the data from the GRAlloc
buffers.

The SurfaceEncoder_test examines mainly the buffer passage
since true encoding cannot be done at this point.
SimpleDummyRecorder 'reads' the frames in the same thread
as the start(), whereas DummyRecorder 'reads' in a separate
thread much like the MPEG4Writer. The test with DummyRecorder
is much closer to the real encoding implementation.

Related to bug id: 4529323

Change-Id: I58ec19a150f8fe4d6195196dc44f55002b46c7c8
ardwareAPI.h
ediaSource.h
urfaceEncoder.h
59d49c0b3b56b24c5b6d98cdfdcd75c537322f2e 20-Jul-2011 Pannag Sanketi <psanketi@google.com> Adding AndoirdOpaque Colorformat to OMX

Adding an enum to indicate an android opaque OMX
colorformat. This will inform the encoder that
the actual colorformat will be relayed by the
Frames read from the GRAlloc Buffers

Related to bug id: 4529323

Change-Id: Iddc5bd1ce8ca2b2506a57aadf5fc91ff0c7b78ef
penmax/OMX_IVCommon.h
7188e55f54a43c55fd6b96454720c447f1dc454e 21-Jul-2011 Jeff Brown <jeffbrown@google.com> Untangle MediaScanner error handling.
Bug: 5056917

Change-Id: I1a7a73579e3ba4e9709459329fc1901a28b0f4b1
tagefrightMediaScanner.h
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
MXCodec.h
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
MXCodec.h
15825c7b6f6b19092a5949b4e46aea4fa229932c 14-Jul-2011 James Dong <jdong@google.com> Merge "Support profile and level query for SW video decoders"
dab718bba3945332dc75e268e1e7f0fe2eb91c4a 14-Jul-2011 Andreas Huber <andih@google.com> Remove legacy http support from stagefright, chromium is the new hotness.

Change-Id: I6725d42d38b91e6a1cbca43174870f445aeb3d99
houtcastSource.h
5a5f9d636ed6c116993c6cad5abdad7a734992e8 12-Jul-2011 James Dong <jdong@google.com> Make MetadataBufferType.h C-friendly

Change-Id: I4388d8f6cf30f08858aec73aa971647feae4a5e3
etadataBufferType.h
3623b481fa2734b95d4553dafabca931e5d0502a 11-Jul-2011 James Dong <jdong@google.com> Merge "Do not wait for unlaunched threads in stop()"
411ba422e3635d534928ffd81abf54f4f291c739 09-Jul-2011 James Dong <jdong@google.com> Do not wait for unlaunched threads in stop()

Change-Id: If681749753bb96ee98c1539658cfd919eeb0cb65
PEG4Writer.h
457116d3a01618acf9a875020ca5860551ba03a6 11-Jul-2011 James Dong <jdong@google.com> Support profile and level query for SW video decoders

Change-Id: I9c20db128be96cd36cf2083e08e8c21f5e6d1fdf
MXCodec.h
ae4c1ac6401185539c03ce0819e174fd1b04b136 09-Jul-2011 James Dong <jdong@google.com> Release camera if CameraSource::start() has not been called

Change-Id: I2f7e4b8501db3d80b9aa6f99d896d778bec29e8c
ameraSource.h
5895e970ae119210773a5184c019178e2516b132 06-Jul-2011 Gloria Wang <gwang@google.com> Merge "- Retrieve is_drm in MediaMetadataRetriever. - Add one more column in MediaStore to indicate whether a media file is drm-protected. - Remove old DRM code from Ringtone - Use the new DRM code in RingtoneManager"
0d0edfb024f65f7e1097bf1814ae229ce9cb367d 27-Jun-2011 Gloria Wang <gwang@google.com> - Retrieve is_drm in MediaMetadataRetriever.
- Add one more column in MediaStore to indicate whether a
media file is drm-protected.
- Remove old DRM code from Ringtone
- Use the new DRM code in RingtoneManager

Change-Id: I1311fd1c04841c2cd47df6c901589966cf55a692
ediaExtractor.h
3eeab1a71b7e222b60c5413916c2f3c7ec61e37d 01-Jul-2011 James Dong <jdong@google.com> Merge "Add extended metadata buffer support by defining different types of metadata buffers"
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
ediaSource.h
etaData.h
MXCodec.h
32eea24fe93fd43e8078b1080db17304b27ed95a 28-Jun-2011 James Dong <jdong@google.com> Add extended metadata buffer support by defining different types of metadata buffers

Change-Id: I6aa6b5da004c240c9986f6b9036950e234c8bd42
etadataBufferType.h
3e1763ecdf14769a534f75e94a56785f63174b47 28-Jun-2011 Andreas Huber <andih@google.com> Support for writing output data to a provided callback function instead of a file

in MPEG2TSWriter

Change-Id: Ie54a5677c7b789a973aa50b7f197c6db238425bc
PEG2TSWriter.h
1065b3f17d3048948e7d522049d1980b90df3dc1 28-Jun-2011 Andreas Huber <andih@google.com> Multiple changes to ACodec/codec tools:

Make sure sf2 does not coalesce input buffers, generalize ACodec's codec
instantiation based on OMXCodec's list of eligible component names.

Some changes/additions to the "sf2" commandline tool

Make surface options consistent with stagefright tool, i.e. use '-S' instead of '-s'
New option '-R' renders surface-allocated buffers.

Also fixes a longstanding bug introduced when generalizing from surfaces to native windows that never used surface-allocated buffers in sf2 even when the option was specified.

Change-Id: I59fd533f0f6ef0337ebe2806ddc81a46878eb3ae
MXCodec.h
4ca2c7c913f8bd4ada13aca56d36045d42d1e00f 01-Jun-2011 Wu-cheng Li <wuchengli@google.com> Add framework support for camcorder zoom.

The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.

Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.

ICameraRecordingProxy
startRecording()
stopRecording()
releaseRecordingFrame()

ICameraRecordingProxyListener
dataCallbackTimestamp()

The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the
recording.

The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
(1) The app: MediaRecorder.start().
(2) The recorder: ICamera.unlock() and ICamera.disconnect().
(3) The recorder: ICameraRecordingProxy.startRecording().
(4) The app: ICamera.reconnect().
(5) The app: ICamera.startRecording().
4. During recording
(1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
(2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
(1) The app: MediaRecorder.stop()
(2) The recorder: ICameraRecordingProxy.stopRecording().
(3) The app: ICamera.stopRecording().

bug:2644213

Change-Id: I15269397defc25cbbcae16abc071c8349c123122
ameraSource.h
ameraSourceTimeLapse.h
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>
olorConverter.h
penmax/OMX_IVCommon.h
3b573f7bf1c5736d500e39013b8d32478a1429e6 01-Jun-2011 Gloria Wang <gwang@google.com> Timed text display format support:
1. Extract 3GPP global format descriptions
2. Extract 3GPP local format descriptions
3. Define data structure (TimedText) for applications to
retrieve the format metadata

Change-Id: I6eac2a78df29ee15beee456656331fdd83b24e8e
etaData.h
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
etaData.h
MXCodec.h
57ca262f8d1c0aabeea294ddb53e4db172fc6bec 03-Jun-2011 James Dong <jdong@google.com> Move OMX_QCOM_COLOR_FormatYVU420SemiPlanar definition to OMX_IVCommon.h

Change-Id: I5cbc7246a63301fa7ff735fa3d6512e940608d2b
penmax/OMX_IVCommon.h
b33d2ac90cfce0fe6db8c3e979e7ae2bbfc28163 02-Jun-2011 James Dong <jdong@google.com> Do not call getEstimatedBandwidth if the streaming is not HTTP-based

Change-Id: I4ab6c57e5b2b989676b8dfbb98402d10a5752261
ataSource.h
d217a8c4632b3e3065f8c2a26b9ce4dc4c97171f 02-Jun-2011 Glenn Kasten <gkasten@google.com> Revert "Use AudioTrack::event_type not int in callback"

This reverts commit 2225e4b7049fa3fb9d39a068b8268b63c952d7c1
udioPlayer.h
013b5a67d6f8e12a1b06e74863daec1bee4d99c1 05-May-2011 Glenn Kasten <gkasten@google.com> Use AudioTrack::event_type not int in callback

Change-Id: Ifefc708d46874e04fd0d01cb6e2d43b987ee796c
udioPlayer.h
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
ediaDefs.h
2cf9c5073ca3342ee52673ad68763fadd2c2be79 18-May-2011 James Dong <jdong@google.com> Revert "Add const to the finders method in MetaData.cpp"

This reverts commit 78fed171d9d62b25aa846d7373a7040e3fd2241e.

Conflicts:

include/media/stagefright/MPEG4Writer.h

Change-Id: Ie6f497f67a473ad95b50bb949c1aa49e1804bac3
PEG4Writer.h
etaData.h
86b7f47aa7482424cf8fd248f1315311919be3b0 10-May-2011 James Dong <jdong@google.com> Support platform and camera dependent recording start time offset

related-to-bug: 4390777

Change-Id: Icb52973ad4ac716f04fb103ef527915a966d06d5
PEG4Writer.h
07b1bb529a1ae76c46a71b01338c166f9490629d 12-May-2011 James Dong <jdong@google.com> Support for storing geo information in the recorded mp4/3gpp file.

o Geo data (latitude and longitude) is stored in udta box

Change-Id: I76e4aeb741c4b339f3753d3d28190151f3ea4919
related-to-bug: 4260295
PEG4Writer.h
6b25afcd9df2f1f0cc3ae03bf133f75464910560 13-May-2011 Gloria Wang <gwang@google.com> Merge "Add one more DRM error code. For bug 4422428."
5c26937264d9748a3db2a554c188e517523aa31a 13-May-2011 Gloria Wang <gwang@google.com> Add one more DRM error code. For bug 4422428.

Change-Id: I4e333f474c96c0e0f162dde4013ad32b336bebd6
ediaErrors.h
64760240f931714858a59c1579f07264d7182ba2 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
udioSource.h
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
MXCodec.h
penmax/OMX_Video.h
70ccfd44c4bfe95ddecc2df6c3695efc48229d72 06-May-2011 James Dong <jdong@google.com> Add send session recording summary report to application

Change-Id: I9c63ddae432f0c93486c39776ed0a058a8649602
PEG4Writer.h
4650ff0e86f9e815e3152a806a06c700418d071d 09-May-2011 James Dong <jdong@google.com> Add const to the finders method in MetaData.cpp

o also fixed the MPEG4Writer writeFtypBox() to take a const pointer to MetaData

Change-Id: Iaecdbe6aeab345f6dc72aac0d19f9704b6e0d28a
PEG4Writer.h
etaData.h
b21c564ce47041f9dd3ab65e36fed57c4937a42d 07-May-2011 James Dong <jdong@google.com> Refactor MPEG4Writer::writeTrackHeader() method

o most of the mp4 file boxes has its own method now
TODO: remove some of the duplicated code for esds box, for instance.

Change-Id: Iae3dbb2410b79bc79aaee081b80569d339993c47
PEG4Writer.h
760943b5e7a09b602aba04ec451e97662f48b0a4 21-Mar-2011 James Dong <jdong@google.com> Initial check-in for AACWriter

Change-Id: Ia21ca39a404484b2dda25c6101780d2ff11c4623

related-to-bug: 4211046
ACWriter.h
89dc0dffdcbf0999a854a9b1bbea8f56395cc209 04-May-2011 Gloria Wang <gwang@google.com> Merge "Initial CL for the timed text support: - Add support for MP4 timed text - Add API for app to turn on/off a text track - Add timed text metadata(language) in the MediaMetadataRetriever"
7a1e3e81264189e23a1db2b174e1b5a5d4c7d1c3 04-May-2011 Gloria Wang <gwang@google.com> Initial CL for the timed text support:
- Add support for MP4 timed text
- Add API for app to turn on/off a text track
- Add timed text metadata(language) in the MediaMetadataRetriever

Change-Id: I0055beba38ac761627dbcc6d581ae9582d68bb94
ediaDefs.h
etaData.h
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>
ardwareAPI.h
7340743ce30766af6334bbd9acf813eb66dd5a60 29-Apr-2011 Gloria Wang <gwang@google.com> Add DRM errors in the DRM frameworks to MediaErrors also.
For bug 4350156.

Change-Id: Ib5711ec642178a49203a448b7f5114e675d49394
ediaErrors.h
5d4478556299c656b5bb940e83277e01233ec015 28-Apr-2011 Dima Zavin <dima@android.com> Merge changes I22d9e018,Ib0701fcc,Ibc637918,I9eb7e002,I4adcec73

* changes:
audioflinger: don't do work in constructor, instead do it in onFirstRef
audioflinger: enumerate all the possible audio interfaces
audio/media: convert to using the audio HAL and new audio defs
libmedia: move AudioParameter out of AudioSystem
audioflinger: move legacy audio hw/policy out to libhardware_legacy
fce7a473248381cc83a01855f92581077d3c9ee2 20-Apr-2011 Dima Zavin <dima@android.com> audio/media: convert to using the audio HAL and new audio defs

Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
udioSource.h
6a62b8747b0d0c05ed315d26612d61ca085f32b7 27-Apr-2011 Gloria Wang <gwang@google.com> am d84df054: am 96974931: am 83ddcdf7: Add heartbeat error codes into MediaErrors.h

* commit 'd84df05490e8b102e81cca848f65c174398be1b6':
Add heartbeat error codes into MediaErrors.h
84f64d2a48a267c6517df69dd757c1ead54db036 27-Apr-2011 Gloria Wang <gwang@google.com> Add heartbeat error codes into MediaErrors.h

related-to-bug: 4322415

Change-Id: I78137c61e3a8ce9afcb9fb38cb77a83561b9b72d
ediaErrors.h
f8374dec590223ebdd6959b26d9ba90749dd8328 24-Mar-2011 Andreas Huber <andih@google.com> Support for divx files, i.e. mpeg 4 video + mpeg audio layer III in .avi files

Change-Id: I6e1e989c43300ddb0d341e3e9183cdccd69eeae6
related-to-bug: 4192562
ediaDefs.h
6511c9755c3a3360ba869772600c7aae048a7ffc 30-Mar-2011 Andreas Huber <andih@google.com> Stagefright DataSources now expose the underlying content mime type.

Use that mime type to determine if we should do upfront buffering at the start of
playback and don't for audio streams to ensure playback starts fairly instantly.

Change-Id: If21e36d1b024f0e5c723911bceadaa2e0307ab42
related-to-bug: 4090916
ataSource.h
108dddf924d714c811dd565b8f4c7a0178cca2f2 29-Mar-2011 Iliyan Malchev <malchev@google.com> frameworks/base: some camera-interface cleanup

Methods getNumberOfVideoBuffers() and getVideoBuffer() as well as struct
image_rect_struct are no longer used (instead, the necessary information is
passed through ANativeWindow.)

Change-Id: If4b11446fc9ccbde1f6b45bc70c0d0b8e54376eb
Signed-off-by: Iliyan Malchev <malchev@google.com>
ameraSource.h
84b343f29063fbfa2ee61b2e3d37ba059ca507d4 22-Mar-2011 Andreas Huber <andih@google.com> Delay signaling the end of audio playback until all frames have actually played.

Change-Id: I1fa07358a885a818fd0a5d7da425740f86095e10
related-to-bug: 3404000
udioPlayer.h
bc07bcc65e91c7aea9713631ae67760dcf1b0286 18-Mar-2011 James Dong <jdong@google.com> Better organize media recorder error and information event and types

Change-Id: I45f1f953596985494725525c1fabf57eccc19175
PEG4Writer.h
c901f74404435cc1cf2717016e2b0092b6dcea24 17-Mar-2011 James Dong <jdong@google.com> am 782ffe91: am 9c0c5b56: am 2f1f2248: Fix missing AOSP copyright headers for a bunch of media framework files

* commit '782ffe91da665c6b1fb9e297faa6e0dc6035f40c':
Fix missing AOSP copyright headers for a bunch of media framework files
27c174483a8ae9688d5d4897c19074f62c7f1701 17-Mar-2011 James Dong <jdong@google.com> Fix missing AOSP copyright headers for a bunch of media framework files

bug - 4119349

Change-Id: If5924e16a5f596d5d73d9beb66eaf5ac9a6f0e50
Codec.h
ediaDebug.h
oundation/AHandlerReflector.h
oundation/AHierarchicalStateMachine.h
884d064fbf7f45f8089abd7d87bdca5d325cc2ab 11-Mar-2011 Glenn Kasten <gkasten@google.com> am 055066e1: am 92f2f3ff: Merge "Bug 3012968 DRM output control" into honeycomb-mr1

* commit '055066e1e77d944383360d50057f5b8187f23c0b':
Bug 3012968 DRM output control
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
MXCodec.h
b5ce361d19e69fe156f7188c9ee0f4734b259874 25-Feb-2011 Gloria Wang <gwang@google.com> Fix for bug 3477330
This patch fixs a crash bug caused by using a NULL DecryptHandle pointer.
Fix by using sp<DecryptHandle> instead.

Change-Id: Icbd59858385e8256125a615a3c82656b25319d44
ataSource.h
ileSource.h
e2ce6458659c6e1bad420357b61dc10cd8bbe2ab 24-Feb-2011 Jamie Gennis <jgennis@google.com> Add an OMX IL API for querying buffer usage flags.

This change defines an OpenMAX IL API for querying from the IL component
the gralloc buffer usage flags that should be used to allocate the
buffers. It also adds the Stagefright plumbing for using the new OMX IL
API.

Change-Id: I046b5e7be70ce61e2a921dcdc6e3aa9324d19ea6
Related-Bug: 3479027
ardwareAPI.h
1173118eace0e9e347cb007f0da817cee87579ed 09-Feb-2011 Glenn Kasten <gkasten@google.com> Bug 3438258 Add SurfaceTexture as MediaPlayer sink

This change enables the use of a SurfaceTexture in place of a Surface
as the video sink for an android.media.MediaPlayer. The new API
MediaPlayer.setTexture is currently hidden.

This includes:
- New Java and C++ interfaces
- C++ plumbing and implementation (JNI, Binder)
- Stagefright AwesomePlayer and NuPlayer use ANativeWindow
(either Surface or SurfaceTextureClient)

Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
ativeWindowWrapper.h
55e26193c885b7d5acdae9978848e6587987790f 22-Feb-2011 Andreas Huber <andih@google.com> Support more MPEG4-LATM audio functionality.

related-to-bug: 3474610

Change-Id: I6dab40e8b465922c62be9ee7f168718822c6caac
Now skipping extra header that the spec claimed shouldn't be present in LATM...
oundation/ABitReader.h
a472613aec322e25891abf5c77bf3f7e3c244920 16-Feb-2011 James Dong <jdong@google.com> A/V synchronization at the beginning of a recording session

o do not use edts/elst boxes since these optional boxes are ignored
o manipulate the first video/audio frame duration to make sure that the rest
of the audio/video is in sync (ideally, we should only manipulate
the vidoe frame duration, not the audio)
o reduce the initial audio mute/suppression period, which is used to
eliminate the "recording" sound.

bug - 3405882 and 3362703

Change-Id: Ib0acfb4f3843b365157288951dc122b006299c18
udioSource.h
6b61f4355db1974cd0f0dfaa4effdd7117b9f09b 15-Feb-2011 James Dong <jdong@google.com> Decouple AudioRecord read and audio encoding

bug - 3313754

Change-Id: I951dd0e21e34aa1412c391f003bc32103d0424b0
udioSource.h
d48a6044fddc910f17e67650f280e91e7aaf5e65 16-Feb-2011 Gloria Wang <gwang@google.com> Merge "Add AAC extractor"
50c44c79d2d7dd6cd1485d9d939f67f80b8da1ca 02-Feb-2011 Gloria Wang <gwang@google.com> Add AAC extractor

Change-Id: Iedb08525ac72e65ba98e5c791734da0720a0e3f6
ediaDefs.h
244ba87d20aeb29c9cad727820fa1e803ec3643c 12-Feb-2011 James Dong <jdong@google.com> Make available h263 DSI information from MPEG4Extractor

bug - 3446863

Change-Id: Idbaf7a564d544784fdbc36ed0339c98a519adc88
etaData.h
fcac8fa9421f442f024018628a6042d7a14fbfb0 09-Feb-2011 James Dong <jdong@google.com> Reduce blocking time in file write

bug - 3418787

Change-Id: I4723662bf46ed07271be8468f84ae5d93cb793fa
PEG4Writer.h
eeffad65d2db4879593c1d4806824ef5b4dcb3e1 08-Feb-2011 Andreas Huber <andih@google.com> Merge "Handle some edge cases when seeking while starting up OMXCodec"
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
MXCodec.h
889b340ec736a9d3e3e690256d305cc8740f0c4b 07-Feb-2011 Gloria Wang <gwang@google.com> - Do not use global DrmManagerClient
- Release the DrmManagerClient and DecryptHandle in DataSource
Fix for bug 3429811

Change-Id: I549f72b75225751877eb0e630ce8098f8ec6316f
ataSource.h
ileSource.h
349d3fcb4afacf754f7b5b5186d2f258f5bf35e7 04-Feb-2011 Andreas Huber <andih@google.com> Improvements/fixes to ACodec.

- Make sure ACodec reverts its state when it's shutdown
- Defer "resume" to after handling the OutputPortSettingsChange

- If the OMX_EventPortSettingsChanged event comes in while we're flushing, defer it
and make sure the output port can be disabled by deleting all buffers not already
owned by the component.

Change-Id: I1f8cdffa71237b57d4275a48b834647a7b263e8b
Codec.h
856990b491d84b7ed4fefe337485c8997ba9dd02 13-Jan-2011 Glenn Kasten <gkasten@google.com> Bug 1804058 FLAC extractor

Note: dependent on external/flac for libFLAC

Implemented and tested:
* FLAC container
* mono and stereo
* standard sample rates
* standard bit depths
* sniffer
* media scanner
* Vorbis comment metadata including album art
* random access seeking with "torture test"
* web browser integration for audio/flac (not audio/x-flac), but
note that most web servers don't correctly report the MIME type

Not implemented:
* 24-bit to 16-bit dither or noise shaping in AudioFlinger
* 96 kHz to 44.1 or 48 kHz downsampling low pass filter in AudioFlinger
* replay gain is better done in AudioFlinger
* multi-channel, would need AudioFlinger support
* Ogg container, does not seem to be very popular yet

Change-Id: I300873e8c0cfc2e95403d9adb5064d16a2923f17
ediaDefs.h
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
ameraSource.h
MXCodec.h
0a095d09464ba18e288a3f529410af0f1257ac2a 26-Jan-2011 Mike Lockwood <lockwood@android.com> StagefrightMediaScanner: Close metadata retriever after we are done scanning

This prevents the mediaserver from leaking a file descriptor after
the media scanner runs

BUG: 3373546

Change-Id: I82a8bae82306de3da56a5c7da5b03ecf106a4efc
Signed-off-by: Mike Lockwood <lockwood@android.com>
tagefrightMediaScanner.h
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
MXCodec.h
bc7f5b2e56107cfeaeeab13cf8979379e3c2f139 21-Jan-2011 Andreas Huber <andih@google.com> Some tweaks to HTTP live / nuplayer behaviour

- play audio-only streams again
- workaround for malformed streams that switch PIDs across bandwidths
- attempt to pick a different bandwidth stream if the previously chosen one appears
to be malformed/unsupported.

Change-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9
related-to-bug: 2368598
oundation/ADebug.h
b45c01c2b8588ff431b511151666a55a39f0a6ae 16-Jan-2011 James Dong <jdong@google.com> Fix the presentation video resolution when it is different from the actual image resolution of the video.

bug - 3352413

Change-Id: I8f08f3896e9fb90f09119dccdb88b82af60f79f2
etaData.h
ccb3506ed1845121b94f4e27244e61a46eb19815 17-Jan-2011 Dharmaray Kundargi <dharmaray@google.com> integrate videoeditor preview player.

Change-Id: I83084f494605c8e6f4d198afa8c36f9e29579667
udioPlayer.h
32ad210e4e4bcbdf912a01c9d2ff105cb3c5056f 10-Jan-2011 Andreas Huber <andih@google.com> Merge "NuPlayer now properly sends MEDIA_SET_VIDEOSIZE notifications." into honeycomb
31e2508c75018145a8238925ff1a08cbde4e799a 10-Jan-2011 Andreas Huber <andih@google.com> NuPlayer now properly sends MEDIA_SET_VIDEOSIZE notifications.

Change-Id: I99b4223ad6ecfd8839a3c0e737fef3165565d76d
related-to-bug: 3336496
Codec.h
oundation/AMessage.h
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
MXCodec.h
11f8109ad8646d3acd9a0987613229cde59d52c1 06-Jan-2011 Marco Nelissen <marcone@google.com> Add support for the "compilation" tag in mp3, mp4 and ogg, and also add
support for two common ways of specifying album artist in ogg files.
b/3311831

(cherry-picked from GB because of weird automerger failure)

Change-Id: Ibf12a3d6bc8bbc2ac5ea815de6b33414b8f53f0f
etaData.h
b1787e3b95e96cc002377d41518cc183f64b58c4 06-Jan-2011 Andreas Huber <andih@google.com> Colorconverter may not support some src/dst bitmap configurations.

Let it return an appropriate error code instead of asserting.

Change-Id: I7fe0dfa169e1cbdecb04c5fcbe8501e73362d05e
related-to-bug: 3328212
olorConverter.h
d1108d74e13a74dc72e49513e0393e924f3d112c 06-Jan-2011 James Dong <jdong@google.com> am a8ce7736: am 35e8dcb9: Merge "Suppress the recording sound in the recorded video" into gingerbread

* commit 'a8ce773607c26dd4336f57856afce507fb98a279':
Suppress the recording sound in the recorded video
e6bf51ea9c5a4c1294e9a6c26d8a9b86534fee1f 06-Jan-2011 James Dong <jdong@google.com> am 35e8dcb9: Merge "Suppress the recording sound in the recorded video" into gingerbread

* commit '35e8dcb9df8c3d77ede120e3f1aaf842b2928639':
Suppress the recording sound in the recorded video
91dcf1510491c4128f506a0d28e64de5ecbf459d 05-Jan-2011 James Dong <jdong@google.com> Suppress the recording sound in the recorded video

bug - 3309194

Change-Id: Ib8fb248943bc22f963d67537bfdbc6056c5a159b
udioSource.h
28934a90e168291f6c77c56e8a05f272e5151bbd 05-Jan-2011 James Dong <jdong@google.com> Use video output if necessary for timelapse video recording

Change-Id: I88d0cc824f0fbf8b2f392fbc23c69b5bfefda1b8
ameraSourceTimeLapse.h
2c2814b900a61fa07ddfff860b143fbbe9c740e9 16-Dec-2010 Andreas Huber <andih@google.com> Properly announce decoder output format changes, make sure AMessage::dup does.

Change-Id: Ia77f6b6d5e5c5055583740dfe876b8a3c22be9b6
Codec.h
oundation/AMessage.h
f933441648ef6a71dee783d733aac17b9508b452 16-Dec-2010 Andreas Huber <andih@google.com> Initial support for a true streaming player for mpeg2 transport streams.

Change-Id: I153eec439d260a5524b21270e16d36940ec3161a
Codec.h
oundation/ADebug.h
oundation/AHierarchicalStateMachine.h
oundation/AMessage.h
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.

Conflicts:

media/libstagefright/AudioSource.cpp
media/libstagefright/CameraSource.cpp

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

Change-Id: I90410f2ac0d8ff86076a239dc6e281b1bc4d8643
MXCodec.h
97f2c9d530c9663deeb840f332dee205a7a11cdd 07-Dec-2010 Andreas Huber <andih@google.com> Merge "API Support for both synchronous and queued commands, optionally associated metadata."
14acc736e336cbd6026df781d4f411e908831815 06-Dec-2010 Andreas Huber <andih@google.com> API Support for both synchronous and queued commands, optionally associated metadata.

Change-Id: Idb90d64cb638942210c5822b3cba2f05b087d601
oundation/AMessage.h
ea7b485595f8cec6a66668b5c54c8f297d843f77 05-Dec-2010 James Dong <jdong@google.com> Remove check if the target video resolution is not supported by CameraSource
and clean up Camera is CameraSource could not created.

bug - 3254411

Change-Id: I43497c450e7007de5ce027e2912b1421119e8887
ameraSource.h
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
olorConverter.h
etaData.h
674ebd0b4e1143e38392a4e3bb38b4679a4577bc 19-Nov-2010 James Dong <jdong@google.com> Removed uncessary FILE structure pointer for I/O

o also move the fd owner from caller to callee in the Writers

Change-Id: I510ccfdd0fcc58f1777fea4ed1349fd251852c65
MRWriter.h
ileSource.h
PEG4Writer.h
c7fc37a3dab9bd1f96713649f351b5990e6316ff 16-Nov-2010 James Dong <jdong@google.com> 64-bit file size/offset support for media framework

Change-Id: I3452bc2c0f1d990cc67285df2fce1f9f86ff8e10
MRWriter.h
ataSource.h
ileSource.h
PEGSource.h
PEG4Writer.h
14d32754d3a9c1ccf49188c489f224800cd747a7 18-Nov-2010 Gloria Wang <gwang@google.com> Merge "Add getUri() for streaming"
771b85d9245a24273497792a2515d88d31c99e1e 10-Nov-2010 Gloria Wang <gwang@google.com> Add getUri() for streaming

Change-Id: I56e15e67cc5f4d0f41c9e2985404a4d89d757e7e
ataSource.h
0a5ca668c6f7d45706e9aec4a1dfec0aacc6d233 16-Nov-2010 Andreas Huber <andih@google.com> Remove all traces of legacy renderer support in stagefright.

Change-Id: I17b8e0dbf53fca37c96830c41131b4bc0c24ca6d
ardwareAPI.h
ideoRenderer.h
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
etaData.h
b50a8033f1c7c2b58913212825f9200f1a9e5652 11-Nov-2010 James Dong <jdong@google.com> Add color format query support to QueryCodecs()

Change-Id: Ic8589649cd09392a1b969a30082b4c9c4e6cc6a7
MXCodec.h
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
MXCodec.h
13f6284305e4b27395a23db7882d670bdb1bcae1 09-Nov-2010 James Dong <jdong@google.com> Rotation support

- We only support 0, 90, 180, and 270 degree clockwise rotation

- Some players are known to ignore composition matrix in the MP4 file,
although this is part of the MP4 file standard.
Both QT and YT are supporting the rotation

The original patch (65a73f4e8c79d05c0d9001b660325748d4ecf37b) was not merged.
The only change I made is to reuse the same kKeyRotation in MetaData.h;
and thus do not neeed to use kKeyRotationDegree.

Change-Id: Ib328716d4842201c4adf57e4ddfe1f1ac1ae4d8a
PEG4Writer.h
30db2709395c73fb3b4ee334119ceba68c95ab13 09-Nov-2010 James Dong <jdong@google.com> Fix a build break due to the missing kKeyRotation

Change-Id: I6bf030c946abe7a95f8f7bc464e6507fb02cf39c
etaData.h
3baff73198ce852fa60080bd32703028298b4d65 08-Nov-2010 Andreas Huber <andih@google.com> resolved conflicts for merge of 31dc911a to gingerbread-plus-aosp

Change-Id: I2f51b2120b3c552566d91a7dc498a5e8b130205f
4974d5eaf838d893c418b85bd47f6f114d9b5aaa 06-Nov-2010 James Dong <jdong@google.com> am 1653e261: Merge "Rotation support" into gingerbread

* commit '1653e261e84922facfe27d3d8acc455ed2b6b6da':
Rotation support
85d9b4225d024bb0d602b48bd6d5219cbebd7b8e 04-Nov-2010 Andreas Huber <andih@google.com> Support post-decode video rotation.

Change-Id: Ia371316e73a57e44610de86adce3eaa560afbf84
ardwareAPI.h
etaData.h
aca1fe35480ae76dd6bae167ade40adc955e2d0d 17-Aug-2010 James Dong <jdong@google.com> Rotation support

- We only support 0, 90, 180, and 270 degree clockwise rotation

- Some players are known to ignore composition matrix in the MP4 file,
although this is part of the MP4 file standard.
Both QT and YT are supporting the rotation

Change-Id: I1b7f66a801e9d9c49d889c9b06dd6173fa7e76c4
PEG4Writer.h
etaData.h
412abda7a92b842378ecb5fd9bdb43a73d29f468 05-Nov-2010 James Dong <jdong@google.com> Merge "Use meta data in the media recording framework"
c2daea219b626a961d5ccef0b6b22c2496509748 05-Nov-2010 Gloria Wang <gwang@google.com> Merge "Add support for WV DRM"
b371426ce4cf2fa6d8c3d1903b61322feb165d35 01-Nov-2010 Gloria Wang <gwang@google.com> Add support for WV DRM

Change-Id: I0408c5e0a488f112a84337b21b0cd4613a4da461
ediaDefs.h
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
MXCodec.h
ed45fe0730a7e7fc9944741428f5a484350acc8a 02-Nov-2010 Jamie Gennis <jgennis@google.com> Fix a MediaBuffer leak in Stagefright.

Change-Id: I548e60b07cf1676476874b156cfbc4ffefdfa2b9
MXCodec.h
26490f71a5a50b2200d60de28ad0ea6b1d0a1847 03-Nov-2010 James Dong <jdong@google.com> am f3847e87: Merge "DO NOT MERGE" into gingerbread

* commit 'f3847e875eb1c58094a2d159a2a6f3f0b381d77a':
DO NOT MERGE
63a0a11e8b3292253b3d3bf3a7f7dc733cf6762f 03-Nov-2010 James Dong <jdong@google.com> DO NOT MERGE

Fix premature release of recording frames when physical address or metadata is stored in input video buffers

- bug 3158459

Change-Id: If297189d2a87fc3abfda68c29ac75b490b30a902
MXCodec.h
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
ardwareAPI.h
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
MXCodec.h
aceaaf303422bbe3a7b8d9cdb96495dbf8109c23 26-Oct-2010 Gloria Wang <gwang@google.com> resolved conflicts for merge of 965f960e to master

Change-Id: I63cec8ffb3593216da1de03428134d89e75b9338
a9741a9232c81eaf59179acef91f5be46c42264e 26-Oct-2010 Gloria Wang <gwang@google.com> resolved conflicts for merge of 9084631d to gingerbread-plus-aosp

Change-Id: Ie2b675d50bfca3f33aee80f1a67c9f03d1f97472
dcd25efb46c41c8d24a0a9cf61fb57f84149709e 22-Jun-2010 Gloria Wang <gwang@google.com> DRM framework support:
- add a sniffer for DRM files
- add DRMSource and DRMExtractor for es_based DRM
- add pread in FileSource.cpp for container_based DRM
- add native DRM framework API calls in the player for
DRM audio/video playback

Change-Id: I4b9ef19165c9b4f44ff40eeededb9a665e78a90f
ataSource.h
ileSource.h
ediaErrors.h
ediaExtractor.h
etaData.h
5b2146fc017b02bb5f096b1ac336efd3558a117c 22-Oct-2010 James Dong <jdong@google.com> Merge "OMX extension to support storing meta data in video input buffers during recording"
e870772a78ffe08b1c14a791e368f1499f1be0f3 21-Oct-2010 James Dong <jdong@google.com> OMX extension to support storing meta data in video input buffers during recording

bug - 3042125

Change-Id: I7543809fa4ff61d48da35eec6c2bd5eaa7e8cead
ardwareAPI.h
cf5e77c0676f6af1685de30ad902fe94e476907f 21-Oct-2010 James Dong <jdong@google.com> am 8ad6335d: am fa7a87fb: Merge "File writer size estimation improvement" into gingerbread

Merge commit '8ad6335d2c22900de5b46460473495b5bcea9f99'

* commit '8ad6335d2c22900de5b46460473495b5bcea9f99':
File writer size estimation improvement
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
ANativeWindow.

Change-Id: Ida66f836503255a68d378c6903d96dfe9747ce87
ediaBuffer.h
etaData.h
MXCodec.h
5c9523154d106b555db6c41f85ab205a4f189b02 19-Oct-2010 James Dong <jdong@google.com> Make camera source ready for handling meta-data video buffers.

bug - 3042125

Change-Id: I877b265c6bf8e0593121c8d5a95ae5599cdc6fb9
ameraSource.h
78a1a286f736888ae7af8860b2c424af0d978848 20-Oct-2010 James Dong <jdong@google.com> File writer size estimation improvement

o Do not count the reserved space for moov if the meta data size is small
o Do not count the extra 1KB disturbing small file estimation.
o Reduce the default minimum reserved space from 4 KB to 3 KB.
o Estimate the moov size based on both duration AND file size limit is set
and set it to the smaller estimated value.

low risk change

bug - 3111983

Change-Id: I6ac2adb979d8cc12d6b4f1813d000c989add0199
PEG4Writer.h
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
MXCodec.h
3e00cc070090fa3eab16792da90aa33823cd6db1 18-Oct-2010 Andreas Huber <andih@google.com> am 746c6a1c: am ff7a7a45: Merge "Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore." into gingerbread

Merge commit '746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4'

* commit '746c6a1c6d70769ee4b08b9a7b87d0c5aa65c2e4':
Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.
b10d28f233bb881cc12260c320892e5feb198e9a 15-Oct-2010 Andreas Huber <andih@google.com> Check-in of a copy of the Khronos OpenMAX headers formerly included from external/opencore.

Change-Id: Ie2ecf9558d4ee80cb5a2bbe66ad49f2165a7b09c
related-to-bug: 3101573
penmax/OMX_Audio.h
penmax/OMX_Component.h
penmax/OMX_ContentPipe.h
penmax/OMX_Core.h
penmax/OMX_IVCommon.h
penmax/OMX_Image.h
penmax/OMX_Index.h
penmax/OMX_Other.h
penmax/OMX_Types.h
penmax/OMX_Video.h
f9f083e2853740c97588f4db82c24645ae5880e4 15-Oct-2010 Kenny Root <kroot@google.com> resolved conflicts for merge of a127c07c to master

Change-Id: Ifdfc6681cba00f36456eaf7a97f34a75b9d0c086
d6119356f45c9c57cac812357d969ecc3001087e 15-Oct-2010 Andreas Huber <andih@google.com> am 28b93967: am 165c6579: Merge "HTTP Live content that are tagged as complete are now seekable." into gingerbread

Merge commit '28b93967d0e702304c7edec854a29d5ab88bfce0'

* commit '28b93967d0e702304c7edec854a29d5ab88bfce0':
HTTP Live content that are tagged as complete are now seekable.
5cb77e080ced5362b5f047e107327b3cb6ece6c9 13-Oct-2010 Andreas Huber <andih@google.com> Merge "Support for writing to MPEG2 transport stream files." into gingerbread
59b7dc39ea8332d3418a599e51447d7edb612ac4 12-Oct-2010 Andreas Huber <andih@google.com> Support for writing to MPEG2 transport stream files.

Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
PEG2TSWriter.h
bff07d0b22a5ee2d9f044f6cb5e4be1532017ab0 12-Oct-2010 Andreas Huber <andih@google.com> HTTP Live content that are tagged as complete are now seekable.

Change-Id: I9d0d2f009f883e5baf3e9de8c5c0aa05760e4bde
related-to-bug: 2368598
ataSource.h
9086ce254ac8769dbe90afd5146fce509a86418f 11-Oct-2010 Andreas Huber <andih@google.com> am 2b4f1f4c: am f72dd019: Merge "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality." into gingerbread

Merge commit '2b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7'

* commit '2b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7':
Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.
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.
2b37ced30f89437c804c3945b901019b86d210ae 09-Oct-2010 James Dong <jdong@google.com> 0-memcpy video recording framework

Part III: Move startRecording() call earlier, asking camera hal
to allocate video buffers before CameraSource.start() is called.

Change-Id: I3f1d7d5636ca2644fe52af61f297d48c6b1ce89d
ameraSource.h
54ff19ac69ace7c05ea90d225e26dab3b133f487 08-Oct-2010 James Dong <jdong@google.com> Move Camera specific logic out from StagefrightRecorder to CameraSource

o updated comments and streamlined the logic in
checkVideoSize() and checkFrameRate() as suggested

Change-Id: I49d04ac7998d4a215997aa63555dfb6e814e38d3
ameraSource.h
ameraSourceTimeLapse.h
70f521de2675ce6eedf4b22beed94ea1289b0f38 08-Oct-2010 Andreas Huber <andih@google.com> Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.

Change-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2
related-to-bug: 3073955
ediaExtractor.h
2eb16c2250c57a8009ab58e9aeb1606ab62bbbbc 07-Oct-2010 Andreas Huber <andih@google.com> am 56ee1080: am 17bc4f65: Merge "Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out." into gingerbread

Merge commit '56ee1080f004110bff622e5b60c243d9cabfe120'

* commit '56ee1080f004110bff622e5b60c243d9cabfe120':
Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.
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
ediaErrors.h
MXCodec.h
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
etaData.h
MXCodec.h
eba2d0611923ad75c3b894ebe5ce3d5fc7f6a946 07-Oct-2010 James Dong <jdong@google.com> am a86a6c4e: am 6f1c7bda: Merge "Fixed an issue where the reserved free space in the file writer was larger than intended" into gingerbread

Merge commit 'a86a6c4e326bfdfc351dacca95b23bb78f78efbe'

* commit 'a86a6c4e326bfdfc351dacca95b23bb78f78efbe':
Fixed an issue where the reserved free space in the file writer was larger than intended
b2e3954c94717e43b3dc9b880564f166cfbbc0a2 05-Oct-2010 Andreas Huber <andih@google.com> Make sure to call AudioTrack::stop() instead of AudioTrack::pause() after submitting all samples to AudioTrack to make sure those remaining samples are actually played out.

Change-Id: Id574a0203efcb5e565f1b0fe77869fc33b9a9d56
udioPlayer.h
a007e8229fb2be4866c483f9cd6c4af238a2da5e 05-Oct-2010 James Dong <jdong@google.com> Fixed an issue where the reserved free space in the file writer was larger than intended

The problem was that even though user does not explicitly request the max file size
limit via MediaRecorder.setMaxFileSize(), the file writer sets an implicit file
size limit if 32-bit file offset is used on user's behalf. The reserved free space
is estimated based on the file size, if the file size limit is set by the user.

The fix is to add an extra bool to tell the difference between an
explit requested file size and an implicit file limit and use that
to set the estimated moov box size accordingly.

Change-Id: I731aca6c7833aa764ed7b905edb77721577471b3
PEG4Writer.h
fb9b87b6c22d940e5e7cb4b5e7cfae99015a0131 28-Sep-2010 Andreas Huber <andih@google.com> am d6c30e8c: am be045061: Merge "Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens." into gingerbread

Merge commit 'd6c30e8c1521bc584f33500b8ee897dafdfec023'

* commit 'd6c30e8c1521bc584f33500b8ee897dafdfec023':
Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.
8267b65adcfd944c3f465425183ad7f38b0999e5 28-Sep-2010 Andreas Huber <andih@google.com> am c889bbfa: am 4769f579: Merge "Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files." into gingerbread

Merge commit 'c889bbfa965f4ba90636f561c5e1353289d4cb06'

* commit 'c889bbfa965f4ba90636f561c5e1353289d4cb06':
Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files.
b8b92e517c4168a96f4d29d35cba7a87f0913c87 28-Sep-2010 Andreas Huber <andih@google.com> am 9d591860: am 3a9cc8ce: Merge "Squashed commit of the following:" into gingerbread

Merge commit '9d59186068891834272c2e3ee6f9c4228af24656'

* commit '9d59186068891834272c2e3ee6f9c4228af24656':
Squashed commit of the following:
6fd2b44b156c4ef28e131183f0fe8f7dcecfcc6e 28-Sep-2010 Andreas Huber <andih@google.com> Merge "Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens." into gingerbread
ed54ad0f8619ae416b0968ade6248894cbfc4dba 28-Sep-2010 Andreas Huber <andih@google.com> Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.

Change-Id: I43875b6adaf96d4e982ef3dfc3d6c8f7034ac51d
related-to-bug: 3036592
udioPlayer.h
8211da9eabe28037ebcc23bbfbbe20cb21cb0cdc 28-Sep-2010 Andreas Huber <andih@google.com> Merge "Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files." into gingerbread
db6222212528637d8f2afa7f49fc3c8c915bafbe 28-Sep-2010 Andreas Huber <andih@google.com> Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files.

related-to-bug: 3036592
Change-Id: Ib142b171c829ed74156c0281d9d4543fcc96c802
etaData.h
0da4dab0a45a2bc1d95cbc6ef6a4850ed2569584 27-Sep-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 29a4d3effb05a2e074cb0693316ab1977baeb0b6
Author: Andreas Huber <andih@google.com>
Date: Mon Sep 27 12:01:32 2010 -0700

Fully working implementation of MPEG2TSWriter (for AAC and AVC sources).

Change-Id: I8a32a47565b647bf6c078c520e39565e08ea0d84

commit f4dec4c3899f3be393508e180d6c07e249d3335e
Author: Andreas Huber <andih@google.com>
Date: Mon Sep 27 10:36:31 2010 -0700

More reliable identification of MPEG2 transport streams. Don't keep scanning forever in case the stream does not have both audio and video tracks.

Change-Id: Icc5b4e8be145b2805e8776559546a6818342aea7

commit 4fe3cc942f9b3d3cf54138b828c41214aa916dd2
Author: Andreas Huber <andih@google.com>
Date: Mon Sep 27 08:23:39 2010 -0700

test code

Change-Id: I16560a17661407d06497f99ff88230724bb898af

commit 64d988b24f49f179a90fa677be11c823959e734b
Author: Andreas Huber <andih@google.com>
Date: Thu Sep 23 14:42:52 2010 -0700

First shot at supporting writing to an MPEG2 transport stream.

Change-Id: Ie537939a99fa3ddc0c7661c47c18277584817c74

Change-Id: If78fd034af8f6e8ceac8dbeff96d5ecb3f6b96dc
PEG2TSWriter.h
3f94dacbd43b48bb629a79e45e738ead37c5debd 22-Sep-2010 Andreas Huber <andih@google.com> am af909581: am 67738486: Merge "Remove stagefright foundation\'s incompatible logging interface and update callsites." into gingerbread

Merge commit 'af90958184fc5cfa1a4190e28bcfc4fdd4a5bcd6'

* commit 'af90958184fc5cfa1a4190e28bcfc4fdd4a5bcd6':
Remove stagefright foundation's incompatible logging interface and update callsites.
6e4c5c499999c04c2477b987f9e64f3ff2bf1a06 21-Sep-2010 Andreas Huber <andih@google.com> Remove stagefright foundation's incompatible logging interface and update callsites.

Change-Id: I45fba7d60530ea0f233ac3695a97306b6dc1795c
oundation/ADebug.h
78eff720c86eb6d4e3d45a144df60b2ca464d2d4 16-Sep-2010 Nipun Kwatra <nkwatra@google.com> Implemented frequent read returns for quick stop in time lapse.

If the frame capture interval is large, read will block for a long time.
Due to the way the mediaRecorder framework works, a stop() call from
mediaRecorder waits until the read returns, causing a long wait for
stop() to return. To avoid this, we return a copy of the last read
frame with the same time stamp if a frame is not available quickly.
This keeps the read() call from blocking too long. This method is
triggered when startQuickReadReturns() is called on
CameraSourceTimeLapse.

In the still camera case, also using waitRelative on Condition
instaed of sleeping, so that we can wake it up.
Also for the idle check instead of sleeping, we now wait on a
condition variable, which is woken up when the last takePicture
callback gets called.

Change-Id: Ia74386e175536aee0f44ae2f8b114c353d3d72f5
ameraSourceTimeLapse.h
9b2cef27bbe953c0b5c37ada9bf18d706c396513 09-Sep-2010 James Dong <jdong@google.com> am 306cd58d: am d353c840: Merge "HW audio encoder expects timestamp via kKeyTime from each input buffer" into gingerbread

Merge commit '306cd58ddcc0cb8487bc6e015f8c692eea47a334'

* commit '306cd58ddcc0cb8487bc6e015f8c692eea47a334':
HW audio encoder expects timestamp via kKeyTime from each input buffer
3c3763d2ee1cd1fba7fe522fbaf0faca315d8c2a 09-Sep-2010 James Dong <jdong@google.com> HW audio encoder expects timestamp via kKeyTime from each input buffer

- This fixes media server crashes on droid

Change-Id: I7191cadc5275107425ec3ee3d437b2c5295858dc
etaData.h
5d7d90a0dec80114e4e299aaca69e41df6ff296a 04-Sep-2010 Nipun Kwatra <nkwatra@google.com> Merge changes I71f5b0fc,I92c7accb

* changes:
Moving decision to use still camera to CameraSourceTimeLapse
pass auxiliary video parameters.
155e833a7a5fc3e193691324cf9326da1bc3289a 02-Sep-2010 Nipun Kwatra <nkwatra@google.com> Moving decision to use still camera to CameraSourceTimeLapse

CameraSourceTimeLapse now decides whether to use still or video
camera automatically. It checks if the passed in size is a valid
preview size and if it is, then uses the video camera else uses
the still camera.

Removed from StagefrightRecorder the support to set parameter
useStillCameraForTimeLapse.

Change-Id: I71f5b0fc7080ca524792381efe918d22e41a7f36
ameraSourceTimeLapse.h
49ce029a6b62681c576a51f963d734eccd4eaccd 03-Sep-2010 Andreas Huber <andih@google.com> am 8e11c822: am 9fee0b2a: Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer\'s setLooping setting.

Merge commit '8e11c82247151085fa165c76bfbc157bc6091ca4'

* commit '8e11c82247151085fa165c76bfbc157bc6091ca4':
Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.
24beeac58c36b780ae61d1fb7a3421ffe5510a1e 03-Sep-2010 Jamie Gennis <jgennis@google.com> Merge "Add the new Stagefright ANativeWindow OMX codec API."
83750eaf5a3f38c243a9e7eb81d4b2421e3a0d88 31-Aug-2010 Jamie Gennis <jgennis@google.com> Add the new Stagefright ANativeWindow OMX codec API.

This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.

This is try 2 for this change, after reverting the first one because it broke
the build.

Change-Id: I94249b72bdb5d5719360f03d7935fcca4ece5028
ardwareAPI.h
8ae49d87b98d57d6758b0c51b95e28a6581a79f1 03-Sep-2010 Andreas Huber <andih@google.com> Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.

Change-Id: Ifb564c6cdf6137eac14869f9ca7d471f05a5556a
related-to-bug: 2974691
etaData.h
35b8b488e0822854d411976710ed55f3a1c72bf3 03-Sep-2010 James Dong <jdong@google.com> am bc1452a3: am 7755cdd6: Remove unused/debugging code from MP4 file writer

Merge commit 'bc1452a307ac61ca87bf78722701ac85100952af'

* commit 'bc1452a307ac61ca87bf78722701ac85100952af':
Remove unused/debugging code from MP4 file writer
b4d5320bda29cd9694461c9b61d0211f801ff0af 02-Sep-2010 James Dong <jdong@google.com> Remove unused/debugging code from MP4 file writer

o also makes nal length in the recorded file modifiable at runtime

Change-Id: I731b4dde7070d8d9628b36b523a5b2c011c7c2cf
PEG4Writer.h
etaData.h
92be4e1735b54e2528fed455b87c813cdd73d8c2 03-Sep-2010 James Dong <jdong@google.com> am 3c3fc97e: am 46e63b34: Merge "Better file size estimate" into gingerbread

Merge commit '3c3fc97e104bd17af608727d82e965fc28f2c89d'

* commit '3c3fc97e104bd17af608727d82e965fc28f2c89d':
Better file size estimate
1f90c4b3fda9dbd2824d67fd679f850572f114dc 02-Sep-2010 James Dong <jdong@google.com> Better file size estimate

When the recorded file becomes large, the metadata size can
no longer be ignored. This makes it possible to save the
recorded file when the storage becomes almost full at the
end of the recording session.

Change-Id: Ief038080f825c9946ce550949c03e914aec1e31a
PEG4Writer.h
fbc6db2e7af12b88703b4cbaa4c7b979bc9d028e 03-Sep-2010 James Dong <jdong@google.com> am bb64e554: am 7ed7668b: Merge "Calculate audio media drift time from AudioSource" into gingerbread

Merge commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3'

* commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3':
Calculate audio media drift time from AudioSource
d707fcb3e29707ca4a5935c294ef0b38eb5aba5f 02-Sep-2010 James Dong <jdong@google.com> Calculate audio media drift time from AudioSource

The problem was that the time to receive an output buffer
from an audio encoder is different because the encoder does not
need to read from the source for all output buffers. This leads
to large fluctuation in terms of wall clock duration between two
neighboring audio sample outputs from the audio encoder. As a
result, the media time for the video track after adjustment using
the drifting changes wildly sometimes.

This patch addresses this issue by only updating the media drift
time when an audio source input buffer is read. the wall clock
for the audio track is also calculated at the same time when
the input audio buffer is read at AudioSource.

bug - 2959800

Change-Id: I3174aa182f744784b540f0a7198524d4eee8bd7b
udioSource.h
PEG4Writer.h
etaData.h
9f2d258645826c999a93a4206df157fec2e3b0f2 01-Sep-2010 Jamie Gennis <jgennis@google.com> Revert "Merge "Add the new Stagefright ANativeWindow OMX codec API.""

This reverts commit 8a643b411e1802977f742709113ce01b06a18e12, reversing
changes made to 73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4.
ardwareAPI.h
9dd4931cca8e4a2fcbcabf4eb7078648e1c029cd 01-Sep-2010 Jamie Gennis <jgennis@google.com> Merge "Add the new Stagefright ANativeWindow OMX codec API."
559dc605bfe2deb73ad718e0d5c5dc55e27c45df 31-Aug-2010 Jamie Gennis <jgennis@google.com> Add the new Stagefright ANativeWindow OMX codec API.

This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.

Change-Id: Ibfbf893dc3513db0b3d3221bec5708c77287cddc
ardwareAPI.h
ad452ffadf0ced7449395585a55255c915734e17 30-Aug-2010 Nipun Kwatra <nkwatra@google.com> Added VideoSourceDownSampler

VideoSourceDownSampler takes in a real video source. The MediaSource
interface is then implemented by shortcircuiting calls to this real source,
except for the read() function. For read we first call read of the real
source, then downsample the frame to the desired size and return that.

Change-Id: I6e1b377e043e136a70a7b03792eb9165bbe26398
ideoSourceDownSampler.h
c5c4286bebffa4c2a9539c8e09207c3130351531 30-Aug-2010 Andreas Huber <andih@google.com> am 6df6d606: am df992ac9: Merge "ALoopers can now be named (useful to distinguish threads)." into gingerbread

Merge commit '6df6d60681be9d524ce7fc07f2511008de424d27'

* commit '6df6d60681be9d524ce7fc07f2511008de424d27':
ALoopers can now be named (useful to distinguish threads).
c01ec02269e3bf1fd57620149085407bf6750447 30-Aug-2010 Andreas Huber <andih@google.com> Merge "ALoopers can now be named (useful to distinguish threads)." into gingerbread
cc567f511a159867dcde8da824cab7464e687535 28-Aug-2010 Nipun Kwatra <nkwatra@google.com> Merge "client_id->clientId, bugfix for signaling of read abort on stop."
4caa5782afbf07da01532f7b8744157f0e92d01e 27-Aug-2010 Nipun Kwatra <nkwatra@google.com> client_id->clientId, bugfix for signaling of read abort on stop.

- changed client_id->clientId, mClient_id->mClientId
- there was a bug in the condition for calling
signalReadComplete_lock() in stop. We should call it only when
!mLastReadCompleted and also if the current client has not already
completed its read (this second check was missing before).

Change-Id: I9a57cf6b5c6f3260883a6c74d0c7b22f675c422e
ediaSourceSplitter.h
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
f00421ce0af03785a229552cb9738ac09b17a675 28-Aug-2010 James Dong <jdong@google.com> am 7d3ff384: am b86365ad: Merge "Suppress the video recording start signal - bug 2950297" into gingerbread

Merge commit '7d3ff3849c830f0136c692b6074f1ba5da288fe7'

* commit '7d3ff3849c830f0136c692b6074f1ba5da288fe7':
Suppress the video recording start signal
a814c1fdc2acf0ed2ee3b175110f6039be7c4873 28-Aug-2010 Andreas Huber <andih@google.com> ALoopers can now be named (useful to distinguish threads).

Change-Id: Ieabaddb2e3a9e3a7a5bc36e55cd0721b60dbd50e
oundation/ALooper.h
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
MXCodec.h
d9a81d43fd23f10091afa4e78bd2f5db87f74e7f 27-Aug-2010 Nipun Kwatra <nkwatra@google.com> Merge "Added MediaSourceSplitter to split single source to multiple ones."
c7e5094ece8083bcaa8160564655df986126f4bd 27-Aug-2010 Nipun Kwatra <nkwatra@google.com> Added MediaSourceSplitter to split single source to multiple ones.

MediaSourceSplitter provides a way to split a single mediaSource
into multiple sources. It takes in the real mediaSource and multiple
clients can then be created which serve from the same real mediaSource.

Change-Id: I7254ead24b4c26c784b033e6bc7ff5a0d083a0c3
ediaSourceSplitter.h
f1ae1963f5028a670573b50a9c1cfb504fc426b4 27-Aug-2010 James Dong <jdong@google.com> Suppress the video recording start signal
- bug 2950297

Change-Id: I0044d07178691feb904cf81e87c1b6d4b714dc1a
udioSource.h
d31cdebccaa64e4ce0012254aa4986fbea93a2a1 25-Aug-2010 Andreas Huber <andih@google.com> am 96dc4559: am b8814dce: Merge "Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now." into gingerbread

Merge commit '96dc45597e53742a2c8453f9ce03f7d501a75668'

* commit '96dc45597e53742a2c8453f9ce03f7d501a75668':
Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.
5a1c3529e4fa2f8a11054181294e0ce79fff8dd3 25-Aug-2010 Andreas Huber <andih@google.com> Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.

Change-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a
related-to-bug: 2948754
ataSource.h
a8c88e810ea1b8e90fd6c250d4c0a87eb628d4d8 24-Aug-2010 James Dong <jdong@google.com> am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter

Merge commit '28a92120a702289533a9c9d004bd60f83b2fd98b'

* commit '28a92120a702289533a9c9d004bd60f83b2fd98b':
Runtime dump support for MediaWriter
dedf414d3fe2e79ee0aad0f1c82ca16ebd886ff6 18-Aug-2010 James Dong <jdong@google.com> Runtime dump support for MediaWriter

Change-Id: I10b2c474de612ee4cef4b7c9eae2ee1dd8c2e895
PEG4Writer.h
ediaWriter.h
263ebfd8a17266eedc84eb879edb6a6a3395f760 21-Aug-2010 James Dong <jdong@google.com> am c8d2fa70: am cbd038fe: Merge "Make MediaWriter stop and pause return errors if necessary" into gingerbread

Merge commit 'c8d2fa704abebdbf0bd8aac185216dc068950217'

* commit 'c8d2fa704abebdbf0bd8aac185216dc068950217':
Make MediaWriter stop and pause return errors if necessary
9b92412737095ab6a06f01a0c6daaebb79dffb55 21-Aug-2010 Andreas Huber <andih@google.com> am b29ebd39: am f0ad5484: Merge "In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data." into gingerbread

Merge commit 'b29ebd397e25a7176bcc1c81980f17b0190ebe7f'

* commit 'b29ebd397e25a7176bcc1c81980f17b0190ebe7f':
In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.
a0ced19fa96f26a25de708588a34ebfd452f250e 20-Aug-2010 Nipun Kwatra <nkwatra@google.com> Merge "Added downsample()"
c0d936ddacc4f7d883f3bd1dd8099586836c820f 20-Aug-2010 Nipun Kwatra <nkwatra@google.com> Added downsample()

Added a downsample function which downsamples the source image
starting at an offset and skipping every few pixels. Currently
no low pass filtering is done, but it should be added later.

Change-Id: Iec34092c536bfc661a15521e6a1ef2ef3f815c61
UVCanvas.h
47c0e2355fb18f567471c1a76f1bbe2ebcb5a419 20-Aug-2010 Nipun Kwatra <nkwatra@google.com> Merge "const correctness, validPixel test."
4a6b74563ac0fe752fbdfd15f91772473f8a4711 20-Aug-2010 Nipun Kwatra <nkwatra@google.com> const correctness, validPixel test.

- made width(), height() const member functions.
- added validPixel() which returns true if pixel is in the allowed range.
- now testing validPixel in get/setPixelValue

Change-Id: I1dee5060bd4f8dcbdcd542ec4647ea328f0185c3
UVImage.h
e0b77ce97ef84c47ae408e92f2afb7509a5051b6 19-Aug-2010 James Dong <jdong@google.com> Merge "Make MediaWriter stop and pause return errors if necessary" into gingerbread
37187916a486504acaf83bea30147eb5fbf46ae5 19-Aug-2010 James Dong <jdong@google.com> Make MediaWriter stop and pause return errors if necessary

o Make the API consistent with SF framework, which the MediaSource
provides a return status for stop

o Also, helps to convey errors that occurred right when a
premature stop() is called, leading to a potentially
mal-formed output file.

Change-Id: I52a932345f38570fdf8ea04d67d73dd94ccd30ef
MRWriter.h
PEG4Writer.h
ediaWriter.h
85f12e9b9062402d6110df3f7099707912040edb 19-Aug-2010 Andreas Huber <andih@google.com> In the absence of width/height information in the sdp, extract the dimensions from the avc codec specific data.

Change-Id: I98c4194593c7e6e24f6fc339c862245111800293
oundation/ABitReader.h
790f640ac3b573efd574d346d1bb338d9724ed48 17-Aug-2010 James Dong <jdong@google.com> am 4fc2c928: am b7208196: Use audio clock as the reference media clock

Merge commit '4fc2c9280c5262c835a4eb78961241de105313c1'

* commit '4fc2c9280c5262c835a4eb78961241de105313c1':
Use audio clock as the reference media clock
e259531ce59ab1f31de5a23124b22536f6a5a767 03-Aug-2010 James Dong <jdong@google.com> Use audio clock as the reference media clock

o Only do this for realtime applications
o Adjust other track clock based on audio clock
o Assume other track uses wall clock as the media clock
o Use some heuristics to reduce the size of stts box by 2/3.

- also
o Remove one unused key from MetaData.h

Change-Id: Ib9432842627b61795b533508158c25258a527332
PEG4Writer.h
etaData.h
ee6d226931477dc9c2c9e49aae5f2470f7181c61 12-Aug-2010 James Dong <jdong@google.com> am 8aa244ea: am 45cb3cfa: Merge "Handle large audio lost" into gingerbread

Merge commit '8aa244eab7ba834439cc919fd1f83d1e4ef49aff'

* commit '8aa244eab7ba834439cc919fd1f83d1e4ef49aff':
Handle large audio lost
47204e1806da9f849464d0cef936851d7e561607 11-Aug-2010 James Dong <jdong@google.com> Handle large audio lost

Change-Id: I2687ad855aac758946954d0b3fe7aff9f7b5ae7c
udioSource.h
0cde1a77ce02df9f0ab08d836b491bf8e809bf35 10-Aug-2010 Andreas Huber <andih@google.com> am e14923b0: am 4edf85ab: Merge "Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder." into gingerbread

Merge commit 'e14923b0c80b2e73e69b7917c1f170b356592d29'

* commit 'e14923b0c80b2e73e69b7917c1f170b356592d29':
Support for extracting G.711 a-law and mu-law audio from WAV files and a corresponding software decoder.
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
ediaDefs.h
250a4cf8127a9ba572bae90de1e44437e0b78a94 06-Aug-2010 James Dong <jdong@google.com> am 9c09a605: am 1441bdfc: Merge "Use the target color format from the camera source if possible" into gingerbread

Merge commit '9c09a60513faf39901bb8e4681d39812204b3f73'

* commit '9c09a60513faf39901bb8e4681d39812204b3f73':
Use the target color format from the camera source if possible
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
MXCodec.h
982a93173bc84f005172152d823cbb59dfcbeb12 05-Aug-2010 Andreas Huber <andih@google.com> am 1f513d88: am c17f35dd: Merge "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." into gingerbread

Merge commit '1f513d8821670a33d6361ea521b6756163a3f9bf'

* commit '1f513d8821670a33d6361ea521b6756163a3f9bf':
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.
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
etaData.h
216e5df78e958a3349ba4785fb79c688e1ad39a5 04-Aug-2010 James Dong <jdong@google.com> am 246aad12: am 3d84280c: Merge "File writer has a designated writer thread now" into gingerbread

Merge commit '246aad12cf2becda5111d03fd1dd8f39712686f2'

* commit '246aad12cf2becda5111d03fd1dd8f39712686f2':
File writer has a designated writer thread now
a7c61b8be205ce8db81ebbd15cd42abd649cbf4d 04-Aug-2010 James Dong <jdong@google.com> am 51a260d8: am 23796e3b: Merge "Add lost frame handling in AudioSource" into gingerbread

Merge commit '51a260d8c6e9a5c6b6c2cf808554ae013c1a7bef'

* commit '51a260d8c6e9a5c6b6c2cf808554ae013c1a7bef':
Add lost frame handling in AudioSource
26ab7ab7f543a03b65735a41de8496c54d3e490e 03-Aug-2010 James Dong <jdong@google.com> Merge "File writer has a designated writer thread now" into gingerbread
1c9747a4653aec1395c2bd6896c9b87cb5447837 31-Jul-2010 James Dong <jdong@google.com> File writer has a designated writer thread now

+ This reduces the file I/O block time for audio/video track processing
- Since the file writer is buffering some output samples, the memory
usage would go up, depending on how many output samples are buffered.

Change-Id: I780cc5b26f4b53a5efbd643fcf9505dfc19cd4cd
PEG4Writer.h
40e2f3f9b41f44bdb59f7708a421b87f169a6ede 31-Jul-2010 Nipun Kwatra <nkwatra@google.com> Implementing getSupportedPictureSizes

Go through all the supported picture sizes and choose the smallest one with
both dimensions higher than the passed in video width and height.

Change-Id: I4e9fe7a6384a0feeb9e069239ec68c70fb5f3033
ameraSourceTimeLapse.h
46292fb347d72a314d985e34e5e3743d846cb9b6 30-Jul-2010 James Dong <jdong@google.com> Add lost frame handling in AudioSource

- Also collect stats on lost audio frames instead of time spent on reading

Change-Id: I6380b143e4fbdcd894491aaae523331e90d0f04f
udioSource.h
c4e47d1e81c4e4403663cb911e98dbf3ada9942c 28-Jul-2010 Nipun Kwatra <nkwatra@google.com> Support for video size to be different from captured picture size.

Adding support to allow video size to be different than the supported
picture sizes. A picture size larger than the demanded video size is
chosen. Captured pictures are then cropped to the size of the desired
video size. Cropping is done from the the center portion of the picture.

Change-Id: I6bcbe16f94b6ecbcf28b7f46826a81b4b6b8cbc3
ameraSourceTimeLapse.h
db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac 28-Jul-2010 Nipun Kwatra <nkwatra@google.com> Adding YUVImage and YUVCanvas.

YUVImage is a container class to hold YUV data and provide
various utilities, e.g. to set/get pixel values for different
YUV formats, fast copying routines, etc.
Currently supported YUV420 Planar and YUV420 Semi Planar.

YUVCanvas holds a reference to a YUVImage on which it can do various
drawing operations.

Change-Id: I052a57b7fbc834efe1626914f76c04c091996cac
UVCanvas.h
UVImage.h
e4e0a6994d39c4a7cba09c5fff442b2dca1df8f8 21-Jul-2010 Nipun Kwatra <nkwatra@google.com> Allowing setting of time lapse parameters through MediaRecorder.java

added setTimeLapseParameters() to MediaRecorder.java and SetParameter support
in StagefrightRecorder to allow enabling time lapse and setting the corresponding
parameters.

Change-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a
ameraSourceTimeLapse.h
55cb2b8319e6b36e88658de121c534e95cd240b4 23-Jul-2010 James Dong <jdong@google.com> am 9bc4dc11: am 53d4e0d5: Allows the authoring engine to skip frame.

Merge commit '9bc4dc114fce58606a81d65d4cb31348cc7c1bae'

* commit '9bc4dc114fce58606a81d65d4cb31348cc7c1bae':
Allows the authoring engine to skip frame.
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
ediaSource.h
MXCodec.h
f661058d77d1484e5911d1962f8e1e8466240687 22-Jul-2010 Andreas Huber <andih@google.com> am b72d3180: am 81046c8c: Merge "Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes." into gingerbread

Merge commit 'b72d3180dc8d41d6269664bea808b04410bbe40f'

* commit 'b72d3180dc8d41d6269664bea808b04410bbe40f':
Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.
348a8eab84f4bba76c04ca83b2f5418467aa1a48 22-Jul-2010 Andreas Huber <andih@google.com> Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.

Change-Id: I110e19d5ce33e597add3ffbd3e3ff3815862396d
oundation/ALooper.h
d3bc2528fca033f3d34969a095beec0bc3f79ffd 21-Jul-2010 Andreas Huber <andih@google.com> am 8a9a931f: am 8138e841: Merge "Support finer seek control on MediaSources." into gingerbread

Merge commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd'

* commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd':
Support finer seek control on MediaSources.
abd1f4f870925d6776dbe4b930b759a1ab6595ca 21-Jul-2010 Andreas Huber <andih@google.com> Support finer seek control on MediaSources.

related-to-bug: 2858448

Change-Id: Ifb4b13b990fd5889113e47e2c62249ac43391fa1
ediaSource.h
etaData.h
MXCodec.h
932e0a11d74d5e236ccef9ee314442385c3d4e9d 21-Jul-2010 James Dong <jdong@google.com> am 9049fe60: am d7514ec6: Merge "Progress status notification" into gingerbread

Merge commit '9049fe60c20640bd606741c8f45f3f781a1684f5'

* commit '9049fe60c20640bd606741c8f45f3f781a1684f5':
Progress status notification
3108231d90e8aa324923fd8864ca2477948c5d25 20-Jul-2010 James Dong <jdong@google.com> Merge "Progress status notification" into gingerbread
0aacf105eea098a0b47761a4a9a5c4d820611f2d 19-Jul-2010 Nipun Kwatra <nkwatra@google.com> Restart preview after each takePicture is done.

Preview is called when CAMERA_MSG_COMPRESSED_IMAGE is recieved by
dataCallback(). It needs to be started as a new thread so that the
callback can return, and the camera can know that takePicture() is
done.

Change-Id: I4d0febbc993aac43b37f9f4a824e9c7b8785f19e
ameraSourceTimeLapse.h
385695764189477e963a749a5f107f6eaeb9c5f2 20-Jul-2010 Nipun Kwatra <nkwatra@google.com> Merge "Adding support for timelapse capture using still camera's takepicture. Also moving entire implementation into a new class CameraSourceTimeLapse which inherits from CameraSource."
fbfe57ba4403ad759a0ebd895914ff506a01b699 20-Jul-2010 Andreas Huber <andih@google.com> am ff45709f: am cc14a839: Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we\'ll still play it back correctly.

Merge commit 'ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe'

* commit 'ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe':
Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we'll still play it back correctly.
3c3ddfa39635a2d39f4ee7c966fb9403fe1ec9d8 20-Jul-2010 Andreas Huber <andih@google.com> Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we'll still play it back correctly.

Change-Id: Icc790122744745e9a88099788d4818ca1e265a82
related-to-bug: 2826841
udioPlayer.h
faed5cd124a54b8db3429f4c26b3220bbec4c8bb 16-Jul-2010 James Dong <jdong@google.com> Progress status notification

- Keep track of per-track progress

Change-Id: Ibd36f0e8c78581928c8aa2f5e23c5e7e0615c2cc
PEG4Writer.h
65e7e6facda89927cb26594b3b65ae81b3235ebc 12-Jul-2010 Nipun Kwatra <nkwatra@google.com> Adding support for timelapse capture using still camera's takepicture.
Also moving entire implementation into a new class CameraSourceTimeLapse
which inherits from CameraSource.

For timelapse capture using still camera, we start a thread which runs a
loop in which it calls Camera::takePicture() and then sleeps until the next
frame should be captured.
The function dataCallback() handles the callback from the camera with the
raw image data. This function copies the data and creates an artificial
timestamp corresponding to one frame time ahead of the last encoded frame's
time stamp. It then calls dataCallbackTimestamp() of the base class which
will think that it recieved the frame from a video camera and proceed as usual.

For moving the implementation to the subclass CameraSourceTimeLapse, added a
few virtual functions to CameraSource, which do the current thing for the base
class, but specialized things for CameraSourceTimeLapse.
E.g. startCameraRecording() in the base class just calls mCamera->startRecording(),
while in CameraSourceTimeLapse it may start a thread for the still camera case.

Change-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de
ameraSource.h
ameraSourceTimeLapse.h
cbcc684555a8774b21ba04c09b2f5cee8c88453a 15-Jul-2010 James Dong <jdong@google.com> am b068b47c: am d6a85a21: Merge "Support user-supplied timescales for authoring" into gingerbread

Merge commit 'b068b47c6d0214256116a0c661740bddf7acc18c'

* commit 'b068b47c6d0214256116a0c661740bddf7acc18c':
Support user-supplied timescales for authoring
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
PEG4Writer.h
etaData.h
bf21177ccede8f01c0da0bd53392a289a5a84462 08-Jul-2010 James Dong <jdong@google.com> am b3598832: am c4243342: Merge "Allow application to set two more encoding paramters: video profile and level" into gingerbread

Merge commit 'b35988329ac1a574898db9226039e37e352c57a8'

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

Change-Id: I673e681cefe184d5c556c612c54600a24a2143e5
etaData.h
MXCodec.h
f1ca5833464c0f6859f2a38b6af02cbe527c3335 07-Jul-2010 Andreas Huber <andih@google.com> am f5b4e342: am 2e6aff8e: Merge "ALooperRoster no longer holds strong references to handlers and loopers." into gingerbread

Merge commit 'f5b4e342b581a6e219b49141861b353fb139d00b'

* commit 'f5b4e342b581a6e219b49141861b353fb139d00b':
ALooperRoster no longer holds strong references to handlers and loopers.
11cc270ac5fd522c9e6491a7933516a96da4f62e 07-Jul-2010 Andreas Huber <andih@google.com> ALooperRoster no longer holds strong references to handlers and loopers.

Change-Id: I038d69b0a34eda1bfc5216d92c837a5ddf4fb802
oundation/ALooperRoster.h
2bd69f0df09cc67abdeeea2786e826914ee5ead0 07-Jul-2010 Andreas Huber <andih@google.com> am 877045aa: am 9406f626: Merge "An AHandler can now find its associated ALooper." into gingerbread

Merge commit '877045aa853aaf6e58ca3ac7bfa2bde9165b55ae'

* commit '877045aa853aaf6e58ca3ac7bfa2bde9165b55ae':
An AHandler can now find its associated ALooper.
3ecb233c9c121af3e68ece11705043b1dbef505b 07-Jul-2010 Andreas Huber <andih@google.com> Merge "An AHandler can now find its associated ALooper." into gingerbread
e2b20987c2652a984d10520ef3542d50d91119c5 03-Jul-2010 Andreas Huber <andih@google.com> An AHandler can now find its associated ALooper.

Change-Id: Ic7087b8dcbc0d9abda272df0cb01b04b006f82ad
oundation/AHandler.h
oundation/ALooperRoster.h
a041596d1c4c85a2face27ead436721f8435e53a 02-Jul-2010 Andreas Huber <andih@google.com> am c4be155a: am 2cfd8198: Merge "Add an option to ALooper::start that allows it to call back into java or not." into gingerbread

Merge commit 'c4be155a540695c42bcd6589604f86d300f4548f'

* commit 'c4be155a540695c42bcd6589604f86d300f4548f':
Add an option to ALooper::start that allows it to call back into java or not.
34bbea84b8374f5d0ebe72b0be4418ace984fac0 02-Jul-2010 Andreas Huber <andih@google.com> Merge "Add an option to ALooper::start that allows it to call back into java or not." into gingerbread
1ef2a2b04c1e2488694c511bc954604da21b12d0 02-Jul-2010 Andreas Huber <andih@google.com> am 9f8c490e: am 5460d126: Merge "Added AMessage::debugString() for debugging purposes." into gingerbread

Merge commit '9f8c490e05f86cca1d60d6b6f383a1a98d7985fb'

* commit '9f8c490e05f86cca1d60d6b6f383a1a98d7985fb':
Added AMessage::debugString() for debugging purposes.
42d7f83904b8a91ce33e87a44de109572679ac1f 02-Jul-2010 Andreas Huber <andih@google.com> Add an option to ALooper::start that allows it to call back into java or not.

Change-Id: Iec172901a04a575d8d350bd162565f04677c3f26
oundation/ALooper.h
cbb56d14dad2785baf7a723b43aa6f1da32dc51f 02-Jul-2010 Andreas Huber <andih@google.com> Merge "Added AMessage::debugString() for debugging purposes." into gingerbread
bbc2b8289458cfde931b133bad0c9d1026674ee7 01-Jul-2010 Andreas Huber <andih@google.com> Added AMessage::debugString() for debugging purposes.

Change-Id: Id43ffd2c56d659dc29f37e277f8c7b38f11c1591
oundation/AMessage.h
fc20aab463f527ab3b0664986f0381a86b375884 01-Jul-2010 Nipun Kwatra <nkwatra@google.com> Adding timelapse capture from videocamera.

Current implementation looks at the timestamps of all incoming frames in
CameraSource::dataCallbackTimestamp().
It drops all frames until enough time has elapsed to get the next time lapse frame.
When enough time has passed to capture the next time lapse frame, the frame is no longer dropped
and the timestamp of this frame is modified to be one frame time (1/framerate) ahead of the
last encoded frame's time stamp.

Change-Id: I82b9d5e96113dffa6901aac3b8a8ef999ffc1d0b
ameraSource.h
19c9a1e2bb6ead5e1e895aea8be573fe0f8cc7bb 01-Jul-2010 Andreas Huber <andih@google.com> Support for writing the extracted data to an .mp4 file in the stagefright commandline tool.

Change-Id: I972324a8fc9757e6e8116b0270ec0882106f8733
ediaWriter.h
1c8ed2e906576fd8d7fa03f577bdec518cbe13d7 30-Jun-2010 Andreas Huber <andih@google.com> Support for vanilla YUV420sp => RGB565 color conversion.

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

Also:
- 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
MXCodec.h
37047fceba836f341d0108beed0991b0f8dfc543 26-Jun-2010 James Dong <jdong@google.com> Separate MediaRecorderClient with MediaPlayerClient

- An alternative would be to define a common base class that
both MediaRecorderClient and MediaPlayerClient can derive.
But since the common code, onTransact() and notify() uses
some Binder code, having a common base class may not gain
us too much in terms of code reuse.

Change-Id: Ibc06720278ad173fceacff3d267b7060856c6316
ediaWriter.h
93d6b102a13afa23bfa80d74c399d93d542e6ad6 25-Jun-2010 James Dong <jdong@google.com> Provide progress status report during authoring

- Track either the number of A/V frames authored, or the time elapsed
- Track the completion of the authoring
- Add multiple camera support for authoring by accepting a camera id parameter
- Set file type based on the OUTPUT_FORMAT requested

Change-Id: I0f9d31b3b7a8fa43eb53f572410fb0ebd4fa0bb7
PEG4Writer.h
etaData.h
2dec2b5be2056c6d9428897dc672185872d30d17 20-Jun-2010 James Dong <jdong@google.com> Enable passing parameters to the MediaWriter at runtime (at start() call).

- estimate the moov box size for mp4 file writer based on the file
size/duration limit and target bit rate.
- can switch to use 64 bit file offset at runtime

rebased

Change-Id: Ibbe1f57e91ab2605820d5d96e8048d11e5559c53
MRWriter.h
PEG4Writer.h
ediaWriter.h
etaData.h
d3d4e5069e1af0437c4f5a7b4ba344bda5b937af 25-Jun-2010 James Dong <jdong@google.com> Track maximum amplitude and fix getMaxAmplitude()

- only start to track the max amplitude after the first call to getMaxAmplitude()

Change-Id: I64d3d9ca0542202a8535a211425e8bccceca50fc
udioSource.h
1acfe8649f8169caf2ff098c2dc2de880d9a3760 23-Jun-2010 James Dong <jdong@google.com> Fixed some meta data issues in the recorded mp4 file

- Mainly correcting the location of stbl box which should be a child of minf box.
This resolved the issue where the mis-muxed encoded file could not be played by QT/VLC.

- Enabled the the recorded tracks by setting the flags to 0x07 by default

- Allows for encoding either 32-bit or 64-bit offsets. By default encoding
32-bit offsets to reduce the metadata overhead

- Fixed a edts box issue where an empty elst box was used at the end

Change-Id: I570621a26714a81dc9400271aa5d3a07b483172f
PEG4Writer.h
58ae9c530247668f8af36e30d228c716c226b3d4 22-Jun-2010 James Dong <jdong@google.com> Single track optimization

We don't need to do interleave when the total number of tracks to be recorded is one.
Metadata-wise, we only need to have one chunk in chunk offset table, and a
single entry in the stsc table.

Change-Id: I46f0e4b3860620311e7a91b68a9067acaa137bb2
PEG4Writer.h
f60cafe0e6aad8f9ce54660fa88b651ae4e749e6 19-Jun-2010 James Dong <jdong@google.com> Audio/video sync during recording (second part)

Change-Id: Iba0b35f57fdeac7ee1da16899406bf4b957a2c8c
udioSource.h
ameraSource.h
PEG4Writer.h
a7d1a2dd776bf356c228785a94ba8e0ff6a2ec7f 10-Jun-2010 James Dong <jdong@google.com> Initial checkin for pause and resume control

Change-Id: Ibdcf7bea5fb66baa81878704ba4091dfcfe382ee
MRWriter.h
PEG4Writer.h
ediaWriter.h
0a5baa9b411fe086013d2a5e9126ed63fbad046c 10-Jun-2010 Andreas Huber <andih@google.com> Switch stagefright's approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages.

Change-Id: If8185ba329ce8b6663b1ad39a4efb0ad3be81df2
achingDataSource.h
TTPDataSource.h
61ea6c1bc242841663cb6f3601f89fd929882d0b 11-Jun-2010 Andreas Huber <andih@google.com> Merge "Initial check-in of new caching/prefetching data source implementation." into kraken
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
ediaSource.h
MXCodec.h
5994b4798b01f3dd340577c9ea9657f09093a770 10-Jun-2010 Andreas Huber <andih@google.com> Initial check-in of new caching/prefetching data source implementation.

Change-Id: I97a6e3f03c69c9b1219f1f06bd109c0102f2c504
oundation/AHandlerReflector.h
ddcc4a66d848deef6fb4689e64e30cd9bd2684fe 08-Jun-2010 James Dong <jdong@google.com> Remove some hard-coded encoding parameters

Change-Id: I7a8ccd5d57891a6a585c8da2ee53acb094955913
etaData.h
MXCodec.h
365a963142093a1cd8efdcea76b5f65096a5b115 04-Jun-2010 James Dong <jdong@google.com> Initial check-in for collecting stats from authoring engine at runtime

Change-Id: I93a9d8bd260efc5e7fc135b726e3f1307c6df794
udioSource.h
ameraSource.h
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.

TODO:
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
MXCodec.h
cda17c606b0fe3ccda4dc68a6d43882410ea2462 07-Jun-2010 Andreas Huber <andih@google.com> Initial checkin of mpeg2 transport stream parser for stagefright.

Change-Id: I328ce77404daf7127933b48c9d58ed504fb8fc6f
ediaDefs.h
c46e8b9fdce32bafb0b84cdb16affbdd35c2e3ba 07-Jun-2010 Andreas Huber <andih@google.com> Merge "Initial checkin of "foundation" library for future stagefright development." into kraken
72961230a5890071bcca436eb5630172ce84ec41 07-Jun-2010 Andreas Huber <andih@google.com> Initial checkin of "foundation" library for future stagefright development.

Change-Id: I11714dcaa647d0437a13e4c5b953b35e712da8f3
oundation/AAtomizer.h
oundation/ABase.h
oundation/ABuffer.h
oundation/ADebug.h
oundation/AHandler.h
oundation/ALooper.h
oundation/ALooperRoster.h
oundation/AMessage.h
oundation/AString.h
oundation/base64.h
oundation/hexdump.h
653252be963c07c99109d20f942d1f30c52a9360 03-Jun-2010 James Dong <jdong@google.com> Remove hard-coded pixel format for recording frames in CameraSource.
Retrieve the pixel format from Camera HAL at runtime.

Change-Id: I63f820f54c59c2019dfd195320b9928da3362536
ameraSource.h
7278cf32f1aa6a322f6dff1f8b7dacf7b6dddba6 28-May-2010 James Dong <jdong@google.com> Avoid copying for input recording frames in CameraSource

This is the part one.

- Let CameraSource be a MediaBufferObserver. It releases the recording frame when the ref count of a MediaBuffer containing
the recording frame drops to 0.

This reduces the CPU load from 90+% down to 50-60%.

Part two is related to the avoidance of copying the input video frames to the video encoder.
However, we are not able to use OMX_UseBuffer directly. Still work on the second part.

Change-Id: I906f1d054ae8bdcf82e1617f1fc120152f2eb2eb
ameraSource.h
cbe48a0678729eb863b259b4744e6ad12faf0475 20-May-2010 James Dong <jdong@google.com> Avoid repeatedly allocating and freeing memory in CameraSource

Change-Id: Ia3760820da0559e4e908dedae1f1df05f9a6a242
ameraSource.h
093437c388e5dff6903a3d43f2ca9f8a1ba4744a 20-May-2010 Andreas Huber <andih@google.com> Support for media extraction from .mkv/.mka Matroska files in stagefright.

Change-Id: I4c26579828ad575523ccf58b0b5cb144046c04ca
related-to-bug: 2483739
ediaDefs.h
956c553ab0ce72f8074ad0fda2ffd66a0305700c 15-May-2010 James Dong <jdong@google.com> Initial software encoder checkins

Change-Id: I27f387db23594e46384c4eb3a0093ce220bb6b60
udioSource.h
MXCodec.h
3c0131f02b6f008321608044c53bccce2ac5f6dd 13-May-2010 James Dong <jdong@google.com> Audio/video initial recording time synchronization

Change-Id: Iac58b63d474fe09c1d36ba6ecde91dafbb7fef9a
PEG4Writer.h
d599cd4573b5a2d5914c5040e0565ef866749b77 11-May-2010 James Dong <jdong@google.com> Handle recording file size and/or duration limit

Change-Id: Ib9ed1f3ebd8fef550cc130a7ef11f2905fa9aedc
MRWriter.h
PEG4Writer.h
ediaWriter.h
65ae665befd929efd1a7d1c9addac41c699f04b2 13-May-2010 James Dong <jdong@google.com> Remove dummy surface in CameraSource

bug - 2680919

Change-Id: Ia0308cf57fd67058b4dd0e042b3ce97f13df475f
ameraSource.h
8229dabcc36a015a6cf11a9b0b2e948ac0476552 12-May-2010 Andreas Huber <andih@google.com> am b003ad17: am e0dc80f8: Merge "Support for customizable socket-read timeouts through the HTTP response." into froyo

Merge commit 'b003ad17bffeba7875b9708ffeef2300ef28c916' into kraken

* commit 'b003ad17bffeba7875b9708ffeef2300ef28c916':
Support for customizable socket-read timeouts through the HTTP response.
ba7c35717116e4dcb8242644f6ccf07c25c7b251 11-May-2010 Andreas Huber <andih@google.com> Support for customizable socket-read timeouts through the HTTP response.

Specify a response header of "X-SocketTimeout: 15" to override the default timeout
of 5 secs with a timeout of 15 seconds. Specify a negative value to disable the
timeout altogether.

Change-Id: I545adf3d8b3f7efe5f8d081a641c6404440a77db
related-to-bug: 2675721
TTPDataSource.h
7837c17063a4c50bc856ba59418516fdab731de7 07-May-2010 James Dong <jdong@google.com> Output streamable MP4 file during MP4 file recording

When the reserved moov box space is not big enough,
fall back to non-streamable MP4 file.

Change-Id: I93382d037d657a3f3fe2af31e4ea26e1898b4d95
PEG4Writer.h
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
ediaDefs.h
etaData.h
tils.h
d8a30349da270715156d3f658b165481ce10cf71 06-May-2010 Andreas Huber <andih@google.com> am 71bd9fc8: am 100ef9be: Merge "Disable vorbis seek when streaming from localhost." into froyo

Merge commit '71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c' into kraken

* commit '71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c':
Disable vorbis seek when streaming from localhost.
acdd9d0f59c3d8bdc3de80664a609527ec3d21e2 06-May-2010 Andreas Huber <andih@google.com> Disable vorbis seek when streaming from localhost.

Change-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f
related-to-bug: 2654400
ataSource.h
TTPDataSource.h
ediaExtractor.h
13aec890216948b0c364f8f92792129d0335f506 22-Apr-2010 James Dong <jdong@google.com> Support audio and video track interleaving in the recorded mp4 file

Change-Id: Ifa27eb23ee265f84fe06773b29b0eb2b0b075b60
ameraSource.h
PEG4Writer.h
3830a4f133893e6a77a967c84220d7baf9687f23 04-May-2010 Andreas Huber <andih@google.com> am 8ea45aad: am e083d0a2: Merge "Support for Ogg Vorbis decoding in stagefright." into froyo

Merge commit '8ea45aad100ee25067b2e83703454c71a968ba4f' into kraken

* commit '8ea45aad100ee25067b2e83703454c71a968ba4f':
Support for Ogg Vorbis decoding in stagefright.
3cf4e43cdd391502690c07e08e805aa8ff5db0c0 04-May-2010 Andreas Huber <andih@google.com> Support for Ogg Vorbis decoding in stagefright.

Set the magic property media.stagefright.enable-vorbis to true to use the new implementation instead of the standalon vorbis player for file-based playback. HTTP streaming of vorbis content will always go through stagefright.

Change-Id: Ie3843a99fadb22372f89540d0f8d65196e0c2af8
related-to-bug: 2654400
ediaDefs.h
c32cd79d9ad4aba7d959b5b3be7361b4715e6f18 27-Apr-2010 James Dong <jdong@google.com> Use timestamp from camera driver for CameraSource

Change-Id: I09ddec69997c43b8f17fdd21304c76cb4c5ab8cf
ameraSource.h
88b1b1c7331023828108daa57fcea858c7706566 13-Apr-2010 Andreas Huber <andih@google.com> am 248ea4a9: am 5baa5e19: Merge "Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\'t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks." into froyo

Merge commit '248ea4a9f773210a7b7dbd7892e6b865a0f7add3' into kraken

* commit '248ea4a9f773210a7b7dbd7892e6b865a0f7add3':
Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don't have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.
81f82c32459029bf0744e28c73f95a7f18cab5ac 13-Apr-2010 Andreas Huber <andih@google.com> Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don't have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.

Change-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af
related-to-bug: 2587341
ediaDefs.h
ebe87f32e442c9a8fb2931632311d6c5a126eddb 23-Mar-2010 Andreas Huber <andih@google.com> Remove unnecessary lock from AMRWriter.

Change-Id: Ia02966d936dd8cbb31e92051578a3fa816885710
MRWriter.h
1ab1e4ec459ab549f79a98693a67f241861450be 08-Apr-2010 Andreas Huber <andih@google.com> Refactor connection/redirection code, support redirects on reconnection.

Change-Id: Id2517568000e028b01553c06a4893813a6883168
related-to-bug: 2580785
TTPDataSource.h
d8c76856c6d52dcd11a90124dafef0af99956e15 08-Apr-2010 Andreas Huber <andih@google.com> Increase the size of the pages used in CachingDataSource (total amount of memory used remains the same) to compensate for reduced locality of audio/video data requests. Also fixes a mistaken trailing "\r\n" in the range header and better error handling on http connection.

Change-Id: Ic9a6ef204362bc9afdc61e081c76bc62e5ef92ad
related-to-bug: 2580785
TTPDataSource.h
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
MXCodec.h
0887d170c7dc57411855382e326dd471824c9c02 18-Mar-2010 Andreas Huber <andih@google.com> While streaming media data, upon a socket-read error, try reconnecting to the server and attempt to re-read for at most 3 times.

Change-Id: I7534905e07a6456d18b26d5d60fa8915f25ae99e
related-to-bug: 2492187
TTPDataSource.h
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
MXCodec.h
e94bd14078d327ef2f800e69907efce641a13272 12-Mar-2010 Andreas Huber <andih@google.com> HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.

Change-Id: I6d73defe6d276693853a469db267bb2668d07af5
related-to-bugs: 2475845,2414536
TTPDataSource.h
79b19b39acce9b1303f8cf1a11c6b7ef852dc5a8 11-Mar-2010 Andreas Huber <andih@google.com> Reduce buffer sizes related to HTTP media data transfer in order to reduce the probability of a connection timeout/reset due to long periods of time between socket activity.

Change-Id: I799ce1d58d56a31088a89603d8a18d24780f5b57
related-to-bug: 2492187
TTPDataSource.h
2e39c1ca101e01ff13b03129a87939e7982b25bf 10-Mar-2010 Andreas Huber <andih@google.com> Instead of instantiating StagefrightMetadataRetriever directly, instantiate a MediaMetadataRetriever which will do-the-right-thing(tm) even for .wma/.wmv/.asf files.

Change-Id: Ibda4b5268514934f14a3d49a564902bc670f4384
related-to-bug: 2074137
tagefrightMediaScanner.h
e7e3b785a0e7819db4c895a4f60e9a4dd755880c 09-Mar-2010 Andreas Huber <andih@google.com> The audio track was accidentally not participating in the prefetch since it wasn't started at the time prepare() was called. Also, properly report the cached duration even near the end when the source has no more data to fetch.

Change-Id: I66a92fec24c9bfb25f1c186f1c877127bae2b4f9
related-to-bug: 2444425
udioPlayer.h
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
udioPlayer.h
MXCodec.h
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
MXCodec.h
328901bdc7c00ab361c5ef16d0d69c94a0458e95 11-Feb-2010 Marco Nelissen <marcone@google.com> Merge "Add support for "album artist" tag."
66ac4df65516ebfd0e500bfca75dc4b5ef8d674e 11-Feb-2010 Marco Nelissen <marcone@google.com> Add support for "album artist" tag.
etaData.h
3cf613507f1e2f7bd932d921a6e222e426fd3be4 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
ardwareAPI.h
7d5b8a70c28c0d5746a600467b2887822dbff88e 10-Feb-2010 Andreas Huber <andih@google.com> Implementation of stagefright-enabled MediaPlayerService::decode functionality

related-to-bug: 2359268
udioPlayer.h
6c8a9a4132337a3419a72a735f0b40df0b82061f 08-Feb-2010 Marco Nelissen <marcone@google.com> Add support for the TPOS/TPA (disc number) id3 tag.
etaData.h
1862a33b246249630b654182afb5914da3480d4c 03-Feb-2010 Andreas Huber <andih@google.com> Fix a deadlock caused by the AudioPlayer notifying the observer that the stream had ended at the same time the observer was shutting down the AudioPlayer.

related-to-bug: 2414536
udioPlayer.h
de6bec4ec04e9b8e9f96bc44fc15e6d072f851a8 02-Feb-2010 Andreas Huber <andih@google.com> Don't use a HEAD request to determine redirects, instead do a regular GET (since that's always supported), also limit the number of redirects to avoid infinite redirects. Finally, properly handle the end of stream.

related-to-bug: 2403674
TTPDataSource.h
4cf04b1bf703522b37a60427ef02f2a18b218c19 02-Feb-2010 Andreas Huber <andih@google.com> Properly advertise the content length of the HTTP stream if available.

related-to-bug: 2312941
achingDataSource.h
TTPDataSource.h
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.
MXCodec.h
88c030e0e0152791ff74f90249f55fce01371198 29-Jan-2010 Andreas Huber <andih@google.com> Properly forward errors returned by AudioTrack up to the player.

related-to-bug: 2300197
udioPlayer.h
5561ccf4a8db88a2e44eac1b3ed13b4ff53a7f20 28-Jan-2010 Andreas Huber <andih@google.com> Support the specification of additional HTTP headers in the creation of a DataSource.

related-to-bug: 2393577
ataSource.h
TTPDataSource.h
ediaExtractor.h
8566a635aa4bf6d2e908f0bc64d4fb8917025b58 28-Jan-2010 Andreas Huber <andih@google.com> Fix http streaming for shoutcast servers that do not support http ranges.

related-to-bug: 2295438
TTPDataSource.h
e9f8c544dbe0ac7ff88df18bfe9084c72e3ac1d5 27-Jan-2010 Andreas Huber <andih@google.com> Merge "Better support for HTTP streaming media content, fixes to the way HTTPDataSource streams the data, prefetcher implementation."
66b0a35c9a4136a84c3f73b1b25fcb5220138b95 27-Jan-2010 Andreas Huber <andih@google.com> Better support for HTTP streaming media content, fixes to the way HTTPDataSource streams the data, prefetcher implementation.

related-to-bug: 2295438
achingDataSource.h
ataSource.h
TTPDataSource.h
2dce41ad26cb3e9e15c9e456a84bcf5309548ca0 26-Jan-2010 Andreas Huber <andih@google.com> Support for audio recording into AMR NB/WB files as well as audio tracks in MPEG4 files.

related-to-bug: 2295449
MRWriter.h
PEG4Writer.h
ediaWriter.h
e7c9cb48fec02697227bd847cd2e69432659adfd 25-Jan-2010 Andreas Huber <andih@google.com> Initial checkin of AudioSource and AMRWriter, a pair of classes supporting pure-audio recording in stagefright.

related-to-bug: 2295449
MRWriter.h
udioSource.h
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.
MXCodec.h
570a3cb7582daa030cb38eedc5eb6a06f86ecc7f 21-Jan-2010 Andreas Huber <andih@google.com> Fix no-copy-overhead OMXCodec implementation to actually work.
MXCodec.h
72b8c5ae6a5f97a4fcfc6d23d33159d6ae50179c 20-Jan-2010 Andreas Huber <andih@google.com> Support for 'iTunes-style' metadata in .mp4 and .3gp files.

related-to-bug: 2368967
etaData.h
7eaa9c9385535b651064e02d05a8ffa4b2359281 16-Jan-2010 Andreas Huber <andih@google.com> Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.
MXCodec.h
bd4bc59262df90dc85752684a1d4a92833a535a3 13-Jan-2010 Andreas Huber <andih@google.com> More metadata support.
etaData.h
fc9ba09e3bb368f823d473f5e2bb9aa32dba6289 12-Jan-2010 Andreas Huber <andih@google.com> Squashed commit of the following:

commit f81bb1dac5ef107bb0d7d5d756fb1ffa532ba2cc
Author: Andreas Huber <andih@google.com>
Date: Mon Jan 11 14:55:56 2010 -0800

Support for duration metadata, midi and ogg-vorbis files (in mediascanner)

commit 0b1385a0dc156ce27985a1ff757c4c142fd7ec39
Author: Andreas Huber <andih@google.com>
Date: Mon Jan 11 14:20:45 2010 -0800

Refactor meta data logic. Container specific metadata is now also returned by the MediaExtractor.

commit f9818dfac39c96e5fefe8c8295e60580692d5990
Author: Andreas Huber <andih@google.com>
Date: Fri Jan 8 14:26:09 2010 -0800

A first pass at supporting metadata through ID3 tags.

commit 476e9e253633336ab790f943e2d6c0cd8991d76a
Author: Andreas Huber <andih@google.com>
Date: Thu Jan 7 15:48:44 2010 -0800

Initial checkin of ID3 (V2.2 and V2.3) parser for use in stagefright.

related-to-bug: 2295456
ataSource.h
ediaExtractor.h
etaData.h
67e5a4f6f6879d512a859e5dba92e9beec7a2f91 08-Jan-2010 Andreas Huber <andih@google.com> Reorganize some of the stagefright implementation related to metadata.
tagefrightMediaScanner.h
8ae1d0bdcef22f2bdd8d283e0e615f3ba6c3f4cd 16-Dec-2009 Andreas Huber <andih@google.com> Add a new API to support determining the roles of an OMX component specified by name. Remove unneeded OMXSoftwareCodecsPlugin.
MXPluginBase.h
b841f14f8e51f2365945281fbfa54ef6a1b1b5a6 12-Dec-2009 Andreas Huber <andih@google.com> Initial checkin of software AMR NB encoder based on PV source code.
etaData.h
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.
MXCodec.h
f0fb96c352f30b812a4903a1d783a715e1e817bd 04-Dec-2009 Andreas Huber <andih@google.com> Enable proper cleanup of OMX nodes managed through stagefright.
MXPluginBase.h
e3ec3cec3a2e27033249ff82964d2cbd441d9873 03-Dec-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 543e192bf2ae13f573dc4c4e53b239ed4ea00e81
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 3 11:33:57 2009 -0800

stagefright now acts as the OMX Master, vendors supply their own plugins through libstagefrighthw. In OpenCore-enabled builds we now sit on top of PVMaster...

commit 3cbfdbd9cecadbb77b63125c62883bf1065884fe
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 2 12:39:07 2009 -0800

More OMX infrastructure, stagefright is now taking over the OMX Master, multiplexing all contributing OMX implementations under a common interface.
ardwareAPI.h
MXPluginBase.h
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).
MXCodec.h
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.
udioPlayer.h
ediaPlayerImpl.h
mapSource.h
f78933fdfc5bc71881b3011f921b643d90387664 17-Nov-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change Iea6a38c6 into eclair-mr2

* changes:
Squashed commit of the following:
03475f5af25e4aa32d46d41dd2ec756853d8dd9d 17-Nov-2009 Andreas Huber <andih@google.com> Update FileSource to also accept a file descriptor and a range.
ileSource.h
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".
ameraSource.h
PEG4Writer.h
etaData.h
MXCodec.h
53f45f0367d9563278f427db106736dcd1a433d1 12-Nov-2009 Andreas Huber <andih@google.com> resolved conflicts for merge of c66d53f9 to eclair-mr2
1dfc99f22fb9d8c798065938c24eeb4eb9691747 12-Nov-2009 Andreas Huber <andih@google.com> Delegate the platform dependent hardware renderer implementation to a shared library provided by the vendor.
ardwareAPI.h
ComHardwareRenderer.h
IHardwareRenderer.h
5b65c7043dada0c89d3a941742666ac40ea35746 05-Nov-2009 Andreas Huber <andih@google.com> DO NOT MERGE: Squashed commit of the following:

commit 08259dd3dc9026887f9bbfedaf45866eb56ea9bc
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 12:02:31 2009 -0800

DO NOT MERGE: Use PV for metadata extraction even if stagefright is used for playback.

commit 991832fe4dc012e51d3d9ed8d647c7f09991858f
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:24:11 2009 -0800

DO NOT MERGE: Do not assert if we encounter OMX_StateInvalid. All bets are off though.

commit cec45cf302d9218fe79956cbe8a462d7ca3a10bb
Author: Andreas Huber <andih@google.com>
Date: Mon Oct 26 16:11:54 2009 -0700

DO NOT MERGE: When freeing an OMX node, attempt to transition it from its current state all the way to "Loaded" in order to properly free any allocated buffers.

commit 34a1e885ef9113d68acbc26d36fcc47fdebbed84
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:10:49 2009 -0800

DO NOT MERGE: Fix heap corruptin in OMXNodeInstance.

commit 5a47f7439a1298b330541a7e4e647a8b44487388
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:08:19 2009 -0800

DO NOT MERGE: Fix seek-on-initial-read behaviour of OMXCodec.

commit 45bed64722501b9f411a2940aff5aff4cc4d2e98
Author: Andreas Huber <andih@google.com>
Date: Thu Nov 5 11:02:23 2009 -0800

DO NOT MERGE: Renaming string.h to stagefright_string.h to avoid conflicts.

commit 6738e306a50196f31a73d4fc7b7c45faff639903
Author: Andreas Huber <andih@google.com>
Date: Thu Oct 15 13:46:54 2009 -0700

DO NOT MERGE: 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.
TTPStream.h
tagefright_string.h
tring.h
0dba73763a04d39faf999dcc5ef12af3c99535a7 04-Nov-2009 Andreas Huber <andih@google.com> Adds a WAVExtractor for 16-bit signed PCM audio wave files.
ediaDefs.h
888f72a4628eed3c136ff2e346a15d129da0d520 29-Oct-2009 Andreas Huber <andih@google.com> Revive support for video encoding in OMXCodec.
MXCodec.h
be5c74f5da6a93b0d23f96e11848acfcc3b4d1d9 14-Oct-2009 Andreas Huber <andih@google.com> Re-enable CameraSource.
ameraSource.h
34769bc913e9f6bb138e666d94a9d685bf3da217 23-Oct-2009 Andreas Huber <andih@google.com> New API to instantiate a MediaExtractor given a URI and optional MIME type.

Also DataSources now must provide a method initCheck()
and DataSource::reat_at has been renamed to readAt to conform to
standard API naming guidelines.
achingDataSource.h
ataSource.h
ileSource.h
TTPDataSource.h
ediaExtractor.h
mapSource.h
houtcastSource.h
66326a5ee0869f1ee4d136a477e6effba428b3cb 23-Oct-2009 Andreas Huber <andih@google.com> Moving the individual extractor headers files to the private include directory.
MRExtractor.h
P3Extractor.h
PEG4Extractor.h
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
extraction.
MXCodec.h
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()
MRExtractor.h
P3Extractor.h
PEG4Extractor.h
ediaExtractor.h
etaData.h
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.
MXCodec.h
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.
MXCodec.h
89e69da4d86348409994c9dafbbb2634ccd7c196 13-Oct-2009 Andreas Huber <andih@google.com> Separated private from public header files.
SDS.h
TTPDataSource.h
TTPStream.h
ComHardwareRenderer.h
ampleTable.h
oftwareRenderer.h
IHardwareRenderer.h
imedEventQueue.h
tring.h
549aa3741725ea2fd75c5fb717ff5a9316a5a55d 13-Oct-2009 Andreas Huber <andih@google.com> Fix various compiler warnings accumulated over time.
ampleTable.h
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.
ediaErrors.h
ediaSource.h
MXCodec.h
48c948b1137e7bbdb161b51908657ab72ac5e2da 08-Oct-2009 Andreas Huber <andih@google.com> Change to a int64_t usecs representation for timestamps and duration throughout stagefright.
etaData.h
d3eaeefb1bac68bc1fee91b794be2c2c3bea6d94 09-Oct-2009 Andreas Huber <andih@google.com> Fixing the build.
olorConverter.h
2a4a7d5af053a17586a262a1267ba993e31790f1 07-Oct-2009 Andreas Huber <andih@google.com> Split the ColorConverter off SoftwareRenderer, metadata support in stagefright.
olorConverter.h
oftwareRenderer.h
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
MXCodec.h
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.
MXCodec.h
4265a834394bfe14a008a2ac58fbbe388566ad07 16-Sep-2009 Andreas Huber <andih@google.com> Another software color conversion implementation, this time OMX_QCOM_COLOR_FormatYVU420SemiPlanar => rgb565.
oftwareRenderer.h
10f75b8c71beb7f327e50bbac8e528af4e40fa24 15-Sep-2009 Andreas Huber <andih@google.com> Support CbYCrY -> RGB565 color conversion in IOMXRenderer.
oftwareRenderer.h
777893a928680f09e306b4b9efc1d5cf4479a9da 11-Sep-2009 Andreas Huber <andih@google.com> Move JPEGSource.{cpp,h} into libstagefright.
PEGSource.h
18291bc20e55e8f3fd5feb786771a8ed32c19c59 10-Sep-2009 Andreas Huber <andih@google.com> Media MIME types now have corresponding constants in MediaDefs.h, new codec enumeration API.
ediaDefs.h
MXCodec.h
25b130939339d57789a86fac837a2a8cedbcb7d8 10-Sep-2009 Andreas Huber <andih@google.com> Minor API change in MPEG4Writer, support for amr output into MPEG4 containers.
PEG4Writer.h
f75978f63a25e79c683e96611f95cb5cd49efd3d 09-Sep-2009 Andreas Huber <andih@google.com> Added a .amr file extractor (for AMR-NB and AMR-WB content).
MRExtractor.h
P3Extractor.h
456db75516efc889e1ee4e5e16021e77c03b0941 08-Sep-2009 Andreas Huber <andih@google.com> Support encoding amr-wb content in stagefright.
MXCodec.h
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.
MXCodec.h
e5adbeee3401915ff8e1a983396ce3554436b11c 02-Sep-2009 Andreas Huber <andih@google.com> Some work to make audio encoding work.
etaData.h
MXCodec.h
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...
MXCodec.h
e0f0b08aa692d15f3bfa19e10abfc84803c099b4 27-Aug-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 3fa5f3ce910f34da0cedb8bcce1bd593db7eb740
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 27 14:48:54 2009 -0700

Getting rid of more code now obsolete with the departure of OMXDecoder.

commit e0d923ec0c7bb60bec8eb97739036a4c70c0feef
Author: Andreas Huber <andih@google.com>
Date: Thu Aug 27 14:33:06 2009 -0700

Remove obsoleted OMXDecoder class. OMXDecoder is dead, long live OMXCodec.
MXClient.h
MXDecoder.h
284f513a4ce2c5aa0e250c07c873731aedb0be26 27-Aug-2009 Andreas Huber <andih@google.com> An attempt to fix a deadlock between OMXCodec::start and upstream ::read
MXCodec.h
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...
MXCodec.h
0c89199745bc1bf05b997fc7c342017807676b6f 26-Aug-2009 Andreas Huber <andih@google.com> assert => CHECK in stagefright.
ediaDebug.h
ea7d15629752256f6ea1d5c6ea796e59aefd030f 26-Aug-2009 Andreas Huber <andih@google.com> Keep up with latest changes to overlay handling on that unnamable platform.
MXCodec.h
IHardwareRenderer.h
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.
MXCodec.h
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.
etaData.h
MXCodec.h
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.
etaData.h
MXCodec.h
MXDecoder.h
2d7d46fb2d7f5f80afbf060f25ed049079fb0fc9 18-Aug-2009 Andreas Huber <andih@google.com> Refactored "stagefright" commandline app, split off JPEGSource.
ediaBufferGroup.h
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).
udioPlayer.h
achingDataSource.h
ataSource.h
P3Extractor.h
PEG4Extractor.h
PEG4Writer.h
ediaBuffer.h
ediaDebug.h
ediaExtractor.h
ediaPlayerImpl.h
ediaSource.h
MXCodec.h
MXDecoder.h
ampleTable.h
408b8e1073385d0d09bb96b9952f84731a0b4aeb 07-Aug-2009 Andreas Huber <andih@google.com> Deprecate/remove now unused socketpair ipc communication in favour of exclusive binder use.
MXClient.h
bf37f3364804f521cc61845b1f1ce16fe133814b 04-Aug-2009 Andreas Huber <andih@google.com> Recording/Export to .mp4/h.263 somewhat works on TI hardware.
MXDecoder.h
8b938cdab5bd3d074d9b41bc2915fcfc11e47f27 31-Jul-2009 Andreas Huber <andih@google.com> The IOMX interface now instantiates IOMXRenderers to hide the details of hardware accelerated blitting.
ediaPlayerImpl.h
etaData.h
urfaceRenderer.h
cfb3bc79a0e4d60ee2512c4ddbb85c424cc96c19 28-Jul-2009 Andreas Huber <andih@google.com> While other OMX nodes appear to now have switched to using microseconds to timestamp buffers, at least the TI AAC and MP3 decoders still use milliseconds.
MXDecoder.h
0024245e134467d120b40099da16c467dc365e76 28-Jul-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 374ea382ee3a9e3ce17e4c6357fc40d02e362810
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 28 09:54:13 2009 -0700

PV's OMX implementation now uses (spec-compliant) microseconds instead of milliseconds in buffer timestamps.

commit 8d02f8ab5d7b022ad4ad34db2a9bdeea6ce2acfe
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 27 14:24:26 2009 -0700

Support for using an overlay for video playback on TI hardware.

Appears to be currently constrained to CbYCrY 16-bit colorspace.

commit d17f321cb4b15c1fea378f33a7ef5998f23dd0fc
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 27 09:45:38 2009 -0700

Added '--audio-only' commandline option to stagefright tool.

commit d8beef6be5c668c46451446d87e622933371cd75
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 24 13:35:00 2009 -0700

Generalize the various workarounds for OMX nodes with their own unique interpretation of the spec.

commit c7dfd53eeadf8ed5a39bf2b19b014dcd62f3324d
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 23 16:06:36 2009 -0700

Fixed erroneous TI AAC decoder behaviour wrt shutdown.

The AAC decoder appears to not return out buffers on an Executing->Idle transition, implemented a workaround that does a flush on all ports followed by the Executing->Idle. Oh, and flush with OMX_ALL doesn't properly work either. Fun.

commit d6377282e75060881336578f166f9c7feacf3f8f
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 23 14:06:50 2009 -0700

Apparently the "channels" parameter in AudioTrack's constructor no longer counts channels but is a bitmask of enabled destinations, update the code accordingly.

commit ff698c79e851a2e57d362e9c3a09828af4048087
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 22 16:54:44 2009 -0700

Fix MPEG4 decoding using TI's hardware decoder that I broke earlier...

commit 2ef78bb87cd856eb7f0b3d7dd68782a8650c12bf
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 22 15:43:18 2009 -0700

Now that the qcom decoder properly advertises its own custom colorspace, update dependent code to reflect this fact.

commit bbaec96910727080fd7c8a6907c04facb9f5220f
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 22 14:32:03 2009 -0700

Finishing up previous, incomplete change.

commit 76f14a1ae816b6f434771f8d12bdad81196f351e
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 22 14:25:17 2009 -0700

The TI video decoder now properly decoder AVC/H.264 content.

commit e106130d8c100d5c94603e43864a7a93cca10252
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 22 08:56:04 2009 -0700

Experimental support for the TI H.264 decoder, various modifications to OMXDecoder, non-functional still.

commit 241c3062dec3447db1a1ee74558cb4b9098fc404
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 21 12:13:09 2009 -0700

Enable TI hardware OMX decoders (except for AVC/H.264 which still has issues).

This particular set of OMX nodes does not appear to properly return our buffers when sending the "disable" command on a port. Rather it reqires manually flushing that port and _then_ disabling it instead.

commit 1c34506a46e32ce25f2a86f3b4250dcfc037356a
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 21 08:51:35 2009 -0700

Make it simpler to switch between the stagefright player and PVPlayer.

commit 249c6de05671d403f8dd51f095d49bf190430c9c
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 20 14:38:15 2009 -0700

Prepare to use soon-to-be-available hardware decoders in the OMX decoder.
MXDecoder.h
IHardwareRenderer.h
361f482fd229c4d0b683d04c93b9da4ab01660b7 17-Jul-2009 Marco Nelissen <marcone@google.com> Fixes to make libstagefright build for the simulator.
imeSource.h
20111aa043c5f404472bc63b90bc5aad906b1101 15-Jul-2009 Andreas Huber <andih@google.com> Squashed commit of the following:

commit 8d179995654c19d9094e51989dc84ed0deba6e04
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 14 16:30:40 2009 -0700

Protect stagefright code with BUILD_WITH_STAGEFRIGHT build-define.

commit 99b41acb58c34e8f024c30c833a09fd7b31c4e1f
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 14 14:06:00 2009 -0700

OMX::list_nodes API, stagefright --list now lists all available OMX components.

commit 94a74c5b24aae6d7e446fff83d62ae3a57dc351b
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 16:04:29 2009 -0700

Reenabled "record" commandline application to test encoding, support for h263 codec specific data when writing to .mp4.

commit d363dd74f611577567c66d25900d6264c306468c
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 10:59:58 2009 -0700

Make non-socket communication in IOMX the default.

commit e89fc82c4fd138c88339887baf72f1d0e67f8660
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 13 10:32:33 2009 -0700

The OMX interface now optionally supports communication through the binder only (no sockets involved)

commit 28611de11223fba65299787cdd33f7fdbd6a60a3
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 15:09:13 2009 -0700

Split off the logic to render to a Surface (not ISurface!) into SurfaceRender.{cpp,h}

commit c0cfa885faaeb17d3fc5436f6447b61708bd6fe1
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 12:21:46 2009 -0700

Fix display dimensions vs. decoded dimensions display issues, unfortunately breaks software rendering a bit...

commit ae209a2b5d09caed5dd383c910f238926aaa8fc6
Author: Andreas Huber <andih@google.com>
Date: Fri Jul 10 09:33:29 2009 -0700

Simple video decoder performance test in "stagefright" commandline tool.

commit 59fe7840111d6f46dd3c48f4950146aed962dbd2
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 9 16:05:12 2009 -0700

StagefrightPlayer: Properly publish video dimensions by notifying the listener.

commit 51b6598f0e47be5e12d77f1d14e111e71c593638
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 9 11:38:15 2009 -0700

MediaPlayerInterface::AudioSink now supports the specification of a callback for pull-based audio.

commit 31ce53375d748da3e7d30e993ce89dae97fd65ea
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 17:23:37 2009 -0700

Proper support for pushing audio to a specified AudioSink interface. Still not bulletproof: video falls behind frequently.

commit a23e312b10631a5d47f5c9831205beac6b84ab36
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 15:10:13 2009 -0700

IGenesisPlayer and friends are no more, java interface now uses local playback instead
of playing inside the media server process.

commit 42ee5c06ab5ba1c16f50472b0b26a0526635c73c
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 8 13:17:03 2009 -0700

MP3 extractor now supports seeking (only fixed bitrate files currently supported)

commit 96a790405763bfa738d1c6845c99a9fdf579b66f
Author: Andreas Huber <andih@google.com>
Date: Tue Jul 7 10:53:54 2009 -0700

Keeping up-to-date with new master-gl changes, removing CameraSource for now, removing unnecessary commandline utilities from the build.

commit 6c9dcb7c628c0347154dd7f37913a3a5f04deb99
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 6 16:40:02 2009 -0700

Finally take advantage of the fact that the Qcom OMX decoders already place the output buffers into memory accessible by the hardware yuv converter and avoid extra allocations and memcpys in that case. Split of the render logic into subclasses of VideoRenderer.

commit e8d46e81cffc15ffb0bdf03f511e4a4497ca7621
Author: Andreas Huber <andih@google.com>
Date: Mon Jul 6 12:18:29 2009 -0700

Added a few more cases of valid MPEG4 files to the sniffer, fixed end of stream notifications in MPEG4 files.

commit 88bffc5ed4033a607080f8777a1c0ec9e3e079de
Author: Andreas Huber <andih@google.com>
Date: Thu Jul 2 12:25:03 2009 -0700

MediaPlayerImpl now properly pauses/resumes instead of tearing down the decoder chains and starting back up from the beginning.

commit 732aa0a87c7e8d8a10776b275712649954962414
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 1 14:58:56 2009 -0700

Remove pthread_mutex_* and pthread_cond_* in favour of Mutex and Condition.

commit 669e5944b2fe0542a3b8dba0c441a94503e99fb0
Author: Andreas Huber <andih@google.com>
Date: Wed Jul 1 14:43:02 2009 -0700

Proper support for end-of-stream signalling of MediaSources.

commit afb038f2dc594c742e554b2d42b86ffc7434e3fc
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 30 16:48:03 2009 -0700

Support for the "sniffing" of datasources to determine their probable mime type (along with confidence). Slightly refactored the MP3Extractor to share common code with the sniffer.

commit ed3644b8bd56807e1db4b32433a93a2467f1f3c5
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 26 13:27:52 2009 -0700

I don't think prepare should automatically start the player.

commit 11eb9b49dc4a0819d366682817cba68613f4fe12
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 26 11:09:22 2009 -0700

Somewhat better timing information implemented in the MP3Extractor.

commit cab023a1751735c0ed26c8493498a91d8644c6c9
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 25 15:41:56 2009 -0700

Initial checkin for support of mp3 content, extraction and playback. Media extractors now abstracted in MediaExtractor baseclass.

commit 40f4146bb3c647e56690dd9b0fa3ffdea60030dc
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 24 10:41:12 2009 -0700

Make sure we only allocate surface buffers if there is video to be played.

commit 7f85e7d92fe81740e102e09905b19354f4ac178e
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 24 10:19:32 2009 -0700

Clean up a failed merge and implement stub for new API in MediaPlayerBase.

commit f0e9d494a4c03402ea7b54891848ca5a50c421b2
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 12 15:38:03 2009 -0700

Support yuv420->rgb565 conversion if hardware color conversion is unavailable.

commit 87223248b3099cd5261b94169f84cfd1eba56a8f
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 12 09:35:56 2009 -0700

Remove unimplemented and currently unnecessary blocking option from MediaSource::ReadOptions.

commit e07e651f0325892b797f3eb64dbeca0f317afdfd
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 16:26:42 2009 -0700

Enable assertions in HTTPDataSource.

commit 0dc97adebea1721156880f4b3d5c70f8d50c53b2
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 12:34:39 2009 -0700

delete foo.

commit 7f05845dda496e7defee284d32509d127e785784
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 12:34:08 2009 -0700

added foo.

commit e432970c51eeec4e5d549bdb3e2d3e48ffb4f0e7
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 10 11:44:31 2009 -0700

Make sure to initialize all fields in _all_ constructors... Use a Mutex instead of the raw pthread_mutex_t.

commit d6286a6bbca639952491448fa3e609b775a8a814
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 17:11:49 2009 -0700

send_command is now implemented twice... ugly hack to get both shutdown working correctly and startup as well... playback now "works" on the emulator, too.

commit 8d657e004677a7c5dae4479e8519bcaa94c18aad
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 11:58:55 2009 -0700

Instead of erasing codec specific data once it's been output to the omx node, retain the data and just rewind after a stop.

commit 279fede6ba35cbc37c35616c53406bf2c9720202
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 10:58:11 2009 -0700

Various fixes related to play/pause. Decoder now properly frees OMXMediaBuffers, made MemoryDealer destructor protected instead of public to prevent accidental stack-allocation of MemoryDealer objects.

commit 0f717f15a6328efd3f34082929cd8ad2351095a9
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 9 08:44:12 2009 -0700

Make sure to rewind codec specific data on OMXDecoder::stop and reset AudioPlayer's notion of time mapping.

commit 0cfb63e33270daf9b215214608ab383f93a31823
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 14:25:48 2009 -0700

Massive rename.

commit 30ed8f476c4431a5275538958b3e281bd17d5eab
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 13:52:41 2009 -0700

send_command and fill/empty buffer commands must be executed in sequence, send_command is now dispatched over the socket instead of through the binder interface to ensure this.

commit b832d04011b2dd8a9632eb7e575bfe1addd1270d
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 10:21:17 2009 -0700

MediaBuffers can now be "clone()", they sit on top of the same data but have their own range and metadata. Once a clone's refcount drops to 0 it decrements the refcount on the original buffer.

commit 4e944672808bdf1ed40a69f3f602f93ebf7b4049
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 8 10:01:01 2009 -0700

Split MediaBuffer.h into MediaBufferGroup.h and MediaBuffer.h, same with their respective source files.

commit ddb7529b4de4828db51432bd405fddd76cfa3b6a
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 5 16:30:25 2009 -0700

More fudging with A/V sync...

commit 1e5a4d8df08237b58c06c6527a33152ae931addf
Author: Andreas Huber <andih@google.com>
Date: Fri Jun 5 11:54:20 2009 -0700

API cleanup of MediaSource. Got rid of MediaRing as it really doesn't serve a purpose if OMX decoders are used.

commit 0953c65232aa9753d17d2e25c5f5526eb810cf13
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 4 16:59:19 2009 -0700

Experimental TimedEventQueue and an attempt at a cleaner player implementation using it, OMXDecoder is now a little less verbose.

commit 2085b8ea9484a21fa11f94194a27405d413aeecc
Author: Andreas Huber <andih@google.com>
Date: Thu Jun 4 10:17:01 2009 -0700

Properly bail out of the AV sync loop if the MediaPlayerImpl is stopped.

commit 471f143458a8a0d93cb1bf9568c63c3967279dc6
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 17:32:27 2009 -0700

Now this is much better AV sync, defer seeking the audio source until we know where the video source synced to.

commit 4010d371dbe62ce4971e13437776cba32cb0bb3d
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 16:01:07 2009 -0700

Tweaked some of the heuristics in AV sync, OMXDecoder is now a little less verbose, seek to a sync sample at or _after_ the requested position.

commit f3d4af1d5a4ac31fa02271b000f6c7ec593f0da9
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 15:33:58 2009 -0700

Change the TimeSource interface's APIs, prefer microseconds over milliseconds now, changed the way MediaPlayerImpl does AV sync.

commit 08bb46fa61d12e852a424698ddb0c90700328f6e
Author: Andreas Huber <andih@google.com>
Date: Wed Jun 3 11:57:24 2009 -0700

Using framework's Mutex and Condition classes instead of pthread functions, much saner locking in OMXDecoder.

commit 4d77b4e09e59bbf8c1af009ae7dc62b10af52fd6
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 2 17:12:03 2009 -0700

MediaSources now publish their format.

commit 7e429a26c57bf936e1a08035d2d11839f9f00310
Author: Andreas Huber <andih@google.com>
Date: Tue Jun 2 16:38:29 2009 -0700

MetaData is now implemented in terms of KeyedVector, MetaData is now reference counted.

commit 0fa957aa5c9bcb6ec122ed7b5b97430039be6797
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 14:39:55 2009 -0700

Sync sample seek support.

commit 78a5f090d02e7e6e1a146b29bdb7771eecaa2f86
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 13:51:11 2009 -0700

Distinguish shutdown from port-flush since one requires buffers to be freed and the other one doesn't. Fixes a problem with seek.

commit e57781d3b2c985a74cd8b60e7c8f2d576459d038
Author: Andreas Huber <andih@google.com>
Date: Mon Jun 1 10:52:20 2009 -0700

First shot at support for seeking a MediaSource. Sync frames are not properly handled yet.

commit 0551cd78fda78bf66877fb26c5a55e5ae23d8367
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 16:23:38 2009 -0700

Preliminary support for camera input.

commit f8ebafa65d10d5a06944de6b2e2992a33121b857
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 12:13:47 2009 -0700

Allow NativeMediaPlayer access to Surface's getISurface() method.

commit b1a9fb36eeccd9f49d28c1c64b31fccbd6506eeb
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:38:25 2009 -0700

Header files are now in their own genesis2 hierarchy below frameworks/base/include.

commit f49b8b234b8f6ce83148787eef540dd920f04aa6
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:22:03 2009 -0700

moved MPEG4Writer into libgenesis2.

commit 5224254919dac4728677335ea60429fa16f518b4
Author: Andreas Huber <andih@google.com>
Date: Thu May 28 11:13:38 2009 -0700

Everything now lives in the android namespace, integrated errors with android errors, renamed MediaPlayer to MediaPlayerImpl.

commit f9a9d84f7e0465ef5d1938a068655ba39527cf99
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 16:43:11 2009 -0700

Support for getPosition() and getDuration().

commit 3206cc5140bcbc88be039f8d94b954af63e69752
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 15:37:45 2009 -0700

Support for {MediaPlayer, GenesisPlayer, Genesis2Player}::isPlaying()

commit 9f41b248e0dfce71bbc50f883750cec52ebfd1fe
Author: Andreas Huber <andih@google.com>
Date: Wed May 27 13:49:50 2009 -0700

Proper disconnection from the OMX service.

commit cdcf47a2c31599109ee42277c7fa14af3c600091
Author: Andreas Huber <andih@google.com>
Date: Tue May 26 17:27:06 2009 -0700

New player type for the genesis player in libmediaplayerservice. Playing video through an ISurface now.

commit 0586af20ac9ae0403dd190bafd290b0f90549723
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 15:53:19 2009 -0700

Fix a buffer overflow error by adding padding in case we need to de-frame AVC data.

commit eac62fff6ad2ffb7b75c0d4a1b9620d33e93fb9b
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 13:35:30 2009 -0700

Support for http URIs in MediaPlayer, compensate for AudioTrack latency.

commit a7db456e3173d94d6b5e457547e2a6a5f7a8e1cc
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 11:33:25 2009 -0700

Support for URIs in MediaPlayer class, support for shoutcast streams in MediaPlayer, force shutdown of OMX nodes if they don't shutdown cleanly within a second.

commit 1f0268f4f14ad5215668f34e06a420850174d665
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:33:16 2009 -0700

and foo.txt is gone again.

commit 0feca4e0919f345704d78ec78894bac5027bd5ed
Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com>
Date: Fri May 22 08:28:49 2009 -0700

added foo.txt

commit 9c7d04b35cdc895a2de3602dc46522f608bd205f
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:28:04 2009 -0700

delete foo again

commit fec3ca1720992cce51b9a92b86b945da88a6b16c
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:27:45 2009 -0700

weird

commit 30a6571302333146e537e537a3a8986245cca87c
Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com>
Date: Fri May 22 08:18:55 2009 -0700

reverse test

commit dea3d99dd0fe9386e8a3c51954d9d0fe2be09d38
Author: Andreas Huber <andih@google.com>
Date: Fri May 22 08:18:22 2009 -0700

test

commit a9eeafec6e46072cac41e54ebdbd153cb7ae7518
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 16:37:50 2009 -0700

Use the video ring again for now.

commit e05ff3d3c1c4f89ef499a2b172138a775fd694e3
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 15:42:19 2009 -0700

Export to .mp4 now works for MPEG4 video content. Fixed a bug in the sample table wrt co64 chunks.

commit 5c44c540374a4e50c4e8aaab2b7a34aed6e1391e
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 09:56:11 2009 -0700

Fix the build, all binder-related headers have moved and there's a new library libbinde
r to link against now.

commit 23e0a24404d16c898c2c6b3c7495ad303844bc71
Author: Andreas Huber <andih@google.com>
Date: Thu May 21 08:42:04 2009 -0700

Initial checkin of MPEG4Writer, a class to export media sources into an mpeg4 file. MPEG4/AVC metadata (efss & friends) not currently working.

commit 9cd77adb1ac194197364ffad00a0d7215f458e1a
Author: Andreas Huber <andih@google.com>
Date: Wed May 20 12:31:45 2009 -0700

New shell command to test recording/encoding. Various changes to OMXDecoder to support encoding properly. Now each OMXDecoder needs a dedicated thread on the client side since onEvent responses could block which would cause deadlocks if a node depends on the output of another node for example.

commit 5c510fb55ffed7ec25305999ed9b6c1eec48d503
Author: Andreas Huber <andih@google.com>
Date: Mon May 18 15:40:06 2009 -0700

Make media decoding the default in the genesis2 commandline app instead of shoutcast playback.

commit f6c7a2040b8eb43326621f12c3a936e09b3a70e3
Author: Andreas Huber <andih@google.com>
Date: Mon May 18 11:03:04 2009 -0700

The king is dead, long live the kind... Replaced old OMX binder interface with new OMX binder interface/socket hybrid.

commit 0d4955eb5df9bfafb576d22f2ed572644d6d69ac
Author: Andreas Huber <andih@google.com>
Date: Thu May 14 12:39:34 2009 -0700

dynamic negotiation of NAL framing with the MPEG4Source, removed stale code from genesis2 commandline tool. Enable support form PV H264 software decoder.

commit 380369f54a8027cbc9349305184d6bf527a24efe
Author: Andreas Huber <andih@google.com>
Date: Wed May 13 17:32:00 2009 -0700

Explore the option of running everything inside the mediaserver process by encapsulating the player in an IGenesisPlayer binder interface.

commit b5cada56b9089a23e0c461352a97dc71e08b424d
Author: Andreas Huber <andih@google.com>
Date: Wed May 13 12:11:06 2009 -0700

Introduction of TimeSource class, clean shutdown of OMX Nodes.

commit 89f6e582e605dcb2149eb67f73fe9345d4b9be2e
Author: Andreas Huber <andih@google.com>
Date: Tue May 12 17:11:56 2009 -0700

Helper classes MediaRing and MediaPlayer.

commit 9aaed8739b4bb941473da367fb88f63224d2f1b7
Author: Andreas Huber <andih@google.com>
Date: Tue May 12 14:19:18 2009 -0700

Using mmap to map a file instead of going through FILE* improves performance, who knew?

commit ad097a78bbd002c59193ffdc39b64935928426c7
Author: Andreas Huber <andih@google.com>
Date: Mon May 11 16:42:42 2009 -0700

Added a performance test, refactored AudioDecoder a little.

commit bdd1b80ab3f3ba43e04f1f996e7fa84ed2e2728a
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 16:19:29 2009 -0700

No more copying the output buffers coming out of the decoder, NAL separation also done in the extractor to avoid copying the data.

commit 858955b42c29b8033841a8caaa56c2a449810ef3
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 14:02:38 2009 -0700

Change from a model in which the caller specifies the destination buffer to one where the MediaSource returns a buffer.

commit 95098b6d4f8bdc37dfb6a109ca58db4d9e414e2d
Author: Andreas Huber <andih@google.com>
Date: Fri May 8 13:21:45 2009 -0700

Changes to support multiple pieces of codec specific data to the decoder, de-frame nal units from the h.264 stream and insert start codes

commit 3941fcf87a48dda81683df727dfb1381f62d9184
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 16:37:45 2009 -0700

some refactoring. Most streams play now.

commit d3152862840d4dd39068e5197bec8674f3d55dd5
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 15:37:32 2009 -0700

Misc. changes to support H264 decoding using the qcom hardware decoder

commit d4ecdfe7af36e7468270d1c2cbbdc540efe0351e
Author: Andreas Huber <andih@google.com>
Date: Thu May 7 09:28:18 2009 -0700

Timestamps are now stored as a fraction, i.e. units and scale, also, PV appears to violate OMX specs by assuming timestamps are in milliseconds instead of microseconds.

commit fe6a50943f885e065d4061aa727a54417e9f36db
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 14:18:27 2009 -0700

Refactored commandline app instantiation of the decoder.

commit da1ff2724d0e78e8b360d9a2c34c55dd0e2c0492
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 10:41:14 2009 -0700

Proper audio/video synchronization.

commit 569ee3a23f600f4b6b87c6178c0223b06e97f201
Author: Andreas Huber <andih@google.com>
Date: Wed May 6 09:17:20 2009 -0700

Preliminary support for timestamps.

commit e4e302a89207550d8a7170d8c0afbd9c15047c84
Author: Andreas Huber <andih@google.com>
Date: Tue May 5 15:13:12 2009 -0700

Another quick hack job to make CachingDataSource thread-safe as well.

commit dfb376a58bd7c09aa04e89558186fcfe13fe696c
Author: Andreas Huber <andih@google.com>
Date: Tue May 5 15:08:14 2009 -0700

Quick rushjob to make FileSource and SampleTable thread safe.

commit 02b29e7ebdab1f8b959b6c177ceb3b89d998f375
Author: Andreas Huber <andih@google.com>
Date: Mon May 4 17:22:04 2009 -0700

Made video decoding work for mpeg4/h263 and mostly(?) with AVC content.

commit 3a57b8ff15e48f5a0af03bf0a99c32e240dbb7ef
Author: Andreas Huber <andih@google.com>
Date: Mon May 4 09:26:42 2009 -0700

Getting rid of old sample code to drive the OMXNode binder interface.

commit 5b046aed0cf524a57ea711bc1e43ea80e57b2cb3
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 16:21:11 2009 -0700

Moved files from the commandline utility into the framework, renamed MP3Decoder to AudioDecoder

commit 7f3fbba21512a078b732cc52c7bd5ba5acb9a317
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 15:56:19 2009 -0700

Fixed buffer ordering and an off-by-1 error in the SampleTable code. Plays all AACs now :)

commit 024d06baab8f2c540dde16f7e7a4b6dd57f638c7
Author: Andreas Huber <andih@google.com>
Date: Fri May 1 11:52:48 2009 -0700

Some AAC content in .3gp or .mp4 files plays correctly now, other does not. Implemented ESFS parser.

commit 1470427866b0d3e0ce6848b4edc01c13a09be289
Author: Andreas Huber <andih@google.com>
Date: Thu Apr 30 15:19:31 2009 -0700

Another checkpoint, amr decoding now functional.

commit e612d044439f56331b6a2bc4a88622e04d4d42e7
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 12:11:29 2009 -0700

string wrapper around String8, various fixes, shoutcast now works again.

commit 2ea52dfb1a39bf3a223ffc87855e54919e2daff7
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 11:08:18 2009 -0700

Initial check-in of OMXNode binder interface.

commit 7880d2957f74c0d7fba7679431ff5adb3780543b
Author: Andreas Huber <andih@google.com>
Date: Wed Apr 29 10:05:01 2009 -0700

Initial check-in of both libgenesis2 and the genesis2 commandline tool.
udioPlayer.h
udioSource.h
achingDataSource.h
ameraSource.h
ataSource.h
SDS.h
ileSource.h
TTPDataSource.h
TTPStream.h
P3Extractor.h
PEG4Extractor.h
PEG4Writer.h
ediaBuffer.h
ediaBufferGroup.h
ediaErrors.h
ediaExtractor.h
ediaPlayerImpl.h
ediaSource.h
etaData.h
mapSource.h
MXClient.h
MXDecoder.h
ComHardwareRenderer.h
ampleTable.h
houtcastSource.h
oftwareRenderer.h
urfaceRenderer.h
imeSource.h
imedEventQueue.h
tils.h
ideoRenderer.h
tring.h