static void print_codec(const AVCodec *c)

{

    int encoder = av_codec_is_encoder(c);



    printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name,

           c->long_name ? c->long_name : "");



    printf("    General capabilities: ");

    if (c->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)

        printf("horizband ");

    if (c->capabilities & AV_CODEC_CAP_DR1)

        printf("dr1 ");

    if (c->capabilities & AV_CODEC_CAP_TRUNCATED)

        printf("trunc ");

    if (c->capabilities & AV_CODEC_CAP_DELAY)

        printf("delay ");

    if (c->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME)

        printf("small ");

    if (c->capabilities & AV_CODEC_CAP_SUBFRAMES)

        printf("subframes ");

    if (c->capabilities & AV_CODEC_CAP_EXPERIMENTAL)

        printf("exp ");

    if (c->capabilities & AV_CODEC_CAP_CHANNEL_CONF)

        printf("chconf ");

    if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("small ");

    if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("variable ");

    if (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                           AV_CODEC_CAP_SLICE_THREADS |

                           AV_CODEC_CAP_AUTO_THREADS))

        printf("threads ");

    if (!c->capabilities)

        printf("none");

    printf("\n");



    if (c->type == AVMEDIA_TYPE_VIDEO) {

        printf("    Threading capabilities: ");

        switch (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                                   AV_CODEC_CAP_SLICE_THREADS |

                                   AV_CODEC_CAP_AUTO_THREADS)) {

        case AV_CODEC_CAP_FRAME_THREADS |

             AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;

        case AV_CODEC_CAP_FRAME_THREADS: printf("frame");           break;

        case AV_CODEC_CAP_SLICE_THREADS: printf("slice");           break;

        case AV_CODEC_CAP_AUTO_THREADS : printf("auto");            break;

        default:                         printf("none");            break;

        }

        printf("\n");

    }



    if (c->supported_framerates) {

        const AVRational *fps = c->supported_framerates;



        printf("    Supported framerates:");

        while (fps->num) {

            printf(" %d/%d", fps->num, fps->den);

            fps++;

        }

        printf("\n");

    }

    PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats",

                          AV_PIX_FMT_NONE, GET_PIX_FMT_NAME);

    PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0,

                          GET_SAMPLE_RATE_NAME);

    PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats",

                          AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME);

    PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts",

                          0, GET_CH_LAYOUT_DESC);



    if (c->priv_class) {

        show_help_children(c->priv_class,

                           AV_OPT_FLAG_ENCODING_PARAM |

                           AV_OPT_FLAG_DECODING_PARAM);

    }

}

static void print_codec(const AVCodec *c)

{

    int encoder = av_codec_is_encoder(c);



    printf("%s %s [%s]:\n", encoder ? "Encoder" : "Decoder", c->name,

           c->long_name ? c->long_name : "");



    printf("    General capabilities: ");

    if (c->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)

        printf("horizband ");

    if (c->capabilities & AV_CODEC_CAP_DR1)

        printf("dr1 ");

    if (c->capabilities & AV_CODEC_CAP_TRUNCATED)

        printf("trunc ");

    if (c->capabilities & AV_CODEC_CAP_DELAY)

        printf("delay ");

    if (c->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME)

        printf("small ");

    if (c->capabilities & AV_CODEC_CAP_SUBFRAMES)

        printf("subframes ");

    if (c->capabilities & AV_CODEC_CAP_EXPERIMENTAL)

        printf("exp ");

    if (c->capabilities & AV_CODEC_CAP_CHANNEL_CONF)

        printf("chconf ");

    if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("small ");

    if (c->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("variable ");

    if (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                           AV_CODEC_CAP_SLICE_THREADS |

                           AV_CODEC_CAP_AUTO_THREADS))

        printf("threads ");

    if (!c->capabilities)

        printf("none");

    printf("\n");



    if (c->type == AVMEDIA_TYPE_VIDEO) {

        printf("    Threading capabilities: ");

        switch (c->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                                   AV_CODEC_CAP_SLICE_THREADS |

                                   AV_CODEC_CAP_AUTO_THREADS)) {

        case AV_CODEC_CAP_FRAME_THREADS |

             AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;

        case AV_CODEC_CAP_FRAME_THREADS: printf("frame");           break;

        case AV_CODEC_CAP_SLICE_THREADS: printf("slice");           break;

        case AV_CODEC_CAP_AUTO_THREADS : printf("auto");            break;

        default:                         printf("none");            break;

        }

        printf("\n");

    }



    if (c->supported_framerates) {

        const AVRational *fps = c->supported_framerates;



        printf("    Supported framerates:");

        while (fps->num) {

            printf(" %d/%d", fps->num, fps->den);

            fps++;

        }

        printf("\n");

    }

    PRINT_CODEC_SUPPORTED(c, pix_fmts, enum AVPixelFormat, "pixel formats",

                          AV_PIX_FMT_NONE, GET_PIX_FMT_NAME);

    PRINT_CODEC_SUPPORTED(c, supported_samplerates, int, "sample rates", 0,

                          GET_SAMPLE_RATE_NAME);

    PRINT_CODEC_SUPPORTED(c, sample_fmts, enum AVSampleFormat, "sample formats",

                          AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME);

    PRINT_CODEC_SUPPORTED(c, channel_layouts, uint64_t, "channel layouts",

                          0, GET_CH_LAYOUT_DESC);



    if (c->priv_class) {

        show_help_children(c->priv_class,

                           AV_OPT_FLAG_ENCODING_PARAM |

                           AV_OPT_FLAG_DECODING_PARAM);

    }

}

static void FUNC_0(const AVCodec *VAR_0)

{

    int VAR_1 = av_codec_is_encoder(VAR_0);



    printf("%s %s [%s]:\n", VAR_1 ? "Encoder" : "Decoder", VAR_0->name,

           VAR_0->long_name ? VAR_0->long_name : "");



    printf("    General capabilities: ");

    if (VAR_0->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)

        printf("horizband ");

    if (VAR_0->capabilities & AV_CODEC_CAP_DR1)

        printf("dr1 ");

    if (VAR_0->capabilities & AV_CODEC_CAP_TRUNCATED)

        printf("trunc ");

    if (VAR_0->capabilities & AV_CODEC_CAP_DELAY)

        printf("delay ");

    if (VAR_0->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME)

        printf("small ");

    if (VAR_0->capabilities & AV_CODEC_CAP_SUBFRAMES)

        printf("subframes ");

    if (VAR_0->capabilities & AV_CODEC_CAP_EXPERIMENTAL)

        printf("exp ");

    if (VAR_0->capabilities & AV_CODEC_CAP_CHANNEL_CONF)

        printf("chconf ");

    if (VAR_0->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("small ");

    if (VAR_0->capabilities & AV_CODEC_CAP_PARAM_CHANGE)

        printf("variable ");

    if (VAR_0->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                           AV_CODEC_CAP_SLICE_THREADS |

                           AV_CODEC_CAP_AUTO_THREADS))

        printf("threads ");

    if (!VAR_0->capabilities)

        printf("none");

    printf("\n");



    if (VAR_0->type == AVMEDIA_TYPE_VIDEO) {

        printf("    Threading capabilities: ");

        switch (VAR_0->capabilities & (AV_CODEC_CAP_FRAME_THREADS |

                                   AV_CODEC_CAP_SLICE_THREADS |

                                   AV_CODEC_CAP_AUTO_THREADS)) {

        case AV_CODEC_CAP_FRAME_THREADS |

             AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break;

        case AV_CODEC_CAP_FRAME_THREADS: printf("frame");           break;

        case AV_CODEC_CAP_SLICE_THREADS: printf("slice");           break;

        case AV_CODEC_CAP_AUTO_THREADS : printf("auto");            break;

        default:                         printf("none");            break;

        }

        printf("\n");

    }



    if (VAR_0->supported_framerates) {

        const AVRational *VAR_2 = VAR_0->supported_framerates;



        printf("    Supported framerates:");

        while (VAR_2->num) {

            printf(" %d/%d", VAR_2->num, VAR_2->den);

            VAR_2++;

        }

        printf("\n");

    }

    PRINT_CODEC_SUPPORTED(VAR_0, pix_fmts, enum AVPixelFormat, "pixel formats",

                          AV_PIX_FMT_NONE, GET_PIX_FMT_NAME);

    PRINT_CODEC_SUPPORTED(VAR_0, supported_samplerates, int, "sample rates", 0,

                          GET_SAMPLE_RATE_NAME);

    PRINT_CODEC_SUPPORTED(VAR_0, sample_fmts, enum AVSampleFormat, "sample formats",

                          AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME);

    PRINT_CODEC_SUPPORTED(VAR_0, channel_layouts, uint64_t, "channel layouts",

                          0, GET_CH_LAYOUT_DESC);



    if (VAR_0->priv_class) {

        show_help_children(VAR_0->priv_class,

                           AV_OPT_FLAG_ENCODING_PARAM |

                           AV_OPT_FLAG_DECODING_PARAM);

    }

}

static void FUNC_0(const AVCodec *VAR_0)
{ int VAR_1 = av_codec_is_encoder(VAR_0); printf("%s %s [%s]:\n", VAR_1 ? "Encoder" : "Decoder", VAR_0->name,
VAR_0->long_name ? VAR_0->long_name : ""); printf("    General capabilities: "); if (VAR_0->capabilities & AV_CODEC_CAP_DRAW_HORIZ_BAND)
printf("horizband "); if (VAR_0->capabilities & AV_CODEC_CAP_DR1)
printf("dr1 "); if (VAR_0->capabilities & AV_CODEC_CAP_TRUNCATED)
printf("trunc "); if (VAR_0->capabilities & AV_CODEC_CAP_DELAY)
printf("delay "); if (VAR_0->capabilities & AV_CODEC_CAP_SMALL_LAST_FRAME)
printf("small "); if (VAR_0->capabilities & AV_CODEC_CAP_SUBFRAMES)
printf("subframes "); if (VAR_0->capabilities & AV_CODEC_CAP_EXPERIMENTAL)
printf("exp "); if (VAR_0->capabilities & AV_CODEC_CAP_CHANNEL_CONF)
printf("chconf "); if (VAR_0->capabilities & AV_CODEC_CAP_PARAM_CHANGE)
printf("small "); if (VAR_0->capabilities & AV_CODEC_CAP_PARAM_CHANGE)
printf("variable "); if (VAR_0->capabilities & (AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_AUTO_THREADS))
printf("threads "); if (!VAR_0->capabilities)
printf("none"); printf("\n"); if (VAR_0->type == AVMEDIA_TYPE_VIDEO) { printf("    Threading capabilities: "); switch (VAR_0->capabilities & (AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS |
AV_CODEC_CAP_AUTO_THREADS)) { case AV_CODEC_CAP_FRAME_THREADS |
AV_CODEC_CAP_SLICE_THREADS: printf("frame and slice"); break; case AV_CODEC_CAP_FRAME_THREADS: printf("frame");           break; case AV_CODEC_CAP_SLICE_THREADS: printf("slice");           break; case AV_CODEC_CAP_AUTO_THREADS : printf("auto");            break; default:                         printf("none");            break; } printf("\n"); } if (VAR_0->supported_framerates) { const AVRational *VAR_2 = VAR_0->supported_framerates; printf("    Supported framerates:"); while (VAR_2->num) { printf(" %d/%d", VAR_2->num, VAR_2->den); VAR_2++; } printf("\n"); } PRINT_CODEC_SUPPORTED(VAR_0, pix_fmts, enum AVPixelFormat, "pixel formats",
AV_PIX_FMT_NONE, GET_PIX_FMT_NAME); PRINT_CODEC_SUPPORTED(VAR_0, supported_samplerates, int, "sample rates", 0,
GET_SAMPLE_RATE_NAME); PRINT_CODEC_SUPPORTED(VAR_0, sample_fmts, enum AVSampleFormat, "sample formats",
AV_SAMPLE_FMT_NONE, GET_SAMPLE_FMT_NAME); PRINT_CODEC_SUPPORTED(VAR_0, channel_layouts, uint64_t, "channel layouts",
0, GET_CH_LAYOUT_DESC); if (VAR_0->priv_class) { show_help_children(VAR_0->priv_class,
AV_OPT_FLAG_ENCODING_PARAM |
AV_OPT_FLAG_DECODING_PARAM); } }