case LOCO_RGBA:
case LOCO_CRGBA: case LOCO_RGBA:
static int decode_init(AVCodecContext *avctx){    LOCOContext * const l = avctx->priv_data;    int version;    l->avctx = avctx;    if (avctx->extradata_size < 12) {        av_log(avctx, AV_LOG_ERROR, "Extradata size must be >= 12 instead of %i\n",               avctx->extradata_size);        return -1;    }    version = LE_32(avctx->extradata);    switch(version) {    case 1:        l->lossy = 0;        break;    case 2:        l->lossy = LE_32(avctx->extradata + 8);        break;    default:        l->lossy = LE_32(avctx->extradata + 8);        av_log(avctx, AV_LOG_INFO, "This is LOCO codec version %i, please upload file for study\n", version);    }        l->mode = LE_32(avctx->extradata + 4);    switch(l->mode) {    case LOCO_CYUY2: case LOCO_YUY2: case LOCO_UYVY:        avctx->pix_fmt = PIX_FMT_YUV422P;        break;    case LOCO_CRGB: case LOCO_RGB:        avctx->pix_fmt = PIX_FMT_BGR24;        break;    case LOCO_CYV12: case LOCO_YV12:        avctx->pix_fmt = PIX_FMT_YUV420P;        break;    case LOCO_RGBA:        avctx->pix_fmt = PIX_FMT_RGBA32;        break;    default:        av_log(avctx, AV_LOG_INFO, "Unknown colorspace, index = %i\n", l->mode);        return -1;    }    if(avctx->debug & FF_DEBUG_PICT_INFO)        av_log(avctx, AV_LOG_INFO, "lossy:%i, version:%i, mode: %i\n", l->lossy, version, l->mode);    return 0;}