summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/on2/enc/SoftVPXEncoder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SoftVPXEncoder: don't skip the last input buffer with eos flag.Ronghua Wu2015-05-041-1/+5
| | | | | Bug: 20507129 Change-Id: I4016727cbae54e2d29c3c6ab5cd8c47826070bf4
* stagefright: misc fixes to software video encoders (and decoders)Lajos Molnar2014-12-101-305/+22
| | | | | | | | | | | | | | | | | | | - 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
* libstagefright: set actual stride info for SW encoder input portLajos Molnar2014-10-251-0/+4
| | | | | | | | | This fixes encoding flexible YUV content using SW encoders. Also skip setting input color format if it is flexible YUV, as it has already been translated to a color format supported by the codec. Bug: 18124320 Change-Id: I423782936986f4d6cf65ea9ef89ae77a92e30140
* stagefright: fix surface input handling of software encodersLajos Molnar2014-10-131-129/+18
| | | | | | | | | - added SoftVideoEncoder for common color conversion and extension handling logic - fix YUV420 SemiPlanar handling that should be NV12 not NV21 Bug: 17935149 Change-Id: I9b8d05678b1862dd37bf349ea83d67bdf1bb5560
* libstagefright: 64-bit compile warningsMark Salyzyn2014-06-261-1/+1
| | | | Change-Id: I3d1146714fa23be3d4e696599b6f70cac1f9d28b
* Support VP8 encoder key frame interval and number ofAlex Glaznev2014-04-241-12/+246
| | | | | | | | | | | | | | | | | | temporal layers configuration. - Change ACodec.cpp to populate VP8 extra parameters structure with key frame interval, number of temporal layers and quantization parameters. - Change software VP8 encoder to select frame temporal patterns and temporal layers bitrate distribution based on the number of layers similar to patterns used in WebRTC. - Calculate video frame duration in VP8 encoder from the timestamps. Bug: 11969958 Change-Id: Ia96054d886cd09d8c108dfe250fc5f4478eaa042
* A few fixes in SW VP8 encoder:Alex Glaznev2014-03-191-13/+74
| | | | | | | | | | | | | | - Increase encoder output buffer size to 1 Mb to avoid buffer overrun when encoding high complexity HD frames. - Store output port format parameters. - Use same VP8 encoder settings as in WebRTC when encoder is configured to run in CBR mode. Bug: b/12924516 Bug: b/12908952 Change-Id: Ida884efd0cd1a7272998f5835abd290bfb19b2ac
* SoftVPXEncoder: Set the frame size on the output port as wellMartin Storsjo2013-11-251-0/+3
| | | | | | | This makes sure the MediaCodec output MediaFormat contains the right width and height. Change-Id: Ic97af3b5850ebaf563533c3d1cae992be3e4d074
* Change VP8 encoder bitrateJohann2013-09-271-0/+32
| | | | | | | Allow the bitrate to be updated while the encoder is running. Bug: 8422347 Change-Id: I8427fe20921b00f92b8f99fe21691709fab354b0
* Indicate sync frames returned by encoderJohann2013-09-261-0/+2
| | | | | | | | | Set the appropriate OMX flag when the encoder generates a keyframe. This is necessary for any muxer which needs to indicate which frames are seekable. Bug: 8422347 Change-Id: I744a0b3023db24d3de2210bce82f41e50d259505
* Enable support for explicitly requesting an encoded keyframe from the vp8Andreas Huber2013-07-191-2/+31
| | | | | | encoder. Change-Id: I370d5831f7d6037faf361a92521390f19f179cbe
* Experimental support for enabling the use of "surface input" modeAndreas Huber2013-07-171-17/+142
| | | | | | | | | even with the software VP8 encoder. This relies heavily on the fact that the "Nexus" devices use ARGB32 as the colorspace for the data underlying a surface provided by SurfaceFlinger (mirroring). Generally there are no such guarantees. Change-Id: I1de32f591a3bb935ca76151816b3a02665bec40b
* Adds VP9 decoding support for stagefright.hkuang2013-06-241-5/+5
| | | | | | | | | | | | | 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.
* Fix a number of warnings in stagefright code.Andreas Huber2013-04-041-1/+2
| | | | Change-Id: If3edd00d991851797aeccdfe795a4a405e3a2ea3
* Adds VPX encoding support for stagefright.Kunter Gultekin2013-02-121-0/+685
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only following encoder settings are available - target bitrate - rate control (constant / variable) - frame rate - token partitioning - error resilience - reconstruction & loop filters Only following color formats are recognized - YUV420Planar - YUV420SemiPlanar - AndroidOpaque Following settings are not configurable by the client - encoding deadline is realtime - the algorithm interface for encoder is vp8 - fractional bits of frame rate is discarded - timebase is fixed to 1/1000000 Requires libvpx to be built with encoder support enabled. Requires openmax 1.1.2 extension headers. Relevant tests exist in cts repo. Change-Id: I650f1aca83e7dc93f79d7e6cba7ac24f26e66d40 Signed-off-by: Kunter Gultekin <kuntergultekin@google.com>
* Revert "Adds VPX encoding support for stagefright."James Dong2013-02-081-685/+0
| | | | | | | This lib was not part of the build, but it is built anyway for userdebug image (not for eng though). let me revert it for now... This reverts commit 6c6bb9873f55853fe74d8f45ad3ae116636d8be7.
* Adds VPX encoding support for stagefright.Kunter Gultekin2013-02-071-0/+685
Only following encoder settings are available - target bitrate - rate control (constant / variable) - frame rate - token partitioning - error resilience - reconstruction & loop filters Only following color formats are recognized - YUV420Planar - YUV420SemiPlanar - AndroidOpaque Following settings are not configurable by the client - encoding deadline is realtime - the algorithm interface for encoder is vp8 - fractional bits of frame rate is discarded - timebase is fixed to 1/1000000 Requires libvpx to be built with encoder support enabled. Requires openmax 1.1.2 extension headers. Relevant tests exist in cts repo. Change-Id: If759edb8db36acbd24dcb53d159a54e942766020 Signed-off-by: Kunter Gultekin <kuntergultekin@google.com>