2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
=================================================================
Analyse du code source liée à la gestion de la mémoire FFmpeg :
Code source FFmpeg : analyse de fonction av_buffer_ref, av_buffer_unref
=================================================================
De nombreuses structures du code source de FFmpeg, telles que AVPacket et AVFrame, utilisent AVBufferRef et AVBuffer pour gérer les tampons. AVBuffer enregistre le nombre d'utilisations de ressources via la variable membre refcount et contrôle la libération des ressources. Cet article fournit une introduction aux structures AVBuffer et AVBufferRef.
AVBuffer est une interface de programmation d'application pour les tampons de données comptés par référence, qui représentent le tampon de données lui-même. Il est opaque et n'est pas directement accessible aux utilisateurs utilisant l'API FFmpeg. Les utilisateurs ne peuvent y accéder qu'indirectement via AVBufferRef. Mais vous pouvez vérifier si deux références différentes décrivent le même tampon de données en comparant deux pointeurs AVBuffer.
La structure AVBuffer est déclarée dans le fichier d'en-tête libavutil/buffer_internal.h du code source de FFmpeg (la version du code source de FFmpeg utilisée pour la démonstration dans cet article est 5.0.3) :
struct AVBuffer {
uint8_t *data; /**