| 637 | } |
| 638 | |
| 639 | static int get_codecs_sorted(const AVCodecDescriptor ***rcodecs) |
| 640 | { |
| 641 | const AVCodecDescriptor *desc = NULL; |
| 642 | const AVCodecDescriptor **codecs; |
| 643 | unsigned nb_codecs = 0, i = 0; |
| 644 | |
| 645 | while ((desc = avcodec_descriptor_next(desc))) |
| 646 | nb_codecs++; |
| 647 | if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs)))) |
| 648 | return AVERROR(ENOMEM); |
| 649 | desc = NULL; |
| 650 | while ((desc = avcodec_descriptor_next(desc))) |
| 651 | codecs[i++] = desc; |
| 652 | av_assert0(i == nb_codecs); |
| 653 | qsort(codecs, nb_codecs, sizeof(*codecs), compare_codec_desc); |
| 654 | *rcodecs = codecs; |
| 655 | return nb_codecs; |
| 656 | } |
| 657 | |
| 658 | static char get_media_type_char(enum AVMediaType type) |
| 659 | { |
no test coverage detected