[FFmpeg-user] Dynaudnorm & earwax filters

Ronak ronak2121 at yahoo.com
Tue Dec 11 18:25:45 EET 2018

> On Dec 10, 2018, at 7:29 PM, Carl Eugen Hoyos <ceffmpeg at gmail.com> wrote:
> 2018-12-11 1:07 GMT+01:00, Ronak <ronak2121-at-yahoo.com at ffmpeg.org>:
>> Hey guys,
>> I'm trying to use the dynaudnorm and earwax filters in my iPhone app, and
>> I've noticed that the dynaudnorm filter wants to resample the audio.
>> Is there any way to avoid resampling the audio? What format does the filter
>> expect the input to be?
> The dynaudnorm filter only accepts planar double, the earwax filter only
> packed s16.

Ok thanks. I tried to use this filter in my iOS code; but I'm getting errors with an error code -35.

This is my code that tries to write data into the filter graph and reads it back; what am I doing wrong?

private func filterBuffer(_ inputBuffer: UnsafeMutableAudioBufferListPointer, frameCount: UInt32, outputBuffer: UnsafeMutableAudioBufferListPointer) throws {

    // copy the pointers to the audio buffer into the frame for manipulation

    // each buffer represents the audio per channel
    for index in 0..<inputBuffer.count {
      let dataByteSize = Int(inputBuffer[index].mDataByteSize)
      let buffer = inputBuffer[index].mData?.bindMemory(to: UInt8.self, capacity: dataByteSize)

      inputAudioFrame?.pointee.extended_data[index] = buffer

    // write the audio frame into the audioInputContext so it can be filtered
    let writeResult = av_buffersrc_write_frame(audioInputContext, inputAudioFrame)
    if writeResult == 0 {

      // pull the filtered audio out of the audioOutputContext
      let pullResult = av_buffersink_get_frame(audioOutputContext, outputAudioFrame)
      if pullResult >= 0 {
        let filteredAudioBufferData = outputAudioFrame?.pointee.extended_data

        // copy the pointers to the filtered audio into the output buffers
        for index in 0..<outputBuffer.count {
          outputBuffer[index].mData = UnsafeMutableRawPointer(filteredAudioBufferData?[index])
      } else {

        // the audio couldn't be filtered properly, throw an error
        throw PlayerError.filterFailure([:])
    } else {

      // the audio couldn't be filtered properly, throw an error
      throw PlayerError.filterFailure([:])



> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".

More information about the ffmpeg-user mailing list