FFmpeg AVPacket相關主要函數介紹


1.AVPacket相關函數介紹

    操作AVPacket的函數大約有30個,主要分為:AVPacket的創建初始化,AVPacket中的data數據管理(clone,free,copy),AVPacket中的side_data數據管理。

void av_init_packet(AVPacket *pkt);

      初始化packet的值為默認值,該函數不會影響data引用的數據緩存空間和size,需要單獨處理。

int av_new_packet(AVPacket *pkt, int size);

        av_init_packet的增強版,不但會初始化字段,還為data分配了存儲空間

AVPacket *av_packet_alloc(void);

          創建一個AVPacket,將其字段設為默認值(data為空,沒有數據緩存空間)。

void av_packet_free(AVPacket **pkt);

           釋放使用av_packet_alloc創建的AVPacket,如果該Packet有引用計數(packet->buf不為空),則先調用av_packet_unref。

AVPacket *av_packet_clone(const AVPacket *src);

          其功能是av_packet_alloc和av_packet_ref

int av_copy_packet(AVPacket *dst, const AVPacket *src);

         復制一個新的packet,包括數據緩存

int av_copy_packet_side_data(AVPacket *dst, const AVPacket *src);

        初始化一個引用計數的packet,並指定了其數據緩存

int av_grow_packet(AVPacket *pkt, int grow_by);

            增大Packet->data指向的數據緩存

void av_shrink_packet(AVPacket *pkt, int size);

        減小Packet->data指向的數據緩存

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM