AVPicture結構體分析

/**
 * Picture data structure.
 *
 * Up to four components can be stored into it, the last component is
 * alpha.
 */
typedef struct AVPicture {
    uint8_t *data[AV_NUM_DATA_POINTERS];    ///< pointers to the image data planes
    int linesize[AV_NUM_DATA_POINTERS];     ///< number of bytes per line
} AVPicture;

avcodec.h頭文件中的定義。其中的AV_NUM_DATA_POINTERS在AVFrame的結構體定義中定義以下: 數組

typedef struct AVFrame {
#define AV_NUM_DATA_POINTERS 8
……

那麼AVPicture結構體中保存兩個東西: 函數

1 data指針數組(8個元素的數組)(數組的每個元素都是一個uint8_t類型的指針); ui

2 linesize數組(8個元素的數組),(每一行的字節數); 指針

 分析這個結構體最重要的一點就是:AVFrame和AVPicture的關係,AVPicture結構體的成員就是AVFrame結構體的強兩個成員,這樣在一些函數中就能夠直接經過AVPicture結構體指針去訪問AVFrame結構體變量。能夠進行類型轉換。 code

相關文章
相關標籤/搜索