summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-09-24 13:57:35 -0700
committerLajos Molnar <lajos@google.com>2014-12-10 18:04:14 -0800
commita0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5 (patch)
tree913e39ed6eff31c956135701290e1a5af21fd0f8 /media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp
parent94a92c69af528edf6ec17d7978a0c3bb6ab51e63 (diff)
downloadframeworks_av-a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5.zip
frameworks_av-a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5.tar.gz
frameworks_av-a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5.tar.bz2
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
Diffstat (limited to 'media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp')
-rw-r--r--media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp b/media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp
index 168208f..6b8b395 100644
--- a/media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp
+++ b/media/libstagefright/codecs/on2/h264dec/SoftAVC.cpp
@@ -64,9 +64,11 @@ SoftAVC::SoftAVC(
mHeadersDecoded(false),
mEOSStatus(INPUT_DATA_AVAILABLE),
mSignalledError(false) {
+ const size_t kMinCompressionRatio = 2;
+ const size_t kMaxOutputBufferSize = 2048 * 2048 * 3 / 2;
initPorts(
- kNumInputBuffers, 8192 /* inputBufferSize */,
- kNumOutputBuffers, MEDIA_MIMETYPE_VIDEO_AVC);
+ kNumInputBuffers, kMaxOutputBufferSize / kMinCompressionRatio /* minInputBufferSize */,
+ kNumOutputBuffers, MEDIA_MIMETYPE_VIDEO_AVC, kMinCompressionRatio);
CHECK_EQ(initDecoder(), (status_t)OK);
}