avcodec: prefer decoders without CODEC_CAP_EXPERIMENTAL
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
620345f930
commit
a4aa20fbdb
@ -1490,12 +1490,13 @@ av_cold int avcodec_close(AVCodecContext *avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
AVCodec *avcodec_find_encoder(enum AVCodecID id)
|
static AVCodec *find_encdec(enum AVCodecID id, int encoder)
|
||||||
{
|
{
|
||||||
AVCodec *p, *experimental = NULL;
|
AVCodec *p, *experimental = NULL;
|
||||||
p = first_avcodec;
|
p = first_avcodec;
|
||||||
while (p) {
|
while (p) {
|
||||||
if (av_codec_is_encoder(p) && p->id == id) {
|
if ((encoder ? av_codec_is_encoder(p) : av_codec_is_decoder(p)) &&
|
||||||
|
p->id == id) {
|
||||||
if (p->capabilities & CODEC_CAP_EXPERIMENTAL && !experimental) {
|
if (p->capabilities & CODEC_CAP_EXPERIMENTAL && !experimental) {
|
||||||
experimental = p;
|
experimental = p;
|
||||||
} else
|
} else
|
||||||
@ -1506,6 +1507,11 @@ AVCodec *avcodec_find_encoder(enum AVCodecID id)
|
|||||||
return experimental;
|
return experimental;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AVCodec *avcodec_find_encoder(enum AVCodecID id)
|
||||||
|
{
|
||||||
|
return find_encdec(id, 1);
|
||||||
|
}
|
||||||
|
|
||||||
AVCodec *avcodec_find_encoder_by_name(const char *name)
|
AVCodec *avcodec_find_encoder_by_name(const char *name)
|
||||||
{
|
{
|
||||||
AVCodec *p;
|
AVCodec *p;
|
||||||
@ -1522,14 +1528,7 @@ AVCodec *avcodec_find_encoder_by_name(const char *name)
|
|||||||
|
|
||||||
AVCodec *avcodec_find_decoder(enum AVCodecID id)
|
AVCodec *avcodec_find_decoder(enum AVCodecID id)
|
||||||
{
|
{
|
||||||
AVCodec *p;
|
return find_encdec(id, 0);
|
||||||
p = first_avcodec;
|
|
||||||
while (p) {
|
|
||||||
if (av_codec_is_decoder(p) && p->id == id)
|
|
||||||
return p;
|
|
||||||
p = p->next;
|
|
||||||
}
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AVCodec *avcodec_find_decoder_by_name(const char *name)
|
AVCodec *avcodec_find_decoder_by_name(const char *name)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user