summaryrefslogtreecommitdiff
path: root/service
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 /service
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
Diffstat (limited to 'service')
-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)