From 89b31a3f670d8bec87bed50aaad9bcd8edec66b6 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 5 Nov 2013 12:36:17 -0800 Subject: configure bitrate and bitrate mode at encoder initialization for VP8/9 Change-Id: I0389264db4102cabb0c6fcb4ca223d85cc9e86fb related-to-bug: 11536167 --- include/media/stagefright/ACodec.h | 1 + media/libstagefright/ACodec.cpp | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h index a8ffd4a..e796ab3 100644 --- a/include/media/stagefright/ACodec.h +++ b/include/media/stagefright/ACodec.h @@ -264,6 +264,7 @@ private: status_t setupMPEG4EncoderParameters(const sp &msg); status_t setupH263EncoderParameters(const sp &msg); status_t setupAVCEncoderParameters(const sp &msg); + status_t setupVPXEncoderParameters(const sp &msg); status_t verifySupportForProfileAndLevel(int32_t profile, int32_t level); diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 1adab38..f5c7a97 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -1909,6 +1909,11 @@ status_t ACodec::setupVideoEncoder(const char *mime, const sp &msg) { err = setupAVCEncoderParameters(msg); break; + case OMX_VIDEO_CodingVP8: + case OMX_VIDEO_CodingVP9: + err = setupVPXEncoderParameters(msg); + break; + default: break; } @@ -2240,6 +2245,17 @@ status_t ACodec::setupAVCEncoderParameters(const sp &msg) { return configureBitrate(bitrate, bitrateMode); } +status_t ACodec::setupVPXEncoderParameters(const sp &msg) { + int32_t bitrate; + if (!msg->findInt32("bitrate", &bitrate)) { + return INVALID_OPERATION; + } + + OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); + + return configureBitrate(bitrate, bitrateMode); +} + status_t ACodec::verifySupportForProfileAndLevel( int32_t profile, int32_t level) { OMX_VIDEO_PARAM_PROFILELEVELTYPE params; -- cgit v1.1