2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
=================================================================
Analisi del codice sorgente relativo alla gestione della memoria di FFmpeg:
Codice sorgente FFmpeg: av_buffer_ref, analisi della funzione av_buffer_unref
=================================================================
Molte strutture nel codice sorgente di FFmpeg, come AVPacket e AVFrame, utilizzano AVBufferRef e AVBuffer per gestire i buffer. AVBuffer registra il numero di utilizzi delle risorse tramite la variabile membro refcount e controlla il rilascio delle risorse. Questo articolo fornisce un'introduzione alle strutture AVBuffer e AVBufferRef.
AVBuffer è un'interfaccia di programmazione dell'applicazione per buffer di dati con conteggio di riferimento, che rappresentano il buffer di dati stesso. È opaco e non è possibile accedervi direttamente dagli utenti che utilizzano l'API FFmpeg. Gli utenti possono accedervi solo indirettamente tramite AVBufferRef. Ma puoi verificare se due riferimenti diversi descrivono lo stesso buffer di dati confrontando due puntatori AVBuffer.
La struttura AVBuffer è dichiarata nel file di intestazione libavutil/buffer_internal.h del codice sorgente di FFmpeg (la versione del codice sorgente di FFmpeg utilizzata per la dimostrazione in questo articolo è 5.0.3):
struct AVBuffer {
uint8_t *data; /**