重采样,创建输入缓冲区的疑问
来源:8-3 实战音频重采样2

音视频雪兔
2020-12-17
av_samples_alloc_array_and_samples(src_data, //输出缓冲区地址
src_linesize, //缓冲区的大小
2, //通道个数
512, //单通道采样个数
AV_SAMPLE_FMT_FLT, //采样格式
0);
第一个参数,缓冲区地址,是一个双指针,听课里面,老师所讲,缓冲区是双指针,也就是个二维数据,第一维代表不同类别的缓冲区;
而在读取输入设备数据后,要对缓冲区进行数据copy,用的memcpy,咱们这里只进行了第一个缓冲区的数据copy,也就是src_data[0],
我的疑问是是不是只要是进行重采样,默认只操作第一个缓冲区;
如果需要操作后面的缓冲区,一般会在什么情况下,每一个缓冲区分别代表什么。
因为目前只听到该处,后面还没有听到,暂时请老师解答一下,谢谢。
写回答
2回答
-
src_data是一个指针数组,对于音频来说它只用第一个数组指针就够了;对于视频来说它会用到三个;ffmpeg 之所以要这样定义是为了更灵活的使用不同的结构类型;具体用几个有开发者自己说了算
122020-12-22 -
heaven强
2020-12-21
此问题问的很好,
00
相似问题