Berbagi teknologi

Referensi FFmpeg menghitung struktur terkait buffer data: Pengenalan AVBuffer dan AVBufferRef

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

=================================================================

Analisis kode sumber terkait manajemen memori FFmpeg:

Kode sumber terkait alokasi dan rilis memori di FFmpeg: analisis fungsi av_malloc, fungsi av_mallocz, fungsi av_free dan fungsi av_freep

Referensi FFmpeg menghitung struktur terkait buffer data: Pengenalan AVBuffer dan AVBufferRef

Kode sumber FFmpeg: buffer_create, av_buffer_create, av_buffer_default_free, av_buffer_alloc, av_buffer_allocz analisis fungsi

Kode sumber FFmpeg: av_buffer_ref, analisis fungsi av_buffer_unref

=================================================================

I. Pendahuluan

Banyak struktur dalam kode sumber FFmpeg, seperti AVPacket dan AVFrame, menggunakan AVBufferRef dan AVBuffer untuk mengelola buffer. AVBuffer mencatat jumlah penggunaan sumber daya melalui penghitungan ulang variabel anggota dan mengontrol pelepasan sumber daya. Artikel ini memberikan pengenalan tentang struktur AVBuffer dan AVBufferRef.

2. Deklarasi struktur AVBuffer

AVBuffer adalah antarmuka pemrograman aplikasi untuk buffer data yang dihitung referensi, yang mewakili buffer data itu sendiri. Itu buram dan tidak dapat diakses langsung oleh pengguna menggunakan FFmpeg API. Pengguna hanya dapat mengaksesnya secara tidak langsung melalui AVBufferRef. Namun Anda dapat memeriksa apakah dua referensi berbeda mendeskripsikan buffer data yang sama dengan membandingkan dua pointer AVBuffer.

Struktur AVBuffer dideklarasikan dalam file header libavutil/buffer_internal.h dari kode sumber FFmpeg (versi kode sumber FFmpeg yang digunakan untuk demonstrasi dalam artikel ini adalah 5.0.3):

struct AVBuffer {
    uint8_t *data; /**