summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/GraphicBufferSource.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge "stagefright: prevent allocating stale buffers for OMX decoders" into ↵Lajos Molnar2015-07-011-3/+5
|\ | | | | | | mnc-dev
| * stagefright: prevent allocating stale buffers for OMX decodersLajos Molnar2015-07-011-3/+5
| | | | | | | | | | | | | | | | | | Also fix some issues encountered once using generationNumbers: - properly account outstanding buffers in MediaSync - don't release arbitrary frame if attach fails Bug: 11990461 Change-Id: Icee5ea188ca4eb856138feb5e6ec5d4ee5e44008
* | stagefright: fix deadlock and NPE in GraphicBufferSourceLajos Molnar2015-07-011-9/+4
| | | | | | | | | | Bug: 22202388 Change-Id: I04f2f783ecc0e0c50adf16a666f6d7ab4221e285
* | stagefright: ask for flex-YUV camera buffers for software encodersLajos Molnar2015-06-261-1/+13
|/ | | | | Bug: 13222807 Change-Id: I854b73a63cf9239311729598241725d84e8513aa
* fix buffer leak due to unreleased last repeat frameChong Zhang2015-06-181-56/+48
| | | | | | bug: 21659689 bug: 21473584 Change-Id: I9e3dabd1be33352fdacd38797bc9fce91ecc7ee2
* fix graphic buffer leak with persistent input surfaceChong Zhang2015-06-081-2/+77
| | | | | | | | | | implement PersistentProxyListener that returns buffers during period when actual listener is not connected. also clear old buffer slot in GraphicBufferSource when re-attaching. bug: 21473584 Change-Id: I3bcf1a208e745397d6cc6ce9aef9e4f5aa604f3c
* stagefright: rename VideoGrallocMetadata.hHandle to pHandleLajos Molnar2015-06-021-2/+2
| | | | | | | | This is so that it can be equivalent to the previously named VideoDecoderOutputMetaData struct. Bug: 13222807 Change-Id: I38831e19a76f49cc7e8385c079817c538d18f0ff
* stagefright: add support for fences in OMXLajos Molnar2015-06-021-22/+28
| | | | | | | Pass Fence between Surface and ACodec, and between ACodec and IOMX. Bug: 12386081 Change-Id: Ifdc566979dec0d91ed8b07c3b69d2cf092accc73
* stagefright: rework metadata buffer supportLajos Molnar2015-06-011-52/+22
| | | | | | | | | | | | | | - Add fence to new metadata buffer mode structure, but don't use it yet, so that we don't have to add another mode soon. - Change GraphicBuffers to ANativeWindowBuffer in new metadata mode. This removes internal depencency from vendor codecs. - Extend new metadata mode from SW encoders to all codecs. - Fallback from new metadata mode to old mode (so Camera can always use the new mode even with legacy codecs) Related-bug: 19614055 Bug: 13222807 Change-Id: I405a21dd6ce8e99808f633bfeab8f14278eb7079
* MediaCodec: implement persistent input surface APIsChong Zhang2015-05-011-30/+75
| | | | | | | Bug: 19127604 Bug: 19489395 Change-Id: Idaf1cc9008016f66903e93907a676f54e342e1a3
* libstagefright: Stop using IGBC::BufferItemDan Stoza2015-03-121-7/+8
| | | | | | | | | | | Switches all uses of IGraphicBufferConsumer::BufferItem (and BufferQueue::BufferItem) to the BufferItem in libgui. Depends on frameworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9. This is a member of I187b3a7d05196b6289596afac8fb9a9d4aebff76, but since it was split out from the camera change in frameworks/av, they have to have different change IDs. Change-Id: I0ddd38df37500cfd6b21d1e768ed14e39c5cd9fc
* media: switch to new AMessage handlingLajos Molnar2015-03-051-3/+3
| | | | | Bug: 19607784 Change-Id: I94cddcb81f671422ad4982a23dc4acfe57a9f1aa
* stagefright: add support for limiting framerate in GraphicBufferSourceRonghua Wu2015-02-121-39/+67
| | | | | Bug: 19014096 Change-Id: I6de781e4d140a247dfd8fd8f12c3ddd7baa39ad4
* Add a BufferItem parameter to onFrameAvailableDan Stoza2014-11-041-1/+1
| | | | | | | | 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
* stagefright: support passing GraphicBuffer in metadata bufferLajos Molnar2014-10-131-13/+39
| | | | | Bug: 17935149 Change-Id: I6bb5dd654e498a7153410afc052c2c8f7f35e44d
* Encoder input buffers don't need HW_TEXTURE usageJesse Hall2014-07-141-2/+1
| | | | Change-Id: Ibb1be86ae99439ccbce3fc2b38d92115083ef7ff
* libstagefright: 64-bit compile warningsMark Salyzyn2014-06-261-13/+18
| | | | Change-Id: I3d1146714fa23be3d4e696599b6f70cac1f9d28b
* Merge "BufferQueue: Increase max slots from 32 to 64"Dan Stoza2014-04-211-3/+5
|\
| * BufferQueue: Increase max slots from 32 to 64Dan Stoza2014-04-111-3/+5
| | | | | | | | | | | | | | | | Increases NUM_BUFFER_SLOTS from 32 to 64 and changes the mask returned by IGBC::getReleasedBuffers from 32 to 64 bits. Bug: 13174352 Change-Id: I1c41256ffbc30abcf9f7b0b5fcf53da40462da28
* | am e80631aa: am 839d11d1: Merge changes I0a744dc7,Id993a70dMark Salyzyn2014-04-151-2/+4
|\ \ | |/ |/| | | | | | | * commit 'e80631aa1992ca50af679cd6a018c0ffda7f9b17': media: use size_t for integer iterator to Vector::size() media: 64 bit compile issues
| * am 839d11d1: Merge changes I0a744dc7,Id993a70dMark Salyzyn2014-04-151-2/+4
| |\ | | | | | | | | | | | | | | | * commit '839d11d1f7be9dff2f06c7d30a9eb39cb6782078': media: use size_t for integer iterator to Vector::size() media: 64 bit compile issues
| | * media: 64 bit compile issuesMark Salyzyn2014-04-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | - change internal sized types to use stdint.h - printf & scanf formats - size_t or unsigned int for iterators Change-Id: Id993a70d8bf54c667c5d652b34179a2c727ed446
| * | fix codec buffer leak in error handling when timestamp goes backwardChong Zhang2014-03-111-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | don't touch codec buffer if we decided to drop a frame with bad pts Bug: 11971963 Change-Id: I9b4c56210f64258f1be257b14184381a1133e0d6 (cherry picked from commit b63d2433350d56bda9f3477549086c90bb6d535e)
| * | Merge "Cap pts gap between adjacent frames to specified value" into klp-devChong Zhang2014-03-111-1/+99
| |\ \
| | * | Cap pts gap between adjacent frames to specified valueChong Zhang2014-03-111-1/+99
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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)
| * | save mGraphicBuffer pointer even when we're suspendedChong Zhang2014-03-111-0/+6
| |/ | | | | | | | | | | Bug: 12609966 Change-Id: Ifd41fd973876da69039113fcaeacdccf39472b37 (cherry picked from commit 49270665e7a20cd120724fc388da8b166ff0b4f1)
* | Remove deprecated BufferQueue constructorDan Stoza2014-03-121-18/+18
| | | | | | | | | | Bug: 13415624 Change-Id: I1a824d09ce582ee54753683d30cdc23813c13b6b
* | Add empty onSidebandChanged callbacks to BufferQueue::ConsumerListenersJesse Hall2014-03-071-0/+5
| | | | | | | | Change-Id: I94384aefd47b3a581cbdc3905ba9fdbc88d3d06c
* | Merge "support for time lapse/slow motion when using SURFACE source"Chong Zhang2014-02-221-3/+43
|\ \
| * | support for time lapse/slow motion when using SURFACE sourceChong Zhang2014-02-141-3/+43
| | | | | | | | | | | | | | | Bug: 13032650 Change-Id: Iecbadf9f29c8c49353416fc467fb3acdde279595
* | | Merge "fix codec buffer leak in error handling when timestamp goes backward"Chong Zhang2014-02-191-7/+7
|\ \ \ | |/ /
| * | fix codec buffer leak in error handling when timestamp goes backwardChong Zhang2014-02-141-7/+7
| | | | | | | | | | | | | | | | | | | | | don't touch codec buffer if we decided to drop a frame with bad pts Bug: 11971963 Change-Id: I9b4c56210f64258f1be257b14184381a1133e0d6
* | | warnings be gone.Andreas Huber2014-02-111-1/+1
|/ / | | | | | | Change-Id: Ie3bae3f037730e316d7fca12e7a3527973f752ef
* | Change StagefrightRecorder to use MediaCodecChong Zhang2014-02-051-1/+21
| | | | | | | | | | Bug: 12305192 Change-Id: I72d7cb571be5bd348b58ad650f3269d24c15d350
* | Cap pts gap between adjacent frames to specified valueChong Zhang2014-01-301-1/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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
* | save mGraphicBuffer pointer even when we're suspendedChong Zhang2014-01-281-0/+6
|/ | | | | Bug: 12609966 Change-Id: Ifd41fd973876da69039113fcaeacdccf39472b37
* Back to the old way of making sure that no more buffers are submittedAndreas Huber2013-11-081-2/+4
| | | | | | | to the component while in executing->idle state. Change-Id: Ia207f0a112025ed0e2c4d62f404afbbfa694cbab related-to-bug: 11557463, 11573543
* Merge "Properly handle executing->idle in GraphicBufferSource" into klp-devAndreas Huber2013-11-081-0/+12
|\
| * Properly handle executing->idle in GraphicBufferSourceAndreas Huber2013-11-071-0/+12
| | | | | | | | | | | | | | | | | | | | ACodec has initiated the transition from exectuing->idle and is waiting for the component to return all buffers so they can be freed. It's counter productive and with some vendors harmful to submit additional buffers to the component from this point on. Change-Id: I332be254a1faf94902c77b5792a373ab447e44d3 related-to-bug: 11573543
* | Replace assert with error messageAndy McFadden2013-11-071-1/+6
|/ | | | | | | | | | | | | The failure happens when vendor code sends EMPTY_BUFFER_DONE twice on the same buffer. The second time through, we see a slot that has already been emptied, and get very confused. This should be handled with an error, not an assertion, so we now log a stern complaint and carry on. Bug 11557463 Change-Id: I76e53ff08924bca81afb6980df8e59a6012ff8fe
* Check for NULL buffer in repeat-latestAndy McFadden2013-10-231-0/+17
| | | | | | | | | Repeating the most-recent buffer appears to fail when the producer disconnects. This adds a NULL check to avoid crashing. Bug 10607920 Change-Id: Ied036004425f046fcf9c26303823681f3fddb99e
* Optionally repeat the previously submitted frame to the encoderAndreas Huber2013-08-131-3/+164
| | | | | | | if no new frame has been delivered by surface flinger within the timeout interval. Change-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde
* fix fallout from binderizing BufferQueues consumer sideMathias Agopian2013-08-011-5/+2
| | | | Change-Id: I626bac6df4fc3d8478046193f06ecc7ea60dd3a8
* Don't abort on unusual state transitionAndy McFadden2013-07-231-3/+5
| | | | | | | | | The state transition check was too strict, and we were crashing mediaserver inappropriately. Bug 9819944 Change-Id: I1482ed1cfee37088d4893ee81cf1b2b950d2e930
* Merge "update to new Consumer APIs"Mathias Agopian2013-07-201-5/+4
|\
| * update to new Consumer APIsMathias Agopian2013-07-161-5/+4
| | | | | | | | Change-Id: I3c5d4be2a2e8783fbf98b3e268fd02658f71dc7d
* | Support "suspension" of a video encoder in "surface-input" mode.Andreas Huber2013-07-171-4/+44
|/ | | | | | i.e. feed no more input frames to the encoder while suspended. Change-Id: I51391e18c1517548e869f8ddece19f4af37e78f9
* Pass additional arg to acquireBuffer calls.Andy McFadden2013-07-081-2/+2
| | | | | | Bug 7900302 Change-Id: I30b9cca783e0a48f77035b745b7d5e20edf10f27
* stagefright: BufferProducer updatesLajos Molnar2013-05-231-27/+20
| | | | | | | | | | | | 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
* Merge "update to Fence::waitForever() API change" into jb-mr2-devMathias Agopian2013-05-171-2/+1
|\