summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/GraphicBufferSource.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|\
| * update to Fence::waitForever() API changeMathias Agopian2013-05-161-2/+1
| | | | | | | | | | Bug: 8988871 Change-Id: I24a2620d356f3bb6207ed834c79fd3e48b429695
* | Adjust timestamp scaleAndy McFadden2013-05-161-3/+3
|/ | | | | | | | | BufferQueue item timestamps are in nanoseconds, MediaCodec buffer timestamps are in microseconds. Adjust. Bug 8988357 Change-Id: Ib12824d7eea0316a14543c756e3a127c0866db6b
* GraphicBufferSource fixesAndy McFadden2013-03-121-53/+75
| | | | | | | | | | | | | | 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-10/+15
| | | | | | | | | | | | | | | | | 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/+441
Also, renamed a CHECK_INTERFACE macro that was clashing with the Binder version. Bug 7991062 Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0