Skip to content

Conversation

@ipavlidakis
Copy link
Contributor

@ipavlidakis ipavlidakis commented Sep 12, 2025

🎯 Goal

Rewire AudioProcessing pipeline to provide information around the captured AudioBuffers.

🛠 Implementation

This revision transitions the existing AudioProcessing pipeline a Store structure that allows better control and reporting over AudioFiltering. This revision sets the foundation for the HiFI implementation and the WebRTC migration.

🧪 Manual Testing Notes

  • Join a call with someone
  • Ensure the NoiseCancellation filter works
  • Ensure the Robot filter works

☑️ Contributor Checklist

  • I have signed the Stream CLA (required)
  • This change follows zero ⚠️ policy (required)
  • This change should receive manual QA
  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (tutorial, CMS)
@ipavlidakis ipavlidakis self-assigned this Sep 12, 2025
@ipavlidakis ipavlidakis requested a review from a team as a code owner September 12, 2025 12:53
@ipavlidakis ipavlidakis added bug Something isn't working enhancement New feature or request labels Sep 12, 2025
@github-actions
Copy link

1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@github-actions
Copy link

github-actions bot commented Sep 12, 2025

Public Interface

- open class StreamAudioFilterProcessingModule: RTCDefaultAudioProcessingModule, AudioProcessingModule, @unchecked Sendable  -  - public var activeAudioFilter: AudioFilter? -  -  - public init(config: RTCAudioProcessingConfig? = nil,capturePostProcessingDelegate: AudioFilterCapturePostProcessingModule = StreamAudioFilterCapturePostProcessingModule(),renderPreProcessingDelegate: RTCAudioCustomProcessingDelegate? = nil) -  -  - override public func apply(_ config: RTCAudioProcessingConfig) - public func setAudioFilter(_ filter: AudioFilter?) - open class StreamAudioFilterCapturePostProcessingModule: NSObject, AudioFilterCapturePostProcessingModule, @unchecked Sendable  -  - public private var audioFilter: AudioFilter? - public private var sampleRate: Int - public private var channels: Int -  -  - override public init() -  -  - open func setAudioFilter(_ audioFilter: AudioFilter?) - open func audioProcessingInitialize(sampleRate sampleRateHz: Int,channels: Int) - open func audioProcessingProcess(audioBuffer: RTCAudioBuffer) - open func audioProcessingRelease() - public protocol AudioFilterCapturePostProcessingModule: RTCAudioCustomProcessingDelegate 
@Stream-SDK-Bot
Copy link
Collaborator

Stream-SDK-Bot commented Sep 12, 2025

SDK Size

title develop branch diff status
StreamVideo 8.63 MB 8.65 MB +20 KB 🟢
StreamVideoSwiftUI 2.36 MB 2.36 MB 0 KB 🟢
StreamVideoUIKit 2.48 MB 2.48 MB 0 KB 🟢
StreamWebRTC 9.85 MB 9.85 MB 0 KB 🟢
@ipavlidakis ipavlidakis merged commit e8a3260 into develop Sep 15, 2025
20 of 21 checks passed
@ipavlidakis ipavlidakis deleted the enhancement/rewire-audioprocessin-pipeline branch September 15, 2025 10:14
@Stream-SDK-Bot Stream-SDK-Bot mentioned this pull request Sep 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

4 participants