Intel® Collaboration Suite for WebRTC  version 4.3.1
Open WebRTC Toolkit (OWT) Client SDK for iOS*
OWTMediaFormat.h
1 // Copyright (C) <2018> Intel Corporation
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 #import <AVFoundation/AVFoundation.h>
5 #import <CoreGraphics/CoreGraphics.h>
6 #import <Foundation/Foundation.h>
7 #import <WebRTC/RTCMacros.h>
8 NS_ASSUME_NONNULL_BEGIN
9 typedef NS_ENUM(NSInteger, OWTAudioCodec) {
10  OWTAudioCodecPcmu = 1,
11  OWTAudioCodecPcma = 2,
12  OWTAudioCodecOpus = 3,
13  OWTAudioCodecG722 = 4,
14  OWTAudioCodecIsac = 5,
15  OWTAudioCodecIlbc = 6,
16  OWTAudioCodecAac = 7,
17  OWTAudioCodecAc3 = 8,
18  OWTAudioCodecAsao = 9,
19  OWTAudioCodecUnknown = 10,
20 };
21 typedef NS_ENUM(NSInteger, OWTVideoCodec) {
22  OWTVideoCodecVP8 = 1,
23  OWTVideoCodecVP9 = 2,
24  OWTVideoCodecH264 = 3,
25  OWTVideoCodecH265 = 4,
26  OWTVideoCodecUnknown = 5,
27 };
28 typedef NS_ENUM(NSInteger, OWTAudioSourceInfo) {
29  OWTAudioSourceInfoMic = 1,
30  OWTAudioSourceInfoScreenCast = 2,
31  OWTAudioSourceInfoFile = 3,
32  OWTAudioSourceInfoMixed = 4,
33  OWTAudioSourceInfoUnknown = 5,
34 };
35 typedef NS_ENUM(NSInteger, OWTVideoSourceInfo) {
36  OWTVideoSourceInfoCamera = 1,
37  OWTVideoSourceInfoScreenCast = 2,
38  OWTVideoSourceInfoFile = 3,
39  OWTVideoSourceInfoMixed = 4,
40  OWTVideoSourceInfoUnknown = 5,
41 };
42 typedef NS_OPTIONS(NSInteger, OWTTrackKind) {
43  OWTTrackKindUnknown = 0,
44  OWTTrackKindAudio = 1 << 0,
45  OWTTrackKindVideo = 1 << 1,
46 };
48 RTC_OBJC_EXPORT
49 @interface OWTAudioCodecParameters : NSObject
54 @property(nonatomic, assign) OWTAudioCodec name;
56 @property(nonatomic, assign) NSUInteger channelCount;
58 @property(nonatomic, assign) NSUInteger clockRate;
59 @end
61 RTC_OBJC_EXPORT
62 @interface OWTVideoCodecParameters : NSObject
67 @property(nonatomic, assign) OWTVideoCodec name;
72 @property(nonatomic, strong) NSString* profile;
73 @end
75 RTC_OBJC_EXPORT
76 @interface OWTAudioPublicationSettings : NSObject
77 @property(nonatomic, strong) OWTAudioCodecParameters* codec;
78 @end
80 RTC_OBJC_EXPORT
81 @interface OWTVideoPublicationSettings : NSObject
82 @property(nonatomic, strong) OWTVideoCodecParameters* codec;
83 @property(nonatomic, assign) CGSize resolution;
84 @property(nonatomic, assign) CGFloat frameRate;
85 @property(nonatomic, assign) NSUInteger bitrate;
86 @property(nonatomic, assign) NSUInteger keyframeInterval;
87 @property(nonatomic, strong) NSString* rid;
88 @end
90 RTC_OBJC_EXPORT
91 @interface OWTPublicationSettings : NSObject
92 @property(nonatomic, strong) NSArray<OWTAudioPublicationSettings*>* audio;
93 @property(nonatomic, strong) NSArray<OWTVideoPublicationSettings*>* video;
94 @end
96 RTC_OBJC_EXPORT
97 @interface OWTAudioSubscriptionCapabilities : NSObject
98 @property(nonatomic, strong) NSArray<OWTAudioCodecParameters*>* codecs;
99 @end
101 RTC_OBJC_EXPORT
102 @interface OWTVideoSubscriptionCapabilities : NSObject
103 @property(nonatomic, strong) NSArray<OWTVideoCodecParameters*>* codecs;
104 @property(nonatomic, strong) NSArray<NSValue*>* resolutions;
105 @property(nonatomic, strong) NSArray<NSNumber*>* frameRates;
106 @property(nonatomic, strong) NSArray<NSNumber*>* bitrateMultipliers;
107 @property(nonatomic, strong) NSArray<NSNumber*>* keyframeIntervals;
108 @end
110 RTC_OBJC_EXPORT
111 @interface OWTSubscriptionCapabilities : NSObject
112 @property(nonatomic, strong) OWTAudioSubscriptionCapabilities* audio;
113 @property(nonatomic, strong) OWTVideoSubscriptionCapabilities* video;
114 @end
116 RTC_OBJC_EXPORT
117 @interface OWTStreamSourceInfo : NSObject
118 @property(nonatomic, assign) OWTAudioSourceInfo audio;
119 @property(nonatomic, assign) OWTVideoSourceInfo video;
120 @end
121 RTC_OBJC_EXPORT
123 @interface OWTVideoTrackConstraints : NSObject
124 @property(nonatomic, assign) double frameRate;
125 @property(nonatomic, assign) CGSize resolution;
126 @property(nonatomic, assign) AVCaptureDevicePosition devicePosition;
127 @end
129 RTC_OBJC_EXPORT
130 @interface OWTStreamConstraints : NSObject
136 @property(nonatomic, assign) BOOL audio;
138 @property(nonatomic, strong, nullable) OWTVideoTrackConstraints* video;
139 @end
140 RTC_OBJC_EXPORT
142 @interface OWTAudioEncodingParameters : NSObject
143 @property(nonatomic, strong) OWTAudioCodecParameters* codec;
145 @property(nonatomic, assign) NSUInteger maxBitrate;
146 @end
147 RTC_OBJC_EXPORT
149 @interface OWTVideoEncodingParameters : NSObject
150 @property(nonatomic, strong) OWTVideoCodecParameters* codec;
152 @property(nonatomic, assign) NSUInteger maxBitrate;
153 @end
154 NS_ASSUME_NONNULL_END
The settings of a publication.
Definition: OWTMediaFormat.h:91
OWTAudioCodec name
Name of a codec.
Definition: OWTMediaFormat.h:54
NSUInteger channelCount
Numbers of channels for an audio track.
Definition: OWTMediaFormat.h:56
NSUInteger clockRate
The codec clock rate expressed in Hertz.
Definition: OWTMediaFormat.h:58
Encoding parameters for sending an audio track.
Definition: OWTMediaFormat.h:142
Codec parameters for an audio track.
Definition: OWTMediaFormat.h:49
Codec parameters for a video track.
Definition: OWTMediaFormat.h:62
Represents the capability for subscription.
Definition: OWTMediaFormat.h:111
Encoding parameters for sending a video track.
Definition: OWTMediaFormat.h:149
The audio settings of a publication.
Definition: OWTMediaFormat.h:76
Constraints for creating a video MediaStreamTrack.
Definition: OWTMediaFormat.h:123
Information of a stream&#39;s source.
Definition: OWTMediaFormat.h:117
The video settings of a publication.
Definition: OWTMediaFormat.h:81
Represents the audio capability for subscription.
Definition: OWTMediaFormat.h:97
Represents the video capability for subscription.
Definition: OWTMediaFormat.h:102
Constraints for creating a MediaStream from screen mic and camera.
Definition: OWTMediaFormat.h:130