packed:多个声道数据交错存放,所有声道的数据交错排放在frame->data[0](即frame->extended_data[0])地址处,数据长度为linesize[0](单位:字节)
planar:每个声道数据单独存放,声道0的起始地址为 frame->data[0](或frame->extended_data[0]),声道1的起始地址为 frame->data[1](或frame->extended_data[1]) . . . 每个声道的数据长度都为linesize[0](单位:字节)
判断是否是 planar类型:av_sample_fmt_is_planar(sample_fmt)
例如:
frame->format为 FLTP类型(每个sample是float类型,占4个字节)
frame->nb_samples=1024(每帧每个声道1024个采样点)
每帧每个声道占有的byte空间大小为 1024*4=4096,FLTP为planar类型,此时frame->linesize[0]理论上应为4096,但官方示例demuxing_decoding.c加日志将数据打印出来是8196,找到一个说法:linesize可能会因性能上的考虑而填充一些额外的数据,因此linesize可能比实际对应的音视频数据尺寸要大。