[Libav-user] AudioToolbox AudioBufferList to/from AVFilter

Paul B Mahol onemda at gmail.com
Tue Nov 28 18:58:51 EET 2017


On 11/28/17, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> wrote:
> 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

You nowhere set sample format.

>
>   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
>> <ronak2121-at-yahoo.com at ffmpeg.org> 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 <onemda at gmail.com> wrote:
>>>
>>>> On 11/26/17, Ronak <ronak2121-at-yahoo.com at ffmpeg.org> 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
>>> Libav-user at ffmpeg.org
>>> http://ffmpeg.org/mailman/listinfo/libav-user
>>
>> _______________________________________________
>> Libav-user mailing list
>> Libav-user at ffmpeg.org
>> http://ffmpeg.org/mailman/listinfo/libav-user
>
>


More information about the Libav-user mailing list