|
@@ -725,14 +725,18 @@ av_cold int avcodec_close(AVCodecContext *avctx)
|
|
|
|
|
|
AVCodec *avcodec_find_encoder(enum CodecID id)
|
|
|
{
|
|
|
- AVCodec *p;
|
|
|
+ AVCodec *p, *experimental=NULL;
|
|
|
p = first_avcodec;
|
|
|
while (p) {
|
|
|
- if (p->encode != NULL && p->id == id)
|
|
|
- return p;
|
|
|
+ if (p->encode != NULL && p->id == id) {
|
|
|
+ if (p->capabilities & CODEC_CAP_EXPERIMENTAL && !experimental) {
|
|
|
+ experimental = p;
|
|
|
+ } else
|
|
|
+ return p;
|
|
|
+ }
|
|
|
p = p->next;
|
|
|
}
|
|
|
- return NULL;
|
|
|
+ return experimental;
|
|
|
}
|
|
|
|
|
|
AVCodec *avcodec_find_encoder_by_name(const char *name)
|