| /* | |
| * Copyright 2023 The WebRTC project authors. All Rights Reserved. | |
| * | |
| * Use of this source code is governed by a BSD-style license | |
| * that can be found in the LICENSE file in the root of the source | |
| * tree. An additional intellectual property rights grant can be found | |
| * in the file PATENTS. All contributing project authors may | |
| * be found in the AUTHORS file in the root of the source tree. | |
| */ | |
| package org.webrtc; | |
| import androidx.annotation.Nullable; | |
| import java.util.List; | |
| import java.util.Map; | |
| import org.webrtc.MediaStreamTrack; | |
| public class RtpCapabilities { | |
| public static class CodecCapability { | |
| public int preferredPayloadType; | |
| // Name used to identify the codec. Equivalent to MIME subtype. | |
| public String name; | |
| // The media type of this codec. Equivalent to MIME top-level type. | |
| public MediaStreamTrack.MediaType kind; | |
| // Clock rate in Hertz. | |
| public Integer clockRate; | |
| // The number of audio channels used. Set to null for video codecs. | |
| public Integer numChannels; | |
| // The "format specific parameters" field from the "a=fmtp" line in the SDP | |
| public Map<String, String> parameters; | |
| // The MIME type of the codec. This is a convenience field. | |
| public String mimeType; | |
| public CodecCapability() {} | |
| @CalledByNative("CodecCapability") | |
| CodecCapability(int preferredPayloadType, String name, MediaStreamTrack.MediaType kind, | |
| Integer clockRate, Integer numChannels, String mimeType, Map<String, String> parameters) { | |
| this.preferredPayloadType = preferredPayloadType; | |
| this.name = name; | |
| this.kind = kind; | |
| this.clockRate = clockRate; | |
| this.numChannels = numChannels; | |
| this.parameters = parameters; | |
| this.mimeType = mimeType; | |
| } | |
| @CalledByNative("CodecCapability") | |
| int getPreferredPayloadType() { | |
| return preferredPayloadType; | |
| } | |
| @CalledByNative("CodecCapability") | |
| String getName() { | |
| return name; | |
| } | |
| @CalledByNative("CodecCapability") | |
| MediaStreamTrack.MediaType getKind() { | |
| return kind; | |
| } | |
| @CalledByNative("CodecCapability") | |
| Integer getClockRate() { | |
| return clockRate; | |
| } | |
| @CalledByNative("CodecCapability") | |
| Integer getNumChannels() { | |
| return numChannels; | |
| } | |
| @CalledByNative("CodecCapability") | |
| Map getParameters() { | |
| return parameters; | |
| } | |
| } | |
| public static class HeaderExtensionCapability { | |
| private final String uri; | |
| private final int preferredId; | |
| private final boolean preferredEncrypted; | |
| @CalledByNative("HeaderExtensionCapability") | |
| HeaderExtensionCapability(String uri, int preferredId, boolean preferredEncrypted) { | |
| this.uri = uri; | |
| this.preferredId = preferredId; | |
| this.preferredEncrypted = preferredEncrypted; | |
| } | |
| @CalledByNative("HeaderExtensionCapability") | |
| public String getUri() { | |
| return uri; | |
| } | |
| @CalledByNative("HeaderExtensionCapability") | |
| public int getPreferredId() { | |
| return preferredId; | |
| } | |
| @CalledByNative("HeaderExtensionCapability") | |
| public boolean getPreferredEncrypted() { | |
| return preferredEncrypted; | |
| } | |
| } | |
| public List<CodecCapability> codecs; | |
| public List<HeaderExtensionCapability> headerExtensions; | |
| @CalledByNative | |
| RtpCapabilities(List<CodecCapability> codecs, List<HeaderExtensionCapability> headerExtensions) { | |
| this.headerExtensions = headerExtensions; | |
| this.codecs = codecs; | |
| } | |
| @CalledByNative | |
| public List<HeaderExtensionCapability> getHeaderExtensions() { | |
| return headerExtensions; | |
| } | |
| @CalledByNative | |
| List<CodecCapability> getCodecs() { | |
| return codecs; | |
| } | |
| } |