2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
=================================================================
Análise de código-fonte relacionada ao gerenciamento de memória FFmpeg:
Código fonte FFmpeg: análise da função av_buffer_ref, av_buffer_unref
=================================================================
Muitas estruturas no código-fonte do FFmpeg, como AVPacket e AVFrame, usam AVBufferRef e AVBuffer para gerenciar buffers. AVBuffer registra o número de usos de recursos por meio da variável de membro refcount e controla a liberação de recursos. Este artigo fornece uma introdução às estruturas AVBuffer e AVBufferRef.
AVBuffer é uma interface de programação de aplicativos para buffers de dados contados por referência, que representam o próprio buffer de dados. É opaco e não pode ser acessado diretamente pelos usuários que usam a API FFmpeg. Os usuários só podem acessá-lo indiretamente por meio do AVBufferRef. Mas você pode verificar se duas referências diferentes descrevem o mesmo buffer de dados comparando dois ponteiros AVBuffer.
A estrutura AVBuffer é declarada no arquivo de cabeçalho libavutil/buffer_internal.h do código-fonte do FFmpeg (a versão do código-fonte do FFmpeg usada para demonstração neste artigo é 5.0.3):
struct AVBuffer {
uint8_t *data; /**