+ if (avctx->pix_fmt == AV_PIX_FMT_GBRPF32) {
+ float *r = (float *)p->data[2];
+ float *g = (float *)p->data[0];
+ float *b = (float *)p->data[1];
+
+ for (int i = 0; i < avctx->height; i++) {
+ for (int j = 0; j < avctx->width; j++) {
+ AV_WN32(bytestream + 0, av_float2int(r[j]));
+ AV_WN32(bytestream + 4, av_float2int(g[j]));
+ AV_WN32(bytestream + 8, av_float2int(b[j]));
+ bytestream += 12;
+ }
+
+ r += p->linesize[2] / 4;
+ g += p->linesize[0] / 4;
+ b += p->linesize[1] / 4;
+ }
+ } else {