Index: webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm |
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm |
index d5fd1df06727697d1e97374d68f6a43738020f39..9f24aec11daf611a1a90825d50b772f2580ef552 100644 |
--- a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm |
+++ b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm |
@@ -19,11 +19,13 @@ |
#import "RTCPeerConnection+Private.h" |
#import "RTCVideoSource+Private.h" |
#import "RTCVideoTrack+Private.h" |
+#import "WebRTC/RTCLogging.h" |
@implementation RTCPeerConnectionFactory { |
std::unique_ptr<rtc::Thread> _networkThread; |
std::unique_ptr<rtc::Thread> _workerThread; |
std::unique_ptr<rtc::Thread> _signalingThread; |
+ BOOL _hasStartedAecDump; |
} |
@synthesize nativeFactory = _nativeFactory; |
@@ -50,19 +52,6 @@ |
return self; |
} |
-- (BOOL)startAecDumpWithFileDescriptor:(int)fileDescriptor |
- maxFileSizeInBytes:(int)maxFileSizeInBytes { |
- // Pass the file to the recorder. The file ownership |
- // is passed to the recorder, and the recorder |
- // closes the file when needed. |
- return _nativeFactory->StartAecDump(fileDescriptor, maxFileSizeInBytes); |
-} |
- |
-- (void)stopAecDump { |
- // The file is closed by the call below. |
- _nativeFactory->StopAecDump(); |
-} |
- |
- (RTCAudioSource *)audioSourceWithConstraints:(nullable RTCMediaConstraints *)constraints { |
std::unique_ptr<webrtc::MediaConstraints> nativeConstraints; |
if (constraints) { |
@@ -115,4 +104,27 @@ |
delegate:delegate]; |
} |
+- (BOOL)startAecDumpWithFilePath:(NSString *)filePath |
+ maxSizeInBytes:(int64_t)maxSizeInBytes { |
+ RTC_DCHECK(filePath.length); |
+ RTC_DCHECK_GT(maxSizeInBytes, 0); |
+ |
+ if (_hasStartedAecDump) { |
+ RTCLogError(@"Aec dump already started."); |
+ return NO; |
+ } |
+ int fd = open(filePath.UTF8String, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); |
+ if (fd < 0) { |
+ RTCLogError(@"Error opening file: %@. Error: %d", filePath, errno); |
+ return NO; |
+ } |
+ _hasStartedAecDump = _nativeFactory->StartAecDump(fd, maxSizeInBytes); |
+ return _hasStartedAecDump; |
+} |
+ |
+- (void)stopAecDump { |
+ _nativeFactory->StopAecDump(); |
+ _hasStartedAecDump = NO; |
+} |
+ |
@end |