Reland "Implement RtpParameters.transaction_id for PC RtpSenderInterface"
This is a reland of 5faf36ef3c582350fba5ef97a3549e440d81a283
The issue in Chrome has been fixed and this should be safe to reland.
TBR=deadbeef
Original change's description:
> Implement RtpParameters.transaction_id for PC RtpSenderInterface
>
> The transaction_id field should be refreshed for every getParameters()
> call and checked at each setParameters() call.
> This also checks that getParameters() was ever called to return a proper
> error code.
>
> Bug: webrtc:7580
> Change-Id: I6c6fe289542e486fc422cdc61577982b0529d4c1
> Reviewed-on: https://webrtc-review.googlesource.com/70820
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23120}
Bug: webrtc:7580
Change-Id: Iabd41fb21afdf452c039d5513824ae334f8d1d3f
Reviewed-on: https://webrtc-review.googlesource.com/76980
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23247}
diff --git a/sdk/android/api/org/webrtc/RtpParameters.java b/sdk/android/api/org/webrtc/RtpParameters.java
index 634f3b3..f2227ae 100644
--- a/sdk/android/api/org/webrtc/RtpParameters.java
+++ b/sdk/android/api/org/webrtc/RtpParameters.java
@@ -109,21 +109,24 @@
}
}
+ public final String transactionId;
+
public final List<Encoding> encodings;
// Codec parameters can't currently be changed between getParameters and
// setParameters. Though in the future it will be possible to reorder them or
// remove them.
public final List<Codec> codecs;
- public RtpParameters() {
- this.encodings = new ArrayList<>();
- this.codecs = new ArrayList<>();
+ @CalledByNative
+ RtpParameters(String transactionId, List<Encoding> encodings, List<Codec> codecs) {
+ this.transactionId = transactionId;
+ this.encodings = encodings;
+ this.codecs = codecs;
}
@CalledByNative
- RtpParameters(List<Encoding> encodings, List<Codec> codecs) {
- this.encodings = encodings;
- this.codecs = codecs;
+ String getTransactionId() {
+ return transactionId;
}
@CalledByNative
diff --git a/sdk/android/src/jni/pc/rtpparameters.cc b/sdk/android/src/jni/pc/rtpparameters.cc
index 6a312b4..a990934 100644
--- a/sdk/android/src/jni/pc/rtpparameters.cc
+++ b/sdk/android/src/jni/pc/rtpparameters.cc
@@ -59,6 +59,10 @@
const JavaRef<jobject>& j_parameters) {
RtpParameters parameters;
+ ScopedJavaLocalRef<jstring> j_transaction_id =
+ Java_RtpParameters_getTransactionId(jni, j_parameters);
+ parameters.transaction_id = JavaToNativeString(jni, j_transaction_id);
+
// Convert encodings.
ScopedJavaLocalRef<jobject> j_encodings =
Java_RtpParameters_getEncodings(jni, j_parameters);
@@ -90,7 +94,7 @@
JNIEnv* env,
const RtpParameters& parameters) {
return Java_RtpParameters_Constructor(
- env,
+ env, NativeToJavaString(env, parameters.transaction_id),
NativeToJavaList(env, parameters.encodings,
&NativeToJavaRtpEncodingParameter),
NativeToJavaList(env, parameters.codecs, &NativeToJavaRtpCodecParameter));