blob: b97960d436c643e1fe31bbcf05d8078bcd95dece [file] [log] [blame]
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -08001/*
2 * Copyright 2015 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#import <Foundation/Foundation.h>
12
tkchin9eeb6242016-04-27 01:54:20 -070013#import <WebRTC/RTCMacros.h>
tkchin8b577ed2016-04-19 10:04:41 -070014
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080015NS_ASSUME_NONNULL_BEGIN
16
17@class RTCAudioTrack;
hjona2f77982016-03-04 07:09:09 -080018@class RTCPeerConnectionFactory;
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080019@class RTCVideoTrack;
20
tkchin8b577ed2016-04-19 10:04:41 -070021RTC_EXPORT
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080022@interface RTCMediaStream : NSObject
23
24/** The audio tracks in this stream. */
Jon Hjelle32e0c012016-03-08 16:04:46 -080025@property(nonatomic, strong, readonly) NSArray<RTCAudioTrack *> *audioTracks;
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080026
27/** The video tracks in this stream. */
Jon Hjelle32e0c012016-03-08 16:04:46 -080028@property(nonatomic, strong, readonly) NSArray<RTCVideoTrack *> *videoTracks;
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080029
30/** An identifier for this media stream. */
31@property(nonatomic, readonly) NSString *streamId;
32
33- (instancetype)init NS_UNAVAILABLE;
34
Jon Hjelle2bf9a5f2016-01-21 16:14:11 -080035/** Adds the given audio track to this media stream. */
36- (void)addAudioTrack:(RTCAudioTrack *)audioTrack;
37
38/** Adds the given video track to this media stream. */
39- (void)addVideoTrack:(RTCVideoTrack *)videoTrack;
40
41/** Removes the given audio track to this media stream. */
42- (void)removeAudioTrack:(RTCAudioTrack *)audioTrack;
43
44/** Removes the given video track to this media stream. */
45- (void)removeVideoTrack:(RTCVideoTrack *)videoTrack;
46
47@end
48
49NS_ASSUME_NONNULL_END