static int config_props_output(AVFilterLink *outlink)
{
    AVFilterContext *ctx = outlink->src;
    TransContext *trans = ctx->priv;
    AVFilterLink *inlink = ctx->inputs[0];
    const AVPixFmtDescriptor *desc_out = av_pix_fmt_desc_get(outlink->format);
    const AVPixFmtDescriptor *desc_in  = av_pix_fmt_desc_get(inlink->format);
    trans->hsub = desc_in->log2_chroma_w;
    trans->vsub = desc_in->log2_chroma_h;
    av_image_fill_max_pixsteps(trans->pixsteps, NULL, desc_out);
    outlink->w = inlink->h;
    outlink->h = inlink->w;
    if (inlink->sample_aspect_ratio.num)
        outlink->sample_aspect_ratio = av_div_q((AVRational) { 1, 1 },
                                                inlink->sample_aspect_ratio);
    else
        outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;
    av_log(ctx, AV_LOG_VERBOSE,
           "w:%d h:%d dir:%d -> w:%d h:%d rotation:%s vflip:%d\n",
           inlink->w, inlink->h, trans->dir, outlink->w, outlink->h,
           trans->dir == 1 || trans->dir == 3 ? "clockwise" : "counterclockwise",
           trans->dir == 0 || trans->dir == 3);
    return 0;
}
['static int config_props_output(AVFilterLink *outlink)\n{\n    AVFilterContext *ctx = outlink->src;\n    TransContext *trans = ctx->priv;\n    AVFilterLink *inlink = ctx->inputs[0];\n    const AVPixFmtDescriptor *desc_out = av_pix_fmt_desc_get(outlink->format);\n    const AVPixFmtDescriptor *desc_in  = av_pix_fmt_desc_get(inlink->format);\n    trans->hsub = desc_in->log2_chroma_w;\n    trans->vsub = desc_in->log2_chroma_h;\n    av_image_fill_max_pixsteps(trans->pixsteps, NULL, desc_out);\n    outlink->w = inlink->h;\n    outlink->h = inlink->w;\n    if (inlink->sample_aspect_ratio.num)\n        outlink->sample_aspect_ratio = av_div_q((AVRational) { 1, 1 },\n                                                inlink->sample_aspect_ratio);\n    else\n        outlink->sample_aspect_ratio = inlink->sample_aspect_ratio;\n    av_log(ctx, AV_LOG_VERBOSE,\n           "w:%d h:%d dir:%d -> w:%d h:%d rotation:%s vflip:%d\\n",\n           inlink->w, inlink->h, trans->dir, outlink->w, outlink->h,\n           trans->dir == 1 || trans->dir == 3 ? "clockwise" : "counterclockwise",\n           trans->dir == 0 || trans->dir == 3);\n    return 0;\n}', 'const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt)\n{\n    if (pix_fmt < 0 || pix_fmt >= AV_PIX_FMT_NB)\n        return NULL;\n    return &av_pix_fmt_descriptors[pix_fmt];\n}']