Skip to content

Commit

Permalink
WebRTCv3.1.0
Browse files Browse the repository at this point in the history
#### Added:  
- Mac Catalyst support.  
- Simulators support.  
- iOS 13 support.  

#### Updated:  
- Google WebRTC updated to version 124.0.6367.88.  
- Logger enhanced for more effective logging.  
- Conference signaling mechanism improved.  
- RTC interfaces encapsulated for better modularity.  
- Camera capture queue and video capture logic optimized.  
- Media stream functionalities updated.  
- Audio track handling refactored.  

#### Deprecated:  
- Methods and classes related to call recording.  

#### Fixed:  
- Adjusted logging level settings, replacing assertions with validations.  
- Removed deprecated audio session logic.  
- Resolved inconsistencies in video frame handling.  

#### Minor Enhancements:  
- Improved compatibility and support with CocoaPods.
  • Loading branch information
IlliaChemolosov authored Dec 11, 2024
2 parents 0220303 + 9a438a3 commit 3caff84
Show file tree
Hide file tree
Showing 123 changed files with 3,424 additions and 980 deletions.
26 changes: 24 additions & 2 deletions Framework/QuickbloxWebRTC.xcframework/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,25 @@
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>QuickbloxWebRTC.framework/Versions/A/QuickbloxWebRTC</string>
<key>LibraryIdentifier</key>
<string>ios-x86_64-simulator</string>
<string>ios-arm64_x86_64-maccatalyst</string>
<key>LibraryPath</key>
<string>QuickbloxWebRTC.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
<string>maccatalyst</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>QuickbloxWebRTC.framework/QuickbloxWebRTC</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
Expand All @@ -30,6 +35,23 @@
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>QuickbloxWebRTC.framework/QuickbloxWebRTC</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>QuickbloxWebRTC.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>

#import "QBRTCAudioSessionDelegate.h"
#import <QuickbloxWebRTC/QBRTCAudioSessionDelegate.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down Expand Up @@ -144,87 +144,4 @@ NS_ASSUME_NONNULL_BEGIN

@end

@interface QBRTCAudioSession (Deprecated)

/**
* Current audio device.
*
* @remark QBRTCAudioDeviceNotSpecified if not initialized
*
* @discussion Change this property value in order to change current audio device.
*
* @note Audio device change is being performed on background thread and is not an instant operation.
* Cannot be changed if QBRTCAudioSession is not initialized.
*
* @warning Deprecated in 2.7.5*.
*/
@property (assign, nonatomic) QBRTCAudioDevice currentAudioDevice DEPRECATED_ATTRIBUTE;

/**
* Determines whether QBRTCAudioSession is initialized and have saved previous active audio session settings.
*
* @warning Deprecated in 2.7.5*. Use 'isActive' instead.
*/
@property (nonatomic, readonly, getter=isInitialized) BOOL initialized
DEPRECATED_MSG_ATTRIBUTE("Use 'isActive' instead.");

/**
* Initialize audio session if not initialized yet.
*
* @discussion Initialization of QBRTCAudioSession will perform configuration of AVAudioSession shared instance.
* using suggested default QBRTCAudioSessionConfiguration settings. Use 'initializeWithConfigurationBlock:' method
* to perform in-depth audio session configuration.
*
* @note Previous configuration will be saved. In order to restore it deinitialize QBRTCAudioSession using
* 'deinitialize' method.
*
* @code
[[QBRTCAudioSession instance] initializeWithConfigurationBlock:^(QBRTCAudioSessionConfiguration *configuration) {
// adding blutetooth support
configuration.categoryOptions |= AVAudioSessionCategoryOptionAllowBluetooth;
configuration.categoryOptions |= AVAudioSessionCategoryOptionAllowBluetoothA2DP;
// adding airplay support
configuration.categoryOptions |= AVAudioSessionCategoryOptionAllowAirPlay;
if (_session.conferenceType == QBRTCConferenceTypeVideo) {
// setting mode to video chat to enable airplay audio and speaker only
configuration.mode = AVAudioSessionModeVideoChat;
}
}];
* @endcode
*
* @return Boolean value of whether operation was successful
*
* @warning *Deprecated in 2.7.5*. Use 'setActive:' set to `YES` instead.
*/
- (BOOL)initialize __deprecated_msg("Use 'setActive:' set to `YES` instead.");

/**
* Initialize audio session if not initialized yet using configuration block.
*
* @param configurationBlock configuration block
*
* @see QBRTCAudioSessionConfiguration class.
*
* @return Boolean value of whether operation was successful
*
* @warning *Deprecated in 2.7.5*. Use 'setConfiguration:active:' instead.
*/
- (BOOL)initializeWithConfigurationBlock:(nullable void(^)(QBRTCAudioSessionConfiguration *configuration))configurationBlock __deprecated_msg("Use 'setConfiguration:' or 'setConfiguration::active:' instead.");

/**
* Deinitialize QBRTCAudioSession.
*
* @note Previous AVAudioSession configuration will be restored (which was saved upon
* QBRTCAudioSession initialization).
*
* @return Boolean value of whether operation was successful
*
* @warning *Deprecated in 2.7.5*. Use 'setActive:' set to `NO` instead.
*/
- (BOOL)deinitialize __deprecated_msg("Use 'setActive:' set to `NO` instead.");

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCMediaStreamTrack.h"
#import <QuickbloxWebRTC/QBRTCMediaStreamTrack.h>

#import <CoreAudio/CoreAudioTypes.h>
#import <CoreMedia/CoreMedia.h>
Expand Down Expand Up @@ -62,7 +62,7 @@ audioStreamDescription:(const AudioStreamBasicDescription)audioStreamDescription
*
* @see QBRTCAudioTrackSinkInterface
*/
- (void)addSink:(id<QBRTCAudioTrackSinkInterface>)sink;
- (void)addSink:(id<QBRTCAudioTrackSinkInterface>)sink __attribute__((deprecated("addSink: method is deprecated in version 3.0.0 and not supported.")));

/**
* Remove sink.
Expand All @@ -71,7 +71,7 @@ audioStreamDescription:(const AudioStreamBasicDescription)audioStreamDescription
*
* @see QBRTCAudioTrackSinkInterface
*/
- (void)removeSink:(id<QBRTCAudioTrackSinkInterface>)sink;
- (void)removeSink:(id<QBRTCAudioTrackSinkInterface>)sink __attribute__((deprecated("removeSink: method is deprecated in version 3.0.0 and not supported.")));

@end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
//

#import <Foundation/Foundation.h>
#import "QBRTCBaseClientDelegate.h"
#import <QuickbloxWebRTC/QBRTCBaseClientDelegate.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#import <Foundation/Foundation.h>

#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCTypes.h>

@class QBRTCBaseSession;
@class QBRTCStatsReport;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#import <Foundation/Foundation.h>

#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCTypes.h>

@class QBRTCMediaStream;
@class QBRTCAudioTrack;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCVideoCapture.h"
#import <QuickbloxWebRTC/QBRTCVideoCapture.h>

#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCBaseClient.h"
#import <QuickbloxWebRTC/QBRTCBaseClient.h>

#import "QBRTCClientDelegate.h"
#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCClientDelegate.h>
#import <QuickbloxWebRTC/QBRTCTypes.h>

@class QBRTCSession;

Expand Down Expand Up @@ -65,18 +65,4 @@ NS_ASSUME_NONNULL_BEGIN

@end

@interface QBRTCClient (Deprecated)

/**
* Deinitialize QuickbloxWebRTC
* Disables SSL subsystem and signaling
*
* Call this method when you finish your work with QuickbloxWebRTC
*
* @warning *Deprecated in 2.5*. From now on QBRTCCLient managing deinitialization of webrtc on itself. Just remove usage of this method.
*/
+ (void)deinitializeRTC DEPRECATED_MSG_ATTRIBUTE("Deprecated in 2.5. From now on QBRTCCLient managing deinitialization of webrtc on itself. Just remove usage of this method.");

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCBaseClient.h"
#import <QuickbloxWebRTC/QBRTCBaseClient.h>

#import "QBRTCConferenceClientDelegate.h"
#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCConferenceClientDelegate.h>
#import <QuickbloxWebRTC/QBRTCTypes.h>

@class QBRTCConferenceSession;

Expand Down Expand Up @@ -64,22 +64,4 @@ NS_ASSUME_NONNULL_BEGIN

@end

@interface QBRTCConferenceClient (Deprecated)

/**
* Send create session request.
*
* @note Returns session without ID. When session will be created on server
* ID will be assigned and session will be returned in 'didCreateNewSession:' callback.
*
* @see QBRTCConferenceClientDelegate
*
* @param chatDialogID chat dialog ID
*
* @warning Deprecated in 2.6.1. Use 'createSessionWithChatDialogID:conferenceType:' instead. This deprecated method will automatically create session with conference type QBRTCConferenceTypeVideo.
*/
- (QBRTCConferenceSession *)createSessionWithChatDialogID:(NSString *)chatDialogID DEPRECATED_MSG_ATTRIBUTE("Deprecated in 2.6.1. Use 'createSessionWithChatDialogID:conferenceType:' instead. This deprecated method will automatically create session with conference type QBRTCConferenceTypeVideo.");

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCBaseClientDelegate.h"
#import <QuickbloxWebRTC/QBRTCBaseClientDelegate.h>

#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCTypes.h>

@class QBRTCConferenceSession;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCBaseSession.h"
#import <QuickbloxWebRTC/QBRTCBaseSession.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#import <Foundation/Foundation.h>

#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCTypes.h>

NS_ASSUME_NONNULL_BEGIN

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCMediaStreamTrack.h"
#import <QuickbloxWebRTC/QBRTCMediaStreamTrack.h>

/**
* QBRTCLocalAudioTrack class interface.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCMediaStreamTrack.h"
#import <QuickbloxWebRTC/QBRTCMediaStreamTrack.h>

@class QBRTCVideoCapture;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
// Copyright (c) 2018 QuickBlox. All rights reserved.
//

#import "QBRTCTypes.h"
#import <QuickbloxWebRTC/QBRTCTypes.h>

#if defined(__cplusplus)
extern "C" void QBRTCLogEx(QBRTCLogLevel severity, NSString *logString);
Expand All @@ -21,15 +21,8 @@ extern void QBRTCSetMinDebugLogLevel(QBRTCLogLevel severity);
extern NSString *QBRTCFileName(const char* file_path);
#endif

#define QBRTCLogString(format, ...) \
[NSString stringWithFormat:@"rtc::" format, \
##__VA_ARGS__]

#define QBRTCLogFormat(severity, format, ...) \
do { \
NSString *logString = QBRTCLogString(format, ##__VA_ARGS__); \
QBRTCLogEx(severity, logString); \
} while (false)
QBRTCLogEx(severity, [NSString stringWithFormat:format, ##__VA_ARGS__]) \

#define QBRTCLogVerbose(format, ...) \
QBRTCLogFormat(QBRTCLogLevelVerbose, format, ##__VA_ARGS__) \
Expand All @@ -43,12 +36,4 @@ extern NSString *QBRTCFileName(const char* file_path);
#define QBRTCLogError(format, ...) \
QBRTCLogFormat(QBRTCLogLevelErrors, format, ##__VA_ARGS__) \

#if !defined(DEBUG)
#define QBRTCLogDebug(format, ...) QBRTCLogInfo(format, ##__VA_ARGS__)
#else
#define QBRTCLogDebug(format, ...) \
do { \
} while (false)
#endif

#define QBRTCLog(format, ...) QBRTCLogInfo(format, ##__VA_ARGS__)
Loading

0 comments on commit 3caff84

Please sign in to comment.