I managed to trace this down to av_frame_get_buffer returning -22.

Here's the code that I tried:

  AVFrame *audioFrame = av_frame_alloc();
  audioFrame->channels = 2;
  audioFrame->channel_layout = av_get_default_channel_layout(2);
  audioFrame->sample_rate = 44100;
  audioFrame->nb_samples = buffer->mBuffers[0].mDataByteSize/ sizeof(Float32) * 
44100;
  audioFrame->pts = audioFrame->nb_samples;
  av_frame_get_buffer(audioFrame, 0); <--- returns -22

  audioFrame->extended_data[0] = buffer->mBuffers[0].mData;
  audioFrame->extended_data[1] = buffer->mBuffers[1].mData;
  audioFrame->linesize[0] = buffer->mBuffers[0].mDataByteSize;

  AVFrame *otherFrame = av_frame_alloc();
  int result2 = av_frame_ref(otherFrame, audioFrame); <--- returns -22
  
  int result = av_buffersrc_write_frame(self.bufferContext, audioFrame);

Why would av_frame_get_buffer return -22? Am I not supposed to call it? What 
about write frame?


> On Nov 27, 2017, at 7:19 PM, Ronak Patel <[email protected]> 
> wrote:
> 
> Hi Paul,
> 
> Do you mind pointing me to the relevant documentation?
> 
> I tried setting up an AVFrame instance with the sample rate, channel layout 
> and data but the calls to av_frame_ref are failing with -22 errors. I’m 
> looking for any sample code that shows how to properly initialize an AVFrame 
> from an AudioBufferList.
> 
> Thanks
> 
> Ronak
> 
> Sent from my iPhone
> 
>> On Nov 26, 2017, at 2:17 PM, Paul B Mahol <[email protected]> wrote:
>> 
>>> On 11/26/17, Ronak <[email protected]> wrote:
>>> Hi,
>>> 
>>> I'm trying to build a graphic equalizer using the ffmpeg library for iOS,
>>> wrapping the AVFilter library in an AUAudioUnit.
>>> 
>>> I'm having trouble figuring out how to convert an AudioBufferList's data to
>>> an AVFilter and back. The input buffers are in stereo, so I'm also unsure
>>> how to pass in both data arrays.
>>> 
>>> Does anyone know how to do this?
>> 
>> Have you read already available documentation?
>> 
>> AVFrame stores samples for packed format into AVFrame->data[0].
>> And planar format into AVFrame->extended_data[ X ], where X is channel 
>> number.
>> _______________________________________________
>> Libav-user mailing list
>> [email protected]
>> http://ffmpeg.org/mailman/listinfo/libav-user
> 
> _______________________________________________
> Libav-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to