mirror of https://git.ffmpeg.org/ffmpeg.git
Add CODEC_CAP_EXPERIMENTAL and prefer encoders without it.
Patch by Janne Grunau, janne-ffmpeg jannau net Originally committed as revision 23334 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1ed87f800f
commit
93ebfeea90
|
@ -645,6 +645,11 @@ typedef struct RcOverride{
|
||||||
* as a last resort.
|
* as a last resort.
|
||||||
*/
|
*/
|
||||||
#define CODEC_CAP_SUBFRAMES 0x0100
|
#define CODEC_CAP_SUBFRAMES 0x0100
|
||||||
|
/**
|
||||||
|
* Codec is experimental and is thus avoided in favor of non experimental
|
||||||
|
* encoders
|
||||||
|
*/
|
||||||
|
#define CODEC_CAP_EXPERIMENTAL 0x0200
|
||||||
|
|
||||||
//The following defines may change, don't expect compatibility if you use them.
|
//The following defines may change, don't expect compatibility if you use them.
|
||||||
#define MB_TYPE_INTRA4x4 0x0001
|
#define MB_TYPE_INTRA4x4 0x0001
|
||||||
|
|
|
@ -725,14 +725,18 @@ av_cold int avcodec_close(AVCodecContext *avctx)
|
||||||
|
|
||||||
AVCodec *avcodec_find_encoder(enum CodecID id)
|
AVCodec *avcodec_find_encoder(enum CodecID id)
|
||||||
{
|
{
|
||||||
AVCodec *p;
|
AVCodec *p, *experimental=NULL;
|
||||||
p = first_avcodec;
|
p = first_avcodec;
|
||||||
while (p) {
|
while (p) {
|
||||||
if (p->encode != NULL && p->id == id)
|
if (p->encode != NULL && p->id == id) {
|
||||||
|
if (p->capabilities & CODEC_CAP_EXPERIMENTAL && !experimental) {
|
||||||
|
experimental = p;
|
||||||
|
} else
|
||||||
return p;
|
return p;
|
||||||
|
}
|
||||||
p = p->next;
|
p = p->next;
|
||||||
}
|
}
|
||||||
return NULL;
|
return experimental;
|
||||||
}
|
}
|
||||||
|
|
||||||
AVCodec *avcodec_find_encoder_by_name(const char *name)
|
AVCodec *avcodec_find_encoder_by_name(const char *name)
|
||||||
|
|
Loading…
Reference in New Issue