Unified · Split
| @@ -1490,12 +1490,13 @@ av_cold int avcodec_close(AVCodecContext *avctx) · 1489 unmodified lines | ||
| 1490 | 1490 | return 0; |
| 1491 | 1491 | } |
| 1492 | 1492 | |
| 1493 | −AVCodec *avcodec_find_encoder(enum AVCodecID id) | |
| 1493 | +static AVCodec *find_encdec(enum AVCodecID id, int encoder) | |
| 1494 | 1494 | { |
| 1495 | 1495 | AVCodec *p, *experimental = NULL; |
| 1496 | 1496 | p = first_avcodec; |
| 1497 | 1497 | while (p) { |
| 1498 | − if (av_codec_is_encoder(p) && p->id == id) { | |
| 1498 | + if ((encoder ? av_codec_is_encoder(p) : av_codec_is_decoder(p)) && | |
| 1499 | + p->id == id) { | |
| 1499 | 1500 | if (p->capabilities & CODEC_CAP_EXPERIMENTAL && !experimental) { |
| 1500 | 1501 | experimental = p; |
| 1501 | 1502 | } else |
| @@ -1506,6 +1507,11 @@ AVCodec *avcodec_find_encoder(enum AVCodecID id) · 4 unmodified lines | ||
| 1506 | 1507 | return experimental; |
| 1507 | 1508 | } |
| 1508 | 1509 | |
| 1510 | +AVCodec *avcodec_find_encoder(enum AVCodecID id) | |
| 1511 | +{ | |
| 1512 | + return find_encdec(id, 1); | |
| 1513 | +} | |
| 1514 | + | |
| 1509 | 1515 | AVCodec *avcodec_find_encoder_by_name(const char *name) |
| 1510 | 1516 | { |
| 1511 | 1517 | AVCodec *p; |
| @@ -1522,14 +1528,7 @@ AVCodec *avcodec_find_encoder_by_name(const char *name) · 10 unmodified lines | ||
| 1522 | 1528 | |
| 1523 | 1529 | AVCodec *avcodec_find_decoder(enum AVCodecID id) |
| 1524 | 1530 | { |
| 1525 | − AVCodec *p; | |
| 1526 | − p = first_avcodec; | |
| 1527 | − while (p) { | |
| 1528 | − if (av_codec_is_decoder(p) && p->id == id) | |
| 1529 | − return p; | |
| 1530 | − p = p->next; | |
| 1531 | − } | |
| 1532 | − return NULL; | |
| 1531 | + return find_encdec(id, 0); | |
| 1533 | 1532 | } |
| 1534 | 1533 | |
| 1535 | 1534 | AVCodec *avcodec_find_decoder_by_name(const char *name) |