├── LICENSE ├── include ├── RTCAudioSource.h ├── RTCAudioTrack.h ├── RTCI420Frame.h ├── RTCICECandidate.h ├── RTCICEServer.h ├── RTCMediaConstraints.h ├── RTCMediaSource.h ├── RTCMediaStream.h ├── RTCMediaStreamTrack.h ├── RTCPair.h ├── RTCPeerConnection.h ├── RTCPeerConnectionDelegate.h ├── RTCPeerConnectionFactory.h ├── RTCSessionDescription.h ├── RTCSessionDescriptonDelegate.h ├── RTCTypes.h ├── RTCVideoCapturer.h ├── RTCVideoRenderer.h ├── RTCVideoRendererDelegate.h ├── RTCVideoSource.h └── RTCVideoTrack.h ├── lib ├── libCNG.a ├── libG711.a ├── libG722.a ├── libNetEq.a ├── libNetEq4.a ├── libPCM16B.a ├── lib_core_neon_offsets.a ├── libacm2.a ├── libaudio_coding_module.a ├── libaudio_conference_mixer.a ├── libaudio_device.a ├── libaudio_processing.a ├── libaudio_processing_neon.a ├── libbitrate_controller.a ├── libcommon_audio.a ├── libcommon_audio_neon.a ├── libcommon_video.a ├── libcrnspr.a ├── libcrnss.a ├── libcrnssckbi.a ├── libcrssl.a ├── libexpat.a ├── libiLBC.a ├── libiSAC.a ├── libiSACFix.a ├── libicudata.a ├── libicui18n.a ├── libicuuc.a ├── libisac_neon.a ├── libjingle.a ├── libjingle_media.a ├── libjingle_p2p.a ├── libjingle_peerconnection.a ├── libjingle_peerconnection_objc.a ├── libjingle_sound.a ├── libjsoncpp.a ├── libmedia_file.a ├── libnss_static.a ├── libopus.a ├── libpaced_sender.a ├── librbe_components.a ├── libremote_bitrate_estimator.a ├── librtp_rtcp.a ├── libsqlite_regexp.a ├── libsrtp.a ├── libsystem_wrappers.a ├── libvideo_capture_module.a ├── libvideo_coding_utility.a ├── libvideo_engine_core.a ├── libvideo_processing.a ├── libvideo_render_module.a ├── libvoice_engine.a ├── libvpx.a ├── libvpx_asm_offsets_vp8.a ├── libvpx_asm_offsets_vpx_scale.a ├── libwebrtc_i420.a ├── libwebrtc_opus.a ├── libwebrtc_utility.a ├── libwebrtc_video_coding.a ├── libwebrtc_vp8.a ├── libyuv.a └── libyuv_neon.a ├── libvpx.patch ├── readme.md ├── webrtc-base.patch └── webrtc-ios.podspec /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011, The WebRTC project authors. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | * Neither the name of Google nor the names of its contributors may 16 | be used to endorse or promote products derived from this software 17 | without specific prior written permission. 18 | 19 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /include/RTCAudioSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "RTCMediaSource.h" 29 | 30 | // RTCAudioSource is an ObjectiveC wrapper for AudioSourceInterface. It is 31 | // used as the source for one or more RTCAudioTrack objects. 32 | @interface RTCAudioSource : RTCMediaSource 33 | 34 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 35 | // Disallow init and don't add to documentation 36 | - (id)init __attribute__( 37 | (unavailable("init is not a supported initializer for this class."))); 38 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /include/RTCAudioTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "RTCMediaStreamTrack.h" 29 | 30 | // RTCAudioTrack is an ObjectiveC wrapper for AudioTrackInterface. 31 | @interface RTCAudioTrack : RTCMediaStreamTrack 32 | 33 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 34 | // Disallow init and don't add to documentation 35 | - (id)init __attribute__( 36 | (unavailable("init is not a supported initializer for this class."))); 37 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /include/RTCI420Frame.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // RTCI420Frame is an ObjectiveC version of cricket::VideoFrame. 31 | @interface RTCI420Frame : NSObject 32 | 33 | // TODO(hughv): Implement this when iOS VP8 is ready. 34 | 35 | @end 36 | 37 | -------------------------------------------------------------------------------- /include/RTCICECandidate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // RTCICECandidate contains an instance of ICECandidateInterface. 31 | @interface RTCICECandidate : NSObject 32 | 33 | // If present, this contains the identifier of the "media stream 34 | // identification" as defined in [RFC 3388] for m-line this candidate is 35 | // associated with. 36 | @property(nonatomic, copy, readonly) NSString* sdpMid; 37 | 38 | // This indicates the index (starting at zero) of m-line in the SDP this 39 | // candidate is associated with. 40 | @property(nonatomic, assign, readonly) NSInteger sdpMLineIndex; 41 | 42 | // Creates an SDP-ized form of this candidate. 43 | @property(nonatomic, copy, readonly) NSString* sdp; 44 | 45 | // Creates an ICECandidateInterface based on SDP string. 46 | - (id)initWithMid:(NSString*)sdpMid 47 | index:(NSInteger)sdpMLineIndex 48 | sdp:(NSString*)sdp; 49 | 50 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 51 | // Disallow init and don't add to documentation 52 | - (id)init __attribute__(( 53 | unavailable("init is not a supported initializer for this class."))); 54 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /include/RTCICEServer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // RTCICEServer allows for the creation of ICEServer structs. 31 | @interface RTCICEServer : NSObject 32 | 33 | // The server URI, username, and password. 34 | @property(nonatomic, strong, readonly) NSURL* URI; 35 | @property(nonatomic, copy, readonly) NSString* username; 36 | @property(nonatomic, copy, readonly) NSString* password; 37 | 38 | // Initializer for RTCICEServer taking uri, username, and password. 39 | - (id)initWithURI:(NSURL*)URI 40 | username:(NSString*)username 41 | password:(NSString*)password; 42 | 43 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 44 | // Disallow init and don't add to documentation 45 | - (id)init __attribute__(( 46 | unavailable("init is not a supported initializer for this class."))); 47 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /include/RTCMediaConstraints.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // RTCMediaConstraints contains the media constraints to be used in 31 | // RTCPeerConnection and RTCMediaStream. 32 | @interface RTCMediaConstraints : NSObject 33 | 34 | // Initializer for RTCMediaConstraints. The parameters mandatory and optional 35 | // contain RTCPair objects with key/value for each constrant. 36 | - (id)initWithMandatoryConstraints:(NSArray *)mandatory 37 | optionalConstraints:(NSArray *)optional; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /include/RTCMediaSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | #import "RTCTypes.h" 31 | 32 | // RTCMediaSource is an ObjectiveC wrapper for MediaSourceInterface 33 | @interface RTCMediaSource : NSObject 34 | 35 | // The current state of the RTCMediaSource. 36 | @property(nonatomic, assign, readonly) RTCSourceState state; 37 | 38 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 39 | // Disallow init and don't add to documentation 40 | - (id)init __attribute__(( 41 | unavailable("init is not a supported initializer for this class."))); 42 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /include/RTCMediaStream.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | @class RTCAudioTrack; 31 | @class RTCVideoTrack; 32 | 33 | // RTCMediaStream is an ObjectiveC wrapper for MediaStreamInterface. 34 | @interface RTCMediaStream : NSObject 35 | 36 | @property(nonatomic, strong, readonly) NSArray *audioTracks; 37 | @property(nonatomic, strong, readonly) NSArray *videoTracks; 38 | @property(nonatomic, strong, readonly) NSString *label; 39 | 40 | - (BOOL)addAudioTrack:(RTCAudioTrack *)track; 41 | - (BOOL)addVideoTrack:(RTCVideoTrack *)track; 42 | - (BOOL)removeAudioTrack:(RTCAudioTrack *)track; 43 | - (BOOL)removeVideoTrack:(RTCVideoTrack *)track; 44 | 45 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 46 | // Disallow init and don't add to documentation 47 | - (id)init __attribute__( 48 | (unavailable("init is not a supported initializer for this class."))); 49 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /include/RTCMediaStreamTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | #import "RTCTypes.h" 31 | 32 | // RTCMediaStreamTrack implements the interface common to RTCAudioTrack and 33 | // RTCVideoTrack. Do not create an instance of this class, rather create one 34 | // of the derived classes. 35 | @interface RTCMediaStreamTrack : NSObject 36 | 37 | @property(nonatomic, assign, readonly) NSString *kind; 38 | @property(nonatomic, assign, readonly) NSString *label; 39 | 40 | - (BOOL)isEnabled; 41 | - (BOOL)setEnabled:(BOOL)enabled; 42 | - (RTCTrackState)state; 43 | - (BOOL)setState:(RTCTrackState)state; 44 | 45 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 46 | // Disallow init and don't add to documentation 47 | - (id)init __attribute__( 48 | (unavailable("init is not a supported initializer for this class."))); 49 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /include/RTCPair.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // A class to hold a key and value. 31 | @interface RTCPair : NSObject 32 | 33 | @property(nonatomic, strong, readonly) NSString *key; 34 | @property(nonatomic, strong, readonly) NSString *value; 35 | 36 | // Initialize a RTCPair object with a key and value. 37 | - (id)initWithKey:(NSString *)key value:(NSString *)value; 38 | 39 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 40 | // Disallow init and don't add to documentation 41 | - (id)init __attribute__( 42 | (unavailable("init is not a supported initializer for this class."))); 43 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /include/RTCPeerConnection.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "RTCPeerConnectionDelegate.h" 29 | 30 | @class RTCICECandidate; 31 | @class RTCICEServers; 32 | @class RTCMediaConstraints; 33 | @class RTCMediaStream; 34 | @class RTCSessionDescription; 35 | @protocol RTCSessionDescriptonDelegate; 36 | 37 | // RTCPeerConnection is an ObjectiveC friendly wrapper around a PeerConnection 38 | // object. See the documentation in talk/app/webrtc/peerconnectioninterface.h. 39 | // or http://www.webrtc.org/reference/native-apis, which in turn is inspired by 40 | // the JS APIs: http://dev.w3.org/2011/webrtc/editor/webrtc.html and 41 | // http://www.w3.org/TR/mediacapture-streams/ 42 | @interface RTCPeerConnection : NSObject 43 | 44 | // Accessor methods to active local streams. 45 | @property(nonatomic, strong, readonly) NSArray *localStreams; 46 | 47 | // The local description. 48 | @property(nonatomic, assign, readonly) RTCSessionDescription *localDescription; 49 | 50 | // The remote description. 51 | @property(nonatomic, assign, readonly) RTCSessionDescription *remoteDescription; 52 | 53 | // The current signaling state. 54 | @property(nonatomic, assign, readonly) RTCSignalingState signalingState; 55 | @property(nonatomic, assign, readonly) RTCICEConnectionState iceConnectionState; 56 | @property(nonatomic, assign, readonly) RTCICEGatheringState iceGatheringState; 57 | 58 | // Add a new MediaStream to be sent on this PeerConnection. 59 | // Note that a SessionDescription negotiation is needed before the 60 | // remote peer can receive the stream. 61 | - (BOOL)addStream:(RTCMediaStream *)stream 62 | constraints:(RTCMediaConstraints *)constraints; 63 | 64 | // Remove a MediaStream from this PeerConnection. 65 | // Note that a SessionDescription negotiation is need before the 66 | // remote peer is notified. 67 | - (void)removeStream:(RTCMediaStream *)stream; 68 | 69 | // Create a new offer. 70 | // Success or failure will be reported via RTCSessionDescriptonDelegate. 71 | - (void)createOfferWithDelegate:(id)delegate 72 | constraints:(RTCMediaConstraints *)constraints; 73 | 74 | // Create an answer to an offer. 75 | // Success or failure will be reported via RTCSessionDescriptonDelegate. 76 | - (void)createAnswerWithDelegate:(id)delegate 77 | constraints:(RTCMediaConstraints *)constraints; 78 | 79 | // Sets the local session description. 80 | // Success or failure will be reported via RTCSessionDescriptonDelegate. 81 | - (void) 82 | setLocalDescriptionWithDelegate:(id)delegate 83 | sessionDescription:(RTCSessionDescription *)sdp; 84 | 85 | // Sets the remote session description. 86 | // Success or failure will be reported via RTCSessionDescriptonDelegate. 87 | - (void) 88 | setRemoteDescriptionWithDelegate:(id)delegate 89 | sessionDescription:(RTCSessionDescription *)sdp; 90 | 91 | // Restarts or updates the ICE Agent process of gathering local candidates 92 | // and pinging remote candidates. 93 | - (BOOL)updateICEServers:(NSArray *)servers 94 | constraints:(RTCMediaConstraints *)constraints; 95 | 96 | // Provides a remote candidate to the ICE Agent. 97 | - (BOOL)addICECandidate:(RTCICECandidate *)candidate; 98 | 99 | // Terminates all media and closes the transport. 100 | - (void)close; 101 | 102 | // TODO(hughv): Implement GetStats. 103 | 104 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 105 | // Disallow init and don't add to documentation 106 | - (id)init __attribute__( 107 | (unavailable("init is not a supported initializer for this class."))); 108 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 109 | 110 | @end 111 | -------------------------------------------------------------------------------- /include/RTCPeerConnectionDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | #import "RTCTypes.h" 31 | 32 | @class RTCICECandidate; 33 | @class RTCMediaStream; 34 | @class RTCPeerConnection; 35 | 36 | // RTCPeerConnectionDelegate is a protocol for an object that must be 37 | // implemented to get messages from PeerConnection. 38 | @protocol RTCPeerConnectionDelegate 39 | 40 | // Triggered when there is an error. 41 | - (void)peerConnectionOnError:(RTCPeerConnection *)peerConnection; 42 | 43 | // Triggered when the SignalingState changed. 44 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 45 | signalingStateChanged:(RTCSignalingState)stateChanged; 46 | 47 | // Triggered when media is received on a new stream from remote peer. 48 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 49 | addedStream:(RTCMediaStream *)stream; 50 | 51 | // Triggered when a remote peer close a stream. 52 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 53 | removedStream:(RTCMediaStream *)stream; 54 | 55 | // Triggered when renegotiation is needed, for example the ICE has restarted. 56 | - (void)peerConnectionOnRenegotiationNeeded:(RTCPeerConnection *)peerConnection; 57 | 58 | // Called any time the ICEConnectionState changes. 59 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 60 | iceConnectionChanged:(RTCICEConnectionState)newState; 61 | 62 | // Called any time the ICEGatheringState changes. 63 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 64 | iceGatheringChanged:(RTCICEGatheringState)newState; 65 | 66 | // New Ice candidate have been found. 67 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 68 | gotICECandidate:(RTCICECandidate *)candidate; 69 | 70 | @end 71 | -------------------------------------------------------------------------------- /include/RTCPeerConnectionFactory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | @class RTCAudioTrack; 31 | @class RTCMediaConstraints; 32 | @class RTCMediaStream; 33 | @class RTCPeerConnection; 34 | @class RTCVideoCapturer; 35 | @class RTCVideoSource; 36 | @class RTCVideoTrack; 37 | @protocol RTCPeerConnectionDelegate; 38 | 39 | // RTCPeerConnectionFactory is an ObjectiveC wrapper for PeerConnectionFactory. 40 | // It is the main entry point to the PeerConnection API for clients. 41 | @interface RTCPeerConnectionFactory : NSObject 42 | 43 | // Initialize & de-initialize the SSL subsystem. Failure is fatal. 44 | + (void)initializeSSL; 45 | + (void)deinitializeSSL; 46 | 47 | // Create an RTCPeerConnection object. RTCPeerConnectionFactory will create 48 | // required libjingle threads, socket and network manager factory classes for 49 | // networking. 50 | - (RTCPeerConnection *) 51 | peerConnectionWithICEServers:(NSArray *)servers 52 | constraints:(RTCMediaConstraints *)constraints 53 | delegate:(id)delegate; 54 | 55 | // Create an RTCMediaStream named |label|. 56 | - (RTCMediaStream *)mediaStreamWithLabel:(NSString *)label; 57 | 58 | // Creates a RTCVideoSource. The new source takes ownership of |capturer|. 59 | // |constraints| decides video resolution and frame rate but can be NULL. 60 | - (RTCVideoSource *)videoSourceWithCapturer:(RTCVideoCapturer *)capturer 61 | constraints:(RTCMediaConstraints *)constraints; 62 | 63 | // Creates a new local VideoTrack. The same |source| can be used in several 64 | // tracks. 65 | - (RTCVideoTrack *)videoTrackWithID:(NSString *)videoId 66 | source:(RTCVideoSource *)source; 67 | 68 | // Creates an new AudioTrack. 69 | - (RTCAudioTrack *)audioTrackWithID:(NSString *)audioId; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /include/RTCSessionDescription.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // Description of an RFC 4566 Session. 31 | // RTCSessionDescription is an ObjectiveC wrapper for 32 | // SessionDescriptionInterface. 33 | @interface RTCSessionDescription : NSObject 34 | 35 | // The SDP description. 36 | @property(nonatomic, copy, readonly) NSString *description; 37 | 38 | // The session type. 39 | @property(nonatomic, copy, readonly) NSString *type; 40 | 41 | - (id)initWithType:(NSString *)type sdp:(NSString *)sdp; 42 | 43 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 44 | // Disallow init and don't add to documentation 45 | - (id)init __attribute__( 46 | (unavailable("init is not a supported initializer for this class."))); 47 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 48 | 49 | @end 50 | 51 | -------------------------------------------------------------------------------- /include/RTCSessionDescriptonDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | @class RTCPeerConnection; 31 | @class RTCSessionDescription; 32 | 33 | extern NSString* const kRTCSessionDescriptionDelegateErrorDomain; 34 | extern int const kRTCSessionDescriptionDelegateErrorCode; 35 | 36 | // RTCSessionDescriptonDelegate is a protocol for listening to callback messages 37 | // when RTCSessionDescriptions are created or set. 38 | @protocol RTCSessionDescriptonDelegate 39 | 40 | // Called when creating a session. 41 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 42 | didCreateSessionDescription:(RTCSessionDescription *)sdp 43 | error:(NSError *)error; 44 | 45 | // Called when setting a local or remote description. 46 | - (void)peerConnection:(RTCPeerConnection *)peerConnection 47 | didSetSessionDescriptionWithError:(NSError *)error; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /include/RTCTypes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | // Enums that are common to the ObjectiveC version of the PeerConnection API. 29 | 30 | // RTCICEConnectionState correspond to the states in webrtc::ICEConnectionState. 31 | typedef enum { 32 | RTCICEConnectionNew, 33 | RTCICEConnectionChecking, 34 | RTCICEConnectionConnected, 35 | RTCICEConnectionCompleted, 36 | RTCICEConnectionFailed, 37 | RTCICEConnectionDisconnected, 38 | RTCICEConnectionClosed, 39 | } RTCICEConnectionState; 40 | 41 | // RTCICEGatheringState the states in webrtc::ICEGatheringState. 42 | typedef enum { 43 | RTCICEGatheringNew, 44 | RTCICEGatheringGathering, 45 | RTCICEGatheringComplete, 46 | } RTCICEGatheringState; 47 | 48 | // RTCSignalingState correspond to the states in webrtc::SignalingState. 49 | typedef enum { 50 | RTCSignalingStable, 51 | RTCSignalingHaveLocalOffer, 52 | RTCSignalingHaveLocalPrAnswer, 53 | RTCSignalingHaveRemoteOffer, 54 | RTCSignalingHaveRemotePrAnswer, 55 | RTCSignalingClosed, 56 | } RTCSignalingState; 57 | 58 | // RTCSourceState corresponds to the states in webrtc::SourceState. 59 | typedef enum { 60 | RTCSourceStateInitializing, 61 | RTCSourceStateLive, 62 | RTCSourceStateEnded, 63 | RTCSourceStateMuted, 64 | } RTCSourceState; 65 | 66 | // RTCTrackState corresponds to the states in webrtc::TrackState. 67 | typedef enum { 68 | RTCTrackStateInitializing, 69 | RTCTrackStateLive, 70 | RTCTrackStateEnded, 71 | RTCTrackStateFailed, 72 | } RTCTrackState; 73 | -------------------------------------------------------------------------------- /include/RTCVideoCapturer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | // RTCVideoCapturer is an ObjectiveC wrapper for VideoCapturerInterface. 31 | @interface RTCVideoCapturer : NSObject 32 | 33 | // Create a new video capturer using the specified device. 34 | + (RTCVideoCapturer *)capturerWithDeviceName:(NSString *)deviceName; 35 | 36 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 37 | // Disallow init and don't add to documentation 38 | - (id)init __attribute__( 39 | (unavailable("init is not a supported initializer for this class."))); 40 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /include/RTCVideoRenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | #import 30 | 31 | @protocol RTCVideoRendererDelegate; 32 | struct CGRect; 33 | @class UIView; 34 | 35 | // Interface for rendering VideoFrames from a VideoTrack 36 | @interface RTCVideoRenderer : NSObject 37 | 38 | @property(nonatomic, strong) id delegate; 39 | 40 | - (id)initWithView:(UIView*)view; 41 | 42 | // Initialize the renderer. Requires a delegate which does the actual drawing 43 | // of frames. 44 | - (id)initWithDelegate:(id)delegate; 45 | 46 | // Starts rendering. 47 | - (void)start; 48 | // Stops rendering. It can be restarted again using the 'start' method above. 49 | - (void)stop; 50 | 51 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 52 | // Disallow init and don't add to documentation 53 | - (id)init __attribute__(( 54 | unavailable("init is not a supported initializer for this class."))); 55 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /include/RTCVideoRendererDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import 29 | 30 | @class RTCI420Frame; 31 | @class RTCVideoRenderer; 32 | 33 | // RTCVideoRendererDelegate is a protocol for an object that must be 34 | // implemented to get messages when rendering. 35 | @protocol RTCVideoRendererDelegate 36 | 37 | // The size of the frame. 38 | - (void)videoRenderer:(RTCVideoRenderer *)videoRenderer setSize:(CGSize)size; 39 | 40 | // The frame to be displayed. 41 | - (void)videoRenderer:(RTCVideoRenderer *)videoRenderer 42 | renderFrame:(RTCI420Frame *)frame; 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /include/RTCVideoSource.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "RTCMediaSource.h" 29 | 30 | // RTCVideoSource is an ObjectiveC wrapper for VideoSourceInterface. 31 | @interface RTCVideoSource : RTCMediaSource 32 | 33 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 34 | // Disallow init and don't add to documentation 35 | - (id)init __attribute__( 36 | (unavailable("init is not a supported initializer for this class."))); 37 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /include/RTCVideoTrack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * libjingle 3 | * Copyright 2013, Google Inc. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright notice, 9 | * this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright notice, 11 | * this list of conditions and the following disclaimer in the documentation 12 | * and/or other materials provided with the distribution. 13 | * 3. The name of the author may not be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 17 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 19 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 21 | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 22 | * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 23 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 24 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 25 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | 28 | #import "RTCMediaStreamTrack.h" 29 | 30 | @class RTCVideoRenderer; 31 | 32 | // RTCVideoTrack is an ObjectiveC wrapper for VideoTrackInterface. 33 | @interface RTCVideoTrack : RTCMediaStreamTrack 34 | 35 | // The currently registered renderers. 36 | @property(nonatomic, strong, readonly) NSArray *renderers; 37 | 38 | // Register a renderer that will render all frames received on this track. 39 | - (void)addRenderer:(RTCVideoRenderer *)renderer; 40 | 41 | // Deregister a renderer. 42 | - (void)removeRenderer:(RTCVideoRenderer *)renderer; 43 | 44 | #ifndef DOXYGEN_SHOULD_SKIP_THIS 45 | // Disallow init and don't add to documentation 46 | - (id)init __attribute__( 47 | (unavailable("init is not a supported initializer for this class."))); 48 | #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /lib/libCNG.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libCNG.a -------------------------------------------------------------------------------- /lib/libG711.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libG711.a -------------------------------------------------------------------------------- /lib/libG722.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libG722.a -------------------------------------------------------------------------------- /lib/libNetEq.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libNetEq.a -------------------------------------------------------------------------------- /lib/libNetEq4.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libNetEq4.a -------------------------------------------------------------------------------- /lib/libPCM16B.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libPCM16B.a -------------------------------------------------------------------------------- /lib/lib_core_neon_offsets.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/lib_core_neon_offsets.a -------------------------------------------------------------------------------- /lib/libacm2.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libacm2.a -------------------------------------------------------------------------------- /lib/libaudio_coding_module.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libaudio_coding_module.a -------------------------------------------------------------------------------- /lib/libaudio_conference_mixer.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libaudio_conference_mixer.a -------------------------------------------------------------------------------- /lib/libaudio_device.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libaudio_device.a -------------------------------------------------------------------------------- /lib/libaudio_processing.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libaudio_processing.a -------------------------------------------------------------------------------- /lib/libaudio_processing_neon.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libaudio_processing_neon.a -------------------------------------------------------------------------------- /lib/libbitrate_controller.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libbitrate_controller.a -------------------------------------------------------------------------------- /lib/libcommon_audio.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcommon_audio.a -------------------------------------------------------------------------------- /lib/libcommon_audio_neon.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcommon_audio_neon.a -------------------------------------------------------------------------------- /lib/libcommon_video.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcommon_video.a -------------------------------------------------------------------------------- /lib/libcrnspr.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcrnspr.a -------------------------------------------------------------------------------- /lib/libcrnss.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcrnss.a -------------------------------------------------------------------------------- /lib/libcrnssckbi.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcrnssckbi.a -------------------------------------------------------------------------------- /lib/libcrssl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libcrssl.a -------------------------------------------------------------------------------- /lib/libexpat.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libexpat.a -------------------------------------------------------------------------------- /lib/libiLBC.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libiLBC.a -------------------------------------------------------------------------------- /lib/libiSAC.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libiSAC.a -------------------------------------------------------------------------------- /lib/libiSACFix.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libiSACFix.a -------------------------------------------------------------------------------- /lib/libicudata.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libicudata.a -------------------------------------------------------------------------------- /lib/libicui18n.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libicui18n.a -------------------------------------------------------------------------------- /lib/libicuuc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libicuuc.a -------------------------------------------------------------------------------- /lib/libisac_neon.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libisac_neon.a -------------------------------------------------------------------------------- /lib/libjingle.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle.a -------------------------------------------------------------------------------- /lib/libjingle_media.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle_media.a -------------------------------------------------------------------------------- /lib/libjingle_p2p.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle_p2p.a -------------------------------------------------------------------------------- /lib/libjingle_peerconnection.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle_peerconnection.a -------------------------------------------------------------------------------- /lib/libjingle_peerconnection_objc.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle_peerconnection_objc.a -------------------------------------------------------------------------------- /lib/libjingle_sound.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjingle_sound.a -------------------------------------------------------------------------------- /lib/libjsoncpp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libjsoncpp.a -------------------------------------------------------------------------------- /lib/libmedia_file.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libmedia_file.a -------------------------------------------------------------------------------- /lib/libnss_static.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libnss_static.a -------------------------------------------------------------------------------- /lib/libopus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libopus.a -------------------------------------------------------------------------------- /lib/libpaced_sender.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libpaced_sender.a -------------------------------------------------------------------------------- /lib/librbe_components.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/librbe_components.a -------------------------------------------------------------------------------- /lib/libremote_bitrate_estimator.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libremote_bitrate_estimator.a -------------------------------------------------------------------------------- /lib/librtp_rtcp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/librtp_rtcp.a -------------------------------------------------------------------------------- /lib/libsqlite_regexp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libsqlite_regexp.a -------------------------------------------------------------------------------- /lib/libsrtp.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libsrtp.a -------------------------------------------------------------------------------- /lib/libsystem_wrappers.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libsystem_wrappers.a -------------------------------------------------------------------------------- /lib/libvideo_capture_module.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvideo_capture_module.a -------------------------------------------------------------------------------- /lib/libvideo_coding_utility.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvideo_coding_utility.a -------------------------------------------------------------------------------- /lib/libvideo_engine_core.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvideo_engine_core.a -------------------------------------------------------------------------------- /lib/libvideo_processing.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvideo_processing.a -------------------------------------------------------------------------------- /lib/libvideo_render_module.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvideo_render_module.a -------------------------------------------------------------------------------- /lib/libvoice_engine.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvoice_engine.a -------------------------------------------------------------------------------- /lib/libvpx.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvpx.a -------------------------------------------------------------------------------- /lib/libvpx_asm_offsets_vp8.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvpx_asm_offsets_vp8.a -------------------------------------------------------------------------------- /lib/libvpx_asm_offsets_vpx_scale.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libvpx_asm_offsets_vpx_scale.a -------------------------------------------------------------------------------- /lib/libwebrtc_i420.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libwebrtc_i420.a -------------------------------------------------------------------------------- /lib/libwebrtc_opus.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libwebrtc_opus.a -------------------------------------------------------------------------------- /lib/libwebrtc_utility.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libwebrtc_utility.a -------------------------------------------------------------------------------- /lib/libwebrtc_video_coding.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libwebrtc_video_coding.a -------------------------------------------------------------------------------- /lib/libwebrtc_vp8.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libwebrtc_vp8.a -------------------------------------------------------------------------------- /lib/libyuv.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libyuv.a -------------------------------------------------------------------------------- /lib/libyuv_neon.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/otalk/webrtc-ios/89eae8010dc95b3ea0e806d6dbc4e9142a40bf2d/lib/libyuv_neon.a -------------------------------------------------------------------------------- /libvpx.patch: -------------------------------------------------------------------------------- 1 | Index: source/libvpx/vp8/decoder/decodeframe.c 2 | =================================================================== 3 | --- source/libvpx/vp8/decoder/decodeframe.c (revision 259973) 4 | +++ source/libvpx/vp8/decoder/decodeframe.c (working copy) 5 | @@ -248,7 +248,11 @@ 6 | 7 | vp8_short_inv_walsh4x4(&b->dqcoeff[0], 8 | xd->qcoeff); 9 | - vpx_memset(b->qcoeff, 0, 16 * sizeof(b->qcoeff[0])); 10 | + // TODO(johannkoenig): figure out why bzero below 11 | + // works great on iOS Release but memset or 12 | + // vpx_memset create terrible corruption on decode 13 | + // (https://code.google.com/p/webm/issues/detail?id=603). 14 | + bzero(b->qcoeff, 16 * sizeof(b->qcoeff[0])); 15 | } 16 | else 17 | { 18 | Index: source/libvpx/vp8/encoder/pickinter.c 19 | =================================================================== 20 | --- source/libvpx/vp8/encoder/pickinter.c (revision 259973) 21 | +++ source/libvpx/vp8/encoder/pickinter.c (working copy) 22 | @@ -874,6 +874,12 @@ 23 | 24 | int speed_adjust = (cpi->Speed > 5) ? ((cpi->Speed >= 8)? 3 : 2) : 1; 25 | 26 | + // TODO(johannkoenig): figure out why this is necessary to 27 | + // avoid a crash on iOS Release: 28 | + // https://code.google.com/p/webrtc/issues/detail?id=3038. 29 | + if ((intptr_t)&tmp_row_min == 0x42) 30 | + *(char*)0x1 = 1; 31 | + 32 | /* Further step/diamond searches as necessary */ 33 | step_param = cpi->sf.first_step + speed_adjust; 34 | 35 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | #Use https://github.com/pristineio/webrtc-build-scripts instead 2 | 3 | (If you use CocoaPods, check out https://cocoapods.org/pods/libjingle_peerconnection) 4 | 5 | WebRTC iOS Static libs 6 | -------------------------- 7 | 8 | The process involved in building WebRTC from source is very complicated, and iOS support in the main repo is of highly variable quality. This is a set of precompiled libraries packaged as a Cocoapod to allow easily building WebRTC based apps on iOS/ 9 | 10 | **webrtc-base.patch** 11 | 12 | This is a patch file to apply to the main webrtc distribution to get functional ios libraries. Previosly this contained portions of the actual video support, but that has since been mainlined, now it just contains some fixes to make it build properly with newer SDK releases. 13 | 14 | If you need to build the main WebRTC libs yourself, the best instructions I've found on how to do that are here: http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/. Now that video support has been mainlined, the particular version needed to build should not be as important as it was previously, however there may still be incompatibilities in particular version. 15 | 16 | The current version that we use is 5858. So you may want to make sure that the source is at the correct revision, so rather than just running 17 | gclient sync 18 | to sync the depot, run 19 | gclient sync trunk@5858 20 | 21 | **libvpx.patch** 22 | 23 | Some patches to work around some iOS specific problems with libvpx that can cause crashes or decode corruption in release mode. See: 24 | 25 | https://code.google.com/p/webm/issues/detail?id=603 and https://code.google.com/p/webrtc/issues/detail?id=3038 for details. 26 | 27 | Needs to be applied seperatly in third_party/libvpx due to nested svn repositories. 28 | 29 | **lib** 30 | 31 | These are compiled copies of the libs build from the main source with the above patches applied. 32 | 33 | Note that the libraries are release mode, armv7 only. The WebRTC build pipeline seems incapable of producing armv7s or arm64 binaries at this time. 34 | 35 | **include** 36 | 37 | This is a copy of the header files for the ObjectiveC interface to WebRTC, from 'talk/app/webrtc/objc' in the WebRTC distribution. 38 | -------------------------------------------------------------------------------- /webrtc-base.patch: -------------------------------------------------------------------------------- 1 | Index: talk/libjingle.gyp 2 | =================================================================== 3 | --- talk/libjingle.gyp (revision 5858) 4 | +++ talk/libjingle.gyp (working copy) 5 | @@ -627,7 +627,6 @@ 6 | 'OTHER_LDFLAGS': [ 7 | '-framework Cocoa', 8 | '-framework Foundation', 9 | - '-framework IOKit', 10 | '-framework Security', 11 | '-framework SystemConfiguration', 12 | ], 13 | @@ -659,7 +658,6 @@ 14 | 'xcode_settings': { 15 | 'OTHER_LDFLAGS': [ 16 | '-framework Foundation', 17 | - '-framework IOKit', 18 | '-framework Security', 19 | '-framework SystemConfiguration', 20 | '-framework UIKit', 21 | -------------------------------------------------------------------------------- /webrtc-ios.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "webrtc-ios" 3 | s.version = "5858" 4 | s.deprecated = true 5 | s.summary = "iOS compiled WebRTC libraries" 6 | s.homepage = "https://github.com/steamclock/webrtc-ios" 7 | s.license = { :type => "OTHER", :file => "LICENSE" } 8 | s.author = { "&yet" => "contact@andyet.com" } 9 | s.platform = :ios, '7.0' 10 | s.source = { :git => "https://github.com/otalk/webrtc-ios.git", :tag => s.version.to_s } 11 | s.source_files = "include/**/*.h" 12 | s.vendored_libraries = "lib/*.a" 13 | s.requires_arc = false 14 | s.library = 'sqlite3', 'stdc++' 15 | s.framework = 'AVFoundation', 'AudioToolbox', 'CoreMedia' 16 | s.xcconfig = { 17 | 'OTHER_LDFLAGS' => '-stdlib=libstdc++', 18 | 'ARCHS' => 'armv7', 19 | 'ONLY_ACTIVE_ARCH' => 'NO' 20 | } 21 | end 22 | --------------------------------------------------------------------------------