美文网首页
FFMpeg 平面数据类型

FFMpeg 平面数据类型

作者: 程序员都是傻子呀 | 来源:发表于2020-03-10 23:58 被阅读0次

    定义中最后带p的为平面数据类型,可以用av_sample_fmt_is_planar来判断此数据类型是否是平面数据类型。

    先说非平面数据:
    以一个双声道(左右)音频来说,存储格式可能就为LRLRLR.........(左声道在前还是右声道在前没有认真研究过),数据都装在data[0]中,而大小则为linesize[0]。

    平面数据:
    就有点像视频部分的YUV数据,同样对双声道音频PCM数据,以S16P为例,存储就可能是
    plane 0: LLLLLLLLLLLLLLLLLLLLLLLLLL...
    plane 1: RRRRRRRRRRRRRRRRRRRR....
    对应的存储则为:
    data[0]存储plane 0
    data[1]存储plane 1

    对应的大小则都为linesize[0],可以用av_get_bytes_per_sample(out_stream->codec->sample_fmt) * out_frame->nb_samples来算出plane的大小。
    注意:当为音频的时候linesize,只有linesize[0]才是有效值,因为左右一样大。

    相关文章

      网友评论

          本文标题:FFMpeg 平面数据类型

          本文链接:https://www.haomeiwen.com/subject/ebsodhtx.html