Update tgcalls

This commit is contained in:
Ali 2021-08-27 21:06:42 +04:00
parent 3ee7c76820
commit ffc23aca69
5 changed files with 34 additions and 2 deletions

View File

@ -111,5 +111,13 @@ public extension TelegramEngine {
public func groupCall(peerId: PeerId, myPeerId: PeerId, id: Int64, accessHash: Int64, state: GroupCallParticipantsContext.State, previousServiceState: GroupCallParticipantsContext.ServiceState?) -> GroupCallParticipantsContext {
return GroupCallParticipantsContext(account: self.account, peerId: peerId, myPeerId: myPeerId, id: id, accessHash: accessHash, state: state, previousServiceState: previousServiceState)
}
public func serverTime() -> Signal<Int64, NoError> {
return self.account.network.currentGlobalTime
|> map { value -> Int64 in
return Int64(value * 1000.0)
}
|> take(1)
}
}
}

View File

@ -34,6 +34,7 @@ private enum BroadcastPartSubject {
}
private protocol BroadcastPartSource: AnyObject {
func requestTime(completion: @escaping (Int64) -> Void) -> Disposable
func requestPart(timestampMilliseconds: Int64, durationMilliseconds: Int64, subject: BroadcastPartSubject, completion: @escaping (OngoingGroupCallBroadcastPart) -> Void, rejoinNeeded: @escaping () -> Void) -> Disposable
}
@ -50,7 +51,13 @@ private final class NetworkBroadcastPartSource: BroadcastPartSource {
self.callId = callId
self.accessHash = accessHash
}
func requestTime(completion: @escaping (Int64) -> Void) -> Disposable {
return engine.calls.serverTime().start(next: { result in
completion(result)
})
}
func requestPart(timestampMilliseconds: Int64, durationMilliseconds: Int64, subject: BroadcastPartSubject, completion: @escaping (OngoingGroupCallBroadcastPart) -> Void, rejoinNeeded: @escaping () -> Void) -> Disposable {
let timestampIdMilliseconds: Int64
if timestampMilliseconds != 0 {
@ -423,6 +430,15 @@ public final class OngoingGroupCallContext {
return OngoingGroupCallMediaChannelDescriptionTaskImpl(disposable: disposable)
},
requestCurrentTime: { completion in
let disposable = MetaDisposable()
queue.async {
disposable.set(broadcastPartsSource?.requestTime(completion: completion))
}
return OngoingGroupCallBroadcastPartTaskImpl(disposable: disposable)
},
requestAudioBroadcastPart: { timestampMilliseconds, durationMilliseconds, completion in
let disposable = MetaDisposable()

View File

@ -344,6 +344,7 @@ typedef NS_ENUM(int32_t, OngoingGroupCallRequestedVideoQuality) {
outputDeviceId:(NSString * _Nonnull)outputDeviceId
videoCapturer:(OngoingCallThreadLocalContextVideoCapturer * _Nullable)videoCapturer
requestMediaChannelDescriptions:(id<OngoingGroupCallMediaChannelDescriptionTask> _Nonnull (^ _Nonnull)(NSArray<NSNumber *> * _Nonnull, void (^ _Nonnull)(NSArray<OngoingGroupCallMediaChannelDescription *> * _Nonnull)))requestMediaChannelDescriptions
requestCurrentTime:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(void (^ _Nonnull)(int64_t)))requestAudioBroadcastPart
requestAudioBroadcastPart:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(int64_t, int64_t, void (^ _Nonnull)(OngoingGroupCallBroadcastPart * _Nullable)))requestAudioBroadcastPart
requestVideoBroadcastPart:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(int64_t, int64_t, int32_t, OngoingGroupCallRequestedVideoQuality, void (^ _Nonnull)(OngoingGroupCallBroadcastPart * _Nullable)))requestVideoBroadcastPart
outgoingAudioBitrateKbit:(int32_t)outgoingAudioBitrateKbit

View File

@ -1361,6 +1361,7 @@ private:
outputDeviceId:(NSString * _Nonnull)outputDeviceId
videoCapturer:(OngoingCallThreadLocalContextVideoCapturer * _Nullable)videoCapturer
requestMediaChannelDescriptions:(id<OngoingGroupCallMediaChannelDescriptionTask> _Nonnull (^ _Nonnull)(NSArray<NSNumber *> * _Nonnull, void (^ _Nonnull)(NSArray<OngoingGroupCallMediaChannelDescription *> * _Nonnull)))requestMediaChannelDescriptions
requestCurrentTime:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(void (^ _Nonnull)(int64_t)))requestCurrentTime
requestAudioBroadcastPart:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(int64_t, int64_t, void (^ _Nonnull)(OngoingGroupCallBroadcastPart * _Nullable)))requestAudioBroadcastPart
requestVideoBroadcastPart:(id<OngoingGroupCallBroadcastPartTask> _Nonnull (^ _Nonnull)(int64_t, int64_t, int32_t, OngoingGroupCallRequestedVideoQuality, void (^ _Nonnull)(OngoingGroupCallBroadcastPart * _Nullable)))requestVideoBroadcastPart
outgoingAudioBitrateKbit:(int32_t)outgoingAudioBitrateKbit
@ -1434,6 +1435,12 @@ private:
.initialInputDeviceId = inputDeviceId.UTF8String,
.initialOutputDeviceId = outputDeviceId.UTF8String,
.videoCapture = [_videoCapturer getInterface],
.requestCurrentTime = [requestCurrentTime](std::function<void(int64_t)> completion) {
id<OngoingGroupCallBroadcastPartTask> task = requestCurrentTime(^(int64_t result) {
completion(result);
});
return std::make_shared<BroadcastPartTaskImpl>(task);
},
.requestAudioBroadcastPart = [requestAudioBroadcastPart](int64_t timestampMilliseconds, int64_t durationMilliseconds, std::function<void(tgcalls::BroadcastPart &&)> completion) -> std::shared_ptr<tgcalls::BroadcastPartTask> {
id<OngoingGroupCallBroadcastPartTask> task = requestAudioBroadcastPart(timestampMilliseconds, durationMilliseconds, ^(OngoingGroupCallBroadcastPart * _Nullable part) {
tgcalls::BroadcastPart parsedPart;

@ -1 +1 @@
Subproject commit 081ef55ec85abcbcefd2c7ffb11975db9bfd9182
Subproject commit 7c951d78faeb386a42bd25374b3bf5e63d0b863a