summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/GraphicBufferSource.h
Commit message (Collapse)AuthorAgeFilesLines
* stagefright: fix deadlock and NPE in GraphicBufferSourceLajos Molnar2015-07-011-0/+1
| | | | | Bug: 22202388 Change-Id: I04f2f783ecc0e0c50adf16a666f6d7ab4221e285
* fix buffer leak due to unreleased last repeat frameChong Zhang2015-06-181-0/+8
| | | | | | bug: 21659689 bug: 21473584 Change-Id: I9e3dabd1be33352fdacd38797bc9fce91ecc7ee2
* fix graphic buffer leak with persistent input surfaceChong Zhang2015-06-081-0/+25
| | | | | | | | | | 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: add support for fences in OMXLajos Molnar2015-06-021-1/+2
| | | | | | | Pass Fence between Surface and ACodec, and between ACodec and IOMX. Bug: 12386081 Change-Id: Ifdc566979dec0d91ed8b07c3b69d2cf092accc73
* stagefright: rework metadata buffer supportLajos Molnar2015-06-011-2/+1
| | | | | | | | | | | | | | - 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-3/+10
| | | | | | | Bug: 19127604 Bug: 19489395 Change-Id: Idaf1cc9008016f66903e93907a676f54e342e1a3
* stagefright: warnings be gone, some are now errors, use clangLajos Molnar2015-04-171-2/+2
| | | | Change-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c
* libstagefright: Stop using IGBC::BufferItemDan Stoza2015-03-121-3/+3
| | | | | | | | | | | 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
* stagefright: add support for limiting framerate in GraphicBufferSourceRonghua Wu2015-02-121-6/+13
| | | | | 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-1/+4
| | | | | Bug: 17935149 Change-Id: I6bb5dd654e498a7153410afc052c2c8f7f35e44d
* Remove deprecated BufferQueue constructorDan Stoza2014-03-121-3/+6
| | | | | Bug: 13415624 Change-Id: I1a824d09ce582ee54753683d30cdc23813c13b6b
* Add empty onSidebandChanged callbacks to BufferQueue::ConsumerListenersJesse Hall2014-03-071-0/+5
| | | | Change-Id: I94384aefd47b3a581cbdc3905ba9fdbc88d3d06c
* support for time lapse/slow motion when using SURFACE sourceChong Zhang2014-02-141-0/+13
| | | | | Bug: 13032650 Change-Id: Iecbadf9f29c8c49353416fc467fb3acdde279595
* Change StagefrightRecorder to use MediaCodecChong Zhang2014-02-051-2/+7
| | | | | Bug: 12305192 Change-Id: I72d7cb571be5bd348b58ad650f3269d24c15d350
* Cap pts gap between adjacent frames to specified valueChong Zhang2014-01-301-1/+24
| | | | | | | | | | | | | | | - 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
* Properly handle executing->idle in GraphicBufferSourceAndreas Huber2013-11-071-0/+5
| | | | | | | | | | 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
* Optionally repeat the previously submitted frame to the encoderAndreas Huber2013-08-131-0/+38
| | | | | | | if no new frame has been delivered by surface flinger within the timeout interval. Change-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde
* Support "suspension" of a video encoder in "surface-input" mode.Andreas Huber2013-07-171-0/+6
| | | | | | i.e. feed no more input frames to the encoder while suspended. Change-Id: I51391e18c1517548e869f8ddece19f4af37e78f9
* stagefright: BufferProducer updatesLajos Molnar2013-05-231-2/+8
| | | | | | | | | | | | 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
* Adjust timestamp scaleAndy McFadden2013-05-161-1/+1
| | | | | | | | | BufferQueue item timestamps are in nanoseconds, MediaCodec buffer timestamps are in microseconds. Adjust. Bug 8988357 Change-Id: Ib12824d7eea0316a14543c756e3a127c0866db6b
* GraphicBufferSource fixesAndy McFadden2013-03-121-2/+4
| | | | | | | | | | | | | | Various fixes: - Set the maximum number of BQ buffers we're allowed to acquire equal to the actual number of codec buffers. That way we keep the codec as full as possible, and never try to acquire more than we're allowed from the BufferQueue. - Actually use "end of stream sent" flag. - Name the BufferQueue (for debug messages). Bug 8359403 Change-Id: I3b8c1f679bbebf6a89e623e13ca029eda7f657ba
* Correct MediaCodec + Surface behaviorAndy McFadden2013-03-051-5/+4
| | | | | | | | | | | | | | | | | 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
* Implement Surface input to MediaCodec.Andy McFadden2013-03-041-0/+176
Also, renamed a CHECK_INTERFACE macro that was clashing with the Binder version. Bug 7991062 Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0