+ case 121:
+ s->avctx->pix_fmt = AV_PIX_FMT_GRAY12;
+ break;
+ case 10081:
+ switch (AV_RL32(s->pattern)) {
+ case 0x02010100:
+ s->avctx->pix_fmt = AV_PIX_FMT_BAYER_RGGB8;
+ break;
+ case 0x00010102:
+ s->avctx->pix_fmt = AV_PIX_FMT_BAYER_BGGR8;
+ break;
+ case 0x01000201:
+ s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GBRG8;
+ break;
+ case 0x01020001:
+ s->avctx->pix_fmt = AV_PIX_FMT_BAYER_GRBG8;
+ break;
+ default:
+ av_log(s->avctx, AV_LOG_ERROR, "Unsupported Bayer pattern: 0x%X\n",
+ AV_RL32(s->pattern));
+ return AVERROR_PATCHWELCOME;
+ }
+ break;
+ case 10121:
+ switch (AV_RL32(s->pattern)) {
+ case 0x02010100:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_RGGB16LE : AV_PIX_FMT_BAYER_RGGB16BE;
+ break;
+ case 0x00010102:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_BGGR16LE : AV_PIX_FMT_BAYER_BGGR16BE;
+ break;
+ case 0x01000201:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_GBRG16LE : AV_PIX_FMT_BAYER_GBRG16BE;
+ break;
+ case 0x01020001:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_GRBG16LE : AV_PIX_FMT_BAYER_GRBG16BE;
+ break;
+ default:
+ av_log(s->avctx, AV_LOG_ERROR, "Unsupported Bayer pattern: 0x%X\n",
+ AV_RL32(s->pattern));
+ return AVERROR_PATCHWELCOME;
+ }
+ break;
+ case 10161:
+ switch (AV_RL32(s->pattern)) {
+ case 0x02010100:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_RGGB16LE : AV_PIX_FMT_BAYER_RGGB16BE;
+ break;
+ case 0x00010102:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_BGGR16LE : AV_PIX_FMT_BAYER_BGGR16BE;
+ break;
+ case 0x01000201:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_GBRG16LE : AV_PIX_FMT_BAYER_GBRG16BE;
+ break;
+ case 0x01020001:
+ s->avctx->pix_fmt = s->le ? AV_PIX_FMT_BAYER_GRBG16LE : AV_PIX_FMT_BAYER_GRBG16BE;
+ break;
+ default:
+ av_log(s->avctx, AV_LOG_ERROR, "Unsupported Bayer pattern: 0x%X\n",
+ AV_RL32(s->pattern));
+ return AVERROR_PATCHWELCOME;
+ }
+ break;