Skip to content

[Fix]Improve AudioFilter pipeline - #942

Merged
ipavlidakis merged 3 commits into
developfrom
enhancement/rewire-audioprocessin-pipeline
Sep 15, 2025
Merged

ipavlidakis merged 3 commits into
developfrom
enhancement/rewire-audioprocessin-pipeline

Conversation

@ipavlidakis

@ipavlidakis ipavlidakis commented Sep 12, 2025

Copy link
Copy Markdown
Contributor

🎯 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
Copy Markdown
1 Warning
⚠️ Big PR

Generated by 🚫 Danger

@github-actions

github-actions Bot commented Sep 12, 2025

Copy link
Copy Markdown

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

Stream-SDK-Bot commented Sep 12, 2025

Copy link
Copy Markdown
Collaborator

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 🟢

@sonarqubecloud

Copy link
Copy Markdown

@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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants