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}
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