Extraiga los valores RGB de un AVFrame (FFMPEG) en C ++

Actualmente estoy intentando leer en marcos de video usando FFMPEG. El formato es PIX_FMT_RGB24; Para cada cuadro, los valores RGB se combinan todos juntos en cuadro-> datos [0] (donde el cuadro es del tipo AVFrame).

¿Cómo extraigo los valores individuales de R, G y B para cada cuadro? Esto es para procesar el video. Pensaría que funcionaría de la misma manera que extraer los valores RGB de un bitmap también. ¡Gracias!

Mi conjetura:

int p=x*3+y*frame->linesize[0]; r=frame->data[0][p]; g=frame->data[0][p+1]; b=frame->data[0][p+2]; 

Podría tener r, g, y b al revés. Y hay mucho espacio para acelerar.