Loading include/media/stagefright/ACodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -242,7 +242,10 @@ private: status_t setupAVCEncoderParameters(const sp<AMessage> &msg); status_t verifySupportForProfileAndLevel(int32_t profile, int32_t level); status_t configureBitrate(int32_t bitrate); status_t configureBitrate( int32_t bitrate, OMX_VIDEO_CONTROLRATETYPE bitrateMode); status_t setupErrorCorrectionParameters(); status_t initNativeWindow(); Loading media/libstagefright/ACodec.cpp +21 −5 Original line number Diff line number Diff line Loading @@ -1636,6 +1636,15 @@ static OMX_U32 setPFramesSpacing(int32_t iFramesInterval, int32_t frameRate) { return ret; } static OMX_VIDEO_CONTROLRATETYPE getBitrateMode(const sp<AMessage> &msg) { int32_t tmp; if (!msg->findInt32("bitrate-mode", &tmp)) { return OMX_Video_ControlRateVariable; } return static_cast<OMX_VIDEO_CONTROLRATETYPE>(tmp); } status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { int32_t bitrate, iFrameInterval; if (!msg->findInt32("bitrate", &bitrate) Loading @@ -1643,6 +1652,8 @@ status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1706,7 +1717,7 @@ status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { return err; } err = configureBitrate(bitrate); err = configureBitrate(bitrate, bitrateMode); if (err != OK) { return err; Loading @@ -1722,6 +1733,8 @@ status_t ACodec::setupH263EncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1780,7 +1793,7 @@ status_t ACodec::setupH263EncoderParameters(const sp<AMessage> &msg) { return err; } err = configureBitrate(bitrate); err = configureBitrate(bitrate, bitrateMode); if (err != OK) { return err; Loading @@ -1796,6 +1809,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1881,7 +1896,7 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) { return err; } return configureBitrate(bitrate); return configureBitrate(bitrate, bitrateMode); } status_t ACodec::verifySupportForProfileAndLevel( Loading Loading @@ -1910,7 +1925,8 @@ status_t ACodec::verifySupportForProfileAndLevel( } } status_t ACodec::configureBitrate(int32_t bitrate) { status_t ACodec::configureBitrate( int32_t bitrate, OMX_VIDEO_CONTROLRATETYPE bitrateMode) { OMX_VIDEO_PARAM_BITRATETYPE bitrateType; InitOMXParams(&bitrateType); bitrateType.nPortIndex = kPortIndexOutput; Loading @@ -1923,7 +1939,7 @@ status_t ACodec::configureBitrate(int32_t bitrate) { return err; } bitrateType.eControlRate = OMX_Video_ControlRateVariable; bitrateType.eControlRate = bitrateMode; bitrateType.nTargetBitrate = bitrate; return mOMX->setParameter( Loading media/libstagefright/wifi-display/source/Converter.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaErrors.h> #include <OMX_Video.h> namespace android { Converter::Converter( Loading Loading @@ -152,6 +154,7 @@ status_t Converter::initEncoder() { mOutputFormat->setInt32("bitrate", audioBitrate); } else { mOutputFormat->setInt32("bitrate", videoBitrate); mOutputFormat->setInt32("bitrate-mode", OMX_Video_ControlRateConstant); mOutputFormat->setInt32("frame-rate", 30); mOutputFormat->setInt32("i-frame-interval", 1); // Iframes every 1 secs mOutputFormat->setInt32("prepend-sps-pps-to-idr-frames", 1); Loading Loading
include/media/stagefright/ACodec.h +4 −1 Original line number Diff line number Diff line Loading @@ -242,7 +242,10 @@ private: status_t setupAVCEncoderParameters(const sp<AMessage> &msg); status_t verifySupportForProfileAndLevel(int32_t profile, int32_t level); status_t configureBitrate(int32_t bitrate); status_t configureBitrate( int32_t bitrate, OMX_VIDEO_CONTROLRATETYPE bitrateMode); status_t setupErrorCorrectionParameters(); status_t initNativeWindow(); Loading
media/libstagefright/ACodec.cpp +21 −5 Original line number Diff line number Diff line Loading @@ -1636,6 +1636,15 @@ static OMX_U32 setPFramesSpacing(int32_t iFramesInterval, int32_t frameRate) { return ret; } static OMX_VIDEO_CONTROLRATETYPE getBitrateMode(const sp<AMessage> &msg) { int32_t tmp; if (!msg->findInt32("bitrate-mode", &tmp)) { return OMX_Video_ControlRateVariable; } return static_cast<OMX_VIDEO_CONTROLRATETYPE>(tmp); } status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { int32_t bitrate, iFrameInterval; if (!msg->findInt32("bitrate", &bitrate) Loading @@ -1643,6 +1652,8 @@ status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1706,7 +1717,7 @@ status_t ACodec::setupMPEG4EncoderParameters(const sp<AMessage> &msg) { return err; } err = configureBitrate(bitrate); err = configureBitrate(bitrate, bitrateMode); if (err != OK) { return err; Loading @@ -1722,6 +1733,8 @@ status_t ACodec::setupH263EncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1780,7 +1793,7 @@ status_t ACodec::setupH263EncoderParameters(const sp<AMessage> &msg) { return err; } err = configureBitrate(bitrate); err = configureBitrate(bitrate, bitrateMode); if (err != OK) { return err; Loading @@ -1796,6 +1809,8 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) { return INVALID_OPERATION; } OMX_VIDEO_CONTROLRATETYPE bitrateMode = getBitrateMode(msg); float frameRate; if (!msg->findFloat("frame-rate", &frameRate)) { int32_t tmp; Loading Loading @@ -1881,7 +1896,7 @@ status_t ACodec::setupAVCEncoderParameters(const sp<AMessage> &msg) { return err; } return configureBitrate(bitrate); return configureBitrate(bitrate, bitrateMode); } status_t ACodec::verifySupportForProfileAndLevel( Loading Loading @@ -1910,7 +1925,8 @@ status_t ACodec::verifySupportForProfileAndLevel( } } status_t ACodec::configureBitrate(int32_t bitrate) { status_t ACodec::configureBitrate( int32_t bitrate, OMX_VIDEO_CONTROLRATETYPE bitrateMode) { OMX_VIDEO_PARAM_BITRATETYPE bitrateType; InitOMXParams(&bitrateType); bitrateType.nPortIndex = kPortIndexOutput; Loading @@ -1923,7 +1939,7 @@ status_t ACodec::configureBitrate(int32_t bitrate) { return err; } bitrateType.eControlRate = OMX_Video_ControlRateVariable; bitrateType.eControlRate = bitrateMode; bitrateType.nTargetBitrate = bitrate; return mOMX->setParameter( Loading
media/libstagefright/wifi-display/source/Converter.cpp +3 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaErrors.h> #include <OMX_Video.h> namespace android { Converter::Converter( Loading Loading @@ -152,6 +154,7 @@ status_t Converter::initEncoder() { mOutputFormat->setInt32("bitrate", audioBitrate); } else { mOutputFormat->setInt32("bitrate", videoBitrate); mOutputFormat->setInt32("bitrate-mode", OMX_Video_ControlRateConstant); mOutputFormat->setInt32("frame-rate", 30); mOutputFormat->setInt32("i-frame-interval", 1); // Iframes every 1 secs mOutputFormat->setInt32("prepend-sps-pps-to-idr-frames", 1); Loading