summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbodamnam <bodamnam@google.com>2023-02-20 13:16:43 +0000
committerbodamnam <bodamnam@google.com>2023-02-22 07:59:06 +0000
commitb4ee9755227e9d626932da13350f276206db3f28 (patch)
treec24f0945071ce3ccdf3a50327ae094969d2b6ff9
parent042d9aac09e69904208833a6af8d31d977d611ef (diff)
downloadImsMedia-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
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/RtcpDecoderNode.cpp20
-rw-r--r--service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaVideoSource.cpp2
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)