| 577 | } |
| 578 | |
| 579 | int show_help(void *optctx, const char *opt, const char *arg) |
| 580 | { |
| 581 | char *topic, *par; |
| 582 | av_log_set_callback(log_callback_help); |
| 583 | |
| 584 | topic = av_strdup(arg ? arg : ""); |
| 585 | if (!topic) |
| 586 | return AVERROR(ENOMEM); |
| 587 | par = strchr(topic, '='); |
| 588 | if (par) |
| 589 | *par++ = 0; |
| 590 | |
| 591 | if (!*topic) { |
| 592 | show_help_default(topic, par); |
| 593 | } else if (!strcmp(topic, "decoder")) { |
| 594 | show_help_codec(par, 0); |
| 595 | } else if (!strcmp(topic, "encoder")) { |
| 596 | show_help_codec(par, 1); |
| 597 | } else if (!strcmp(topic, "demuxer")) { |
| 598 | show_help_demuxer(par); |
| 599 | } else if (!strcmp(topic, "muxer")) { |
| 600 | show_help_muxer(par); |
| 601 | } else if (!strcmp(topic, "protocol")) { |
| 602 | show_help_protocol(par); |
| 603 | #if CONFIG_AVFILTER |
| 604 | } else if (!strcmp(topic, "filter")) { |
| 605 | show_help_filter(par); |
| 606 | #endif |
| 607 | } else if (!strcmp(topic, "bsf")) { |
| 608 | show_help_bsf(par); |
| 609 | } else { |
| 610 | show_help_default(topic, par); |
| 611 | } |
| 612 | |
| 613 | av_freep(&topic); |
| 614 | return 0; |
| 615 | } |
| 616 | |
| 617 | static void print_codecs_for_id(enum AVCodecID id, int encoder) |
| 618 | { |
nothing calls this directly
no test coverage detected