diff options
author | bodamnam <bodamnam@google.com> | 2023-02-20 13:16:43 +0000 |
---|---|---|
committer | bodamnam <bodamnam@google.com> | 2023-02-22 07:59:06 +0000 |
commit | b4ee9755227e9d626932da13350f276206db3f28 (patch) | |
tree | c24f0945071ce3ccdf3a50327ae094969d2b6ff9 /service | |
parent | 042d9aac09e69904208833a6af8d31d977d611ef (diff) | |
download | ImsMedia-b4ee9755227e9d626932da13350f276206db3f28.tar.gz |
Fix to change the video bitrate in live
1) Change to use right key parameter to update bitrate in live
2) Add simulation code for testing bitrate change
3) Fix incorrect payload type for tmmbn
Bug: 270023503
Test: Verified with loopback mode using ImsMediaTestingApp, atest
ImsMediaNativeTests
Change-Id: I0a0e24871ca82fc90fb311009ce7544ce300420e
Diffstat (limited to 'service')
2 files changed, 20 insertions, 2 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/RtcpDecoderNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/RtcpDecoderNode.cpp index 7682bfc7..e4c3363d 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/RtcpDecoderNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/RtcpDecoderNode.cpp @@ -18,6 +18,10 @@ #include <ImsMediaTrace.h> #include <ImsMediaVideoUtil.h> +#ifdef DEBUG_BITRATE_CHANGE_SIMULATION +static int32_t gTestBitrate = 384000; +#endif + RtcpDecoderNode::RtcpDecoderNode(BaseSessionCallback* callback) : BaseNode(callback) { @@ -142,6 +146,13 @@ void RtcpDecoderNode::OnRtcpInd(tRtpSvc_IndicationFromStack type, void* data) { mCallback->SendEvent(kCollectPacketInfo, kStreamRtcp); } +#ifdef DEBUG_BITRATE_CHANGE_SIMULATION + else if (mMediaType == IMS_MEDIA_VIDEO) + { + gTestBitrate *= 0.8; + mCallback->SendEvent(kRequestVideoBitrateChange, gTestBitrate); + } +#endif } break; case RTPSVC_RECEIVE_RTCP_RR_IND: @@ -154,6 +165,13 @@ void RtcpDecoderNode::OnRtcpInd(tRtpSvc_IndicationFromStack type, void* data) { mCallback->SendEvent(kCollectPacketInfo, kStreamRtcp); } +#ifdef DEBUG_BITRATE_CHANGE_SIMULATION + else if (mMediaType == IMS_MEDIA_VIDEO) + { + gTestBitrate *= 0.8; + mCallback->SendEvent(kRequestVideoBitrateChange, gTestBitrate); + } +#endif } break; case RTPSVC_RECEIVE_RTCP_FB_IND: @@ -274,7 +292,7 @@ void RtcpDecoderNode::ReceiveTmmbr(const tRtpSvcIndSt_ReceiveRtcpFeedbackInd* pa ImsMediaVideoUtil::ConvertBitrateToPower(bitrate, exp, mantissa); InternalRequestEventParam* pParam = new InternalRequestEventParam( - kRtpFbTmmbr, TmmbrParams(receivedSsrc, exp, mantissa, receivedOverhead)); + kRtpFbTmmbn, TmmbrParams(receivedSsrc, exp, mantissa, receivedOverhead)); mCallback->SendEvent(kRequestVideoSendTmmbn, reinterpret_cast<uint64_t>(pParam)); } diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaVideoSource.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaVideoSource.cpp index c93d99a4..b8d69951 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaVideoSource.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaVideoSource.cpp @@ -453,7 +453,7 @@ void ImsMediaVideoSource::changeBitrate(const uint32_t bitrate) } AMediaFormat* params = AMediaFormat_new(); - AMediaFormat_setInt32(params, AMEDIAFORMAT_KEY_BIT_RATE, bitrate); + AMediaFormat_setInt32(params, AMEDIACODEC_KEY_VIDEO_BITRATE, bitrate); media_status_t status = AMediaCodec_setParameters(mCodec, params); if (status != AMEDIA_OK) |