ffmpeg AVFrame récupère toutes les données décodées en char *

Je récupère les frameworks en boucle et je les décode avec ffmpeg qui obtient AVFrame comme résultat.

Je dois donc obtenir les données de pixel nécessaires de frame en char * et donner comme paramètre de fonction de rappel. Alors, comment puis-je générer un tel tableau char *? Sur Internet, j’ai vu des exemples tels que:

for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);}

ou quelque chose comme ça. Est-ce vrai? Et quelle taille serait mon omble *? Comme je vois nous écrivons width * 3 * height octets?

 for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile); } 

Oui c’est correct.
Cela consiste à écrire une ligne de 3 octets / pixel (probablement RVB) à partir du pointeur AVFrame-> data.

ps. La raison pour cela est que le début de chaque ligne de données commence sur une nouvelle limite de mémoire de 4 octets – l’ordinateur est plus efficace pour accéder à la mémoire par multiples de 32 bits (4 octets). Ainsi, si votre taille en pixels (3 octets) et votre largeur ne sont pas un multiple de 4, vous devez le faire plutôt que de simplement copier la width*height*3 octets de données.