-
Notifications
You must be signed in to change notification settings - Fork 30
[Enhancement]HiFi feature implementation #975
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ipavlidakis
wants to merge
10
commits into
develop
Choose a base branch
from
enhancement/hifi/feature-implementation
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+8,992
−3,077
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
9484432 to
4561d95
Compare
Generated by 🚫 Danger |
eb2eb3b to
283a24a
Compare
ad2ecd8 to
ebfedd9
Compare
# Conflicts: # Sources/StreamVideo/Utils/Store/StoreTask.swift
ebfedd9 to
6b6c886
Compare
martinmitrevski
approved these changes
Nov 28, 2025
Public Interface+ public struct LivestreamAudioSessionPolicy: AudioSessionPolicy
+
+ public init()
+
+
+ public func configuration(for callSettings: CallSettings,ownCapabilities: Set<OwnCapability>)-> AudioSessionConfiguration
+ public enum WebRTC
+
+ case audioEngineDevice = "audio_engine_device.mm"
+
+
+ public nonisolated static var mode: LogMode
+
+
+ public enum LogMode
+
+ case none, validFilesOnly, all
@MainActor public class CallState: ObservableObject
- @Published public internal var callSettings
+ @Published public internal var callSettings: CallSettings
public final class CallSettings: ObservableObject, Sendable, Equatable, CustomStringConvertible
- public let audioOn: Bool
+ public static let `default`
- public let videoOn: Bool
+ public let audioOn: Bool
- public let speakerOn: Bool
+ public let videoOn: Bool
- public let audioOutputOn: Bool
+ public let speakerOn: Bool
- public let cameraPosition: CameraPosition
+ public let audioOutputOn: Bool
- public var shouldPublish: Bool
+ public let cameraPosition: CameraPosition
- public var description: String
+ public var shouldPublish: Bool
-
+ public var description: String
-
+
- public convenience init(_ response: CallSettingsResponse,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+
- public init(audioOn: Bool = true,videoOn: Bool = true,speakerOn: Bool = true,audioOutputOn: Bool = true,cameraPosition: CameraPosition = .front,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
+ public convenience init(_ response: CallSettingsResponse,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
-
+ public init(audioOn: Bool = true,videoOn: Bool = true,speakerOn: Bool = true,audioOutputOn: Bool = true,cameraPosition: CameraPosition = .front,file: StaticString = #file,function: StaticString = #function,line: UInt = #line)
-
+
- public static func ==(lhs: CallSettings,rhs: CallSettings)-> Bool
+
+ public static func ==(lhs: CallSettings,rhs: CallSettings)-> Bool
- public class ClientError: Error, ReflectiveStringConvertible, @unchecked Sendable
+ public class ClientError: Error, CustomStringConvertible, @unchecked Sendable
-
+ public var description: String
-
+
- public init(with error: Error? = nil,_ file: StaticString = #fileID,_ line: UInt = #line)
+
- public init(_ message: String,_ file: StaticString = #fileID,_ line: UInt = #line)
+ public init(with error: Error? = nil,_ file: StaticString = #fileID,_ line: UInt = #line)
-
+ public init(_ message: String,_ file: StaticString = #fileID,_ line: UInt = #line)
-
+
- public struct Location: Equatable, Sendable
+
-
+ public struct Location: Equatable, Sendable, CustomStringConvertible
- public let file: String
+
- public let line: Int
+ public let file: String
+ public let line: Int
+ public var description: String
public struct StatelessMicrophoneIconView: View
- @MainActor public init(call: Call?,callSettings: CallSettings = .init(),size: CGFloat = 44,controlStyle: ToggleControlStyle = .init(
+ @MainActor public init(call: Call?,callSettings: CallSettings = .default,size: CGFloat = 44,controlStyle: ToggleControlStyle = .init(
- public struct AudioSessionConfiguration: ReflectiveStringConvertible, Equatable, Sendable
+ public struct AudioSessionConfiguration: CustomStringConvertible, Equatable, Sendable
- public static func ==(lhs: Self,rhs: Self)-> Bool
+ public var description: String
+
+
+ public static func ==(lhs: Self,rhs: Self)-> Bool
public struct StatelessVideoIconView: View
- public init(call: Call?,callSettings: CallSettings = .init(),size: CGFloat = 44,controlStyle: ToggleControlStyle = .init(
+ public init(call: Call?,callSettings: CallSettings = .default,size: CGFloat = 44,controlStyle: ToggleControlStyle = .init(
public final class MicrophoneManager: ObservableObject, CallSettingsManager, @unchecked Sendable
- public func toggle()async throws
+ public func toggle(file: StaticString = #file,function: StaticString = #function,line: UInt = #line)async throws
- public func enable()async throws
+ public func enable(file: StaticString = #file,function: StaticString = #function,line: UInt = #line)async throws
- public func disable()async throws
+ public func disable(file: StaticString = #file,function: StaticString = #function,line: UInt = #line)async throws |
Collaborator
SDK Size
|
Collaborator
StreamVideo XCSize
Show 104 more objects
|
Collaborator
StreamVideoSwiftUI XCSize
|
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



🔗 Issue Links
Resolves https://linear.app/stream/issue/IOS-1103/hifi-implementation
🎯 Goal
Ship the “HiFi” audio experience by keeping stereo playout enabled for livestream calls while keeping CallKit and WebRTC session management stable.
📝 Summary
🛠 Implementation
🎨 Showcase
Add relevant screenshots and/or videos/gifs to easily see what this PR changes, if applicable.
imgimg🧪 Manual Testing Notes
Explain how this change can be tested manually, if applicable.
☑️ Contributor Checklist
🎁 Meme
Provide a funny gif or image that relates to your work on this pull request. (Optional)