[FFmpeg-devel] Official status of FFv1?

Peter B. pb
Mon Mar 22 19:24:19 CET 2010


About FFv1 and colorspaces:

I'm not quite sure how to interpret the sourcecode.
It looks like it's able to cope with several colorspaces - and although
the case-statement (in ffv1.c / line #667) looks like it groups some
colorspaces together, I propose it simply uses it to distinguish between
RGB and YUV color models (and 8/16 bit), later on at line #755.

Here's the switch-block I'm talking about:
---------------------------------------------------------
switch(avctx->pix_fmt){
    case PIX_FMT_YUV444P16:
    case PIX_FMT_YUV422P16:
    case PIX_FMT_YUV420P16:
        if(avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL){
            av_log(avctx, AV_LOG_ERROR, "More than 8 bit per component
is still experimental and no gurantee is yet made for future
compatibility\n"
               "Use vstrict=-2 / -strict -2 to use it anyway.\n");
            return -1;
        }
        if(avctx->bits_per_raw_sample <=8){
            av_log(avctx, AV_LOG_ERROR, "bits_per_raw_sample invalid\n");
            return -1;
        }
        s->version= 1;
    case PIX_FMT_YUV444P:
    case PIX_FMT_YUV422P:
    case PIX_FMT_YUV420P:
    case PIX_FMT_YUV411P:
    case PIX_FMT_YUV410P:
        s->colorspace= 0;
        break;
    case PIX_FMT_RGB32:
        s->colorspace= 1;
        break;
    default:
        av_log(avctx, AV_LOG_ERROR, "format not supported\n");
        return -1;
    }
---------------------------------------------------------

So, if I understood correctly, FFV1 *is* able to properly handle all
colorspaces mentioned in the statement above, right?


Yours,
Peter





More information about the ffmpeg-devel mailing list