and options. Keep old options until next major version bump. Patch by Rodney Baker, rodney d baker a iinet d net d au Originally committed as revision 24021 to svn://svn.ffmpeg.org/ffmpeg/trunktags/n0.8
@@ -17,7 +17,7 @@ version <next>: | |||||
- native VP8 decoder | - native VP8 decoder | ||||
- RTSP tunneling over HTTP | - RTSP tunneling over HTTP | ||||
- RTP depacketization of SVQ3 | - RTP depacketization of SVQ3 | ||||
- -strict inofficial replaced by -strict unofficial | |||||
version 0.6: | version 0.6: | ||||
@@ -12,6 +12,9 @@ libavutil: 2009-03-08 | |||||
API changes, most recent first: | API changes, most recent first: | ||||
2010-06-29 - r23885 - lavc 52.79.0 | |||||
Added FF_COMPLIANCE_UNOFFICIAL and changed all instances of FF_COMPLIANCE_INOFFICIAL to use FF_COMPLIANCE_UNOFFICIAL | |||||
2010-06-28 - r23835 - lavfi 1.20.1 - av_parse_color() | 2010-06-28 - r23835 - lavfi 1.20.1 - av_parse_color() | ||||
Extend av_parse_color() syntax, make it accept an alpha value specifier and | Extend av_parse_color() syntax, make it accept an alpha value specifier and | ||||
set the alpha value to 255 by default. | set the alpha value to 255 by default. | ||||
@@ -688,7 +688,7 @@ static void choose_pixel_fmt(AVStream *st, AVCodec *codec) | |||||
} | } | ||||
if(*p == -1 | if(*p == -1 | ||||
&& !( st->codec->codec_id==CODEC_ID_MJPEG | && !( st->codec->codec_id==CODEC_ID_MJPEG | ||||
&& st->codec->strict_std_compliance <= FF_COMPLIANCE_INOFFICIAL | |||||
&& st->codec->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL | |||||
&& ( st->codec->pix_fmt == PIX_FMT_YUV420P | && ( st->codec->pix_fmt == PIX_FMT_YUV420P | ||||
|| st->codec->pix_fmt == PIX_FMT_YUV422P))) | || st->codec->pix_fmt == PIX_FMT_YUV422P))) | ||||
st->codec->pix_fmt = codec->pix_fmts[0]; | st->codec->pix_fmt = codec->pix_fmts[0]; | ||||
@@ -30,7 +30,7 @@ | |||||
#include "libavutil/avutil.h" | #include "libavutil/avutil.h" | ||||
#define LIBAVCODEC_VERSION_MAJOR 52 | #define LIBAVCODEC_VERSION_MAJOR 52 | ||||
#define LIBAVCODEC_VERSION_MINOR 78 | |||||
#define LIBAVCODEC_VERSION_MINOR 79 | |||||
#define LIBAVCODEC_VERSION_MICRO 1 | #define LIBAVCODEC_VERSION_MICRO 1 | ||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ | ||||
@@ -1352,10 +1352,10 @@ typedef struct AVCodecContext { | |||||
* - encoding: Set by user. | * - encoding: Set by user. | ||||
* - decoding: Set by user. | * - decoding: Set by user. | ||||
* Setting this to STRICT or higher means the encoder and decoder will | * Setting this to STRICT or higher means the encoder and decoder will | ||||
* generally do stupid things, whereas setting it to inofficial or lower | |||||
* generally do stupid things, whereas setting it to unofficial or lower | |||||
* will mean the encoder might produce output that is not supported by all | * will mean the encoder might produce output that is not supported by all | ||||
* spec-compliant decoders. Decoders don't differentiate between normal, | * spec-compliant decoders. Decoders don't differentiate between normal, | ||||
* inofficial and experimental (that is, they always try to decode things | |||||
* unofficial and experimental (that is, they always try to decode things | |||||
* when they can) unless they are explicitly asked to behave stupidly | * when they can) unless they are explicitly asked to behave stupidly | ||||
* (=strictly conform to the specs) | * (=strictly conform to the specs) | ||||
*/ | */ | ||||
@@ -1363,7 +1363,10 @@ typedef struct AVCodecContext { | |||||
#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. | #define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. | ||||
#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. | #define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. | ||||
#define FF_COMPLIANCE_NORMAL 0 | #define FF_COMPLIANCE_NORMAL 0 | ||||
#define FF_COMPLIANCE_INOFFICIAL -1 ///< Allow inofficial extensions. | |||||
#if LIBAVCODEC_VERSION_MAJOR < 53 | |||||
#define FF_COMPLIANCE_INOFFICIAL -1 ///< Allow inofficial extensions (deprecated - use FF_COMPLIANCE_UNOFFICIAL instead). | |||||
#endif | |||||
#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions | |||||
#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. | #define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. | ||||
/** | /** | ||||
@@ -54,7 +54,7 @@ static av_cold int libgsm_init(AVCodecContext *avctx) { | |||||
if (avctx->sample_rate != 8000) { | if (avctx->sample_rate != 8000) { | ||||
av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n", | av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n", | ||||
avctx->sample_rate); | avctx->sample_rate); | ||||
if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL) | |||||
if(avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) | |||||
return -1; | return -1; | ||||
} | } | ||||
if (avctx->bit_rate != 13000 /* Official */ && | if (avctx->bit_rate != 13000 /* Official */ && | ||||
@@ -62,7 +62,7 @@ static av_cold int libgsm_init(AVCodecContext *avctx) { | |||||
avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) { | avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) { | ||||
av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n", | av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n", | ||||
avctx->bit_rate); | avctx->bit_rate); | ||||
if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL) | |||||
if(avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) | |||||
return -1; | return -1; | ||||
} | } | ||||
} | } | ||||
@@ -119,7 +119,7 @@ static int find_frame_rate_index(MpegEncContext *s){ | |||||
for(i=1;i<14;i++) { | for(i=1;i<14;i++) { | ||||
int64_t n0= 1001LL/ff_frame_rate_tab[i].den*ff_frame_rate_tab[i].num*s->avctx->time_base.num; | int64_t n0= 1001LL/ff_frame_rate_tab[i].den*ff_frame_rate_tab[i].num*s->avctx->time_base.num; | ||||
int64_t n1= 1001LL*s->avctx->time_base.den; | int64_t n1= 1001LL*s->avctx->time_base.den; | ||||
if(s->avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL && i>=9) break; | |||||
if(s->avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL && i>=9) break; | |||||
d = FFABS(n0 - n1); | d = FFABS(n0 - n1); | ||||
if(d < dmin){ | if(d < dmin){ | ||||
@@ -254,7 +254,7 @@ av_cold int MPV_encode_init(AVCodecContext *avctx) | |||||
case CODEC_ID_LJPEG: | case CODEC_ID_LJPEG: | ||||
case CODEC_ID_MJPEG: | case CODEC_ID_MJPEG: | ||||
if(avctx->pix_fmt != PIX_FMT_YUVJ420P && avctx->pix_fmt != PIX_FMT_YUVJ422P && avctx->pix_fmt != PIX_FMT_RGB32 && | if(avctx->pix_fmt != PIX_FMT_YUVJ420P && avctx->pix_fmt != PIX_FMT_YUVJ422P && avctx->pix_fmt != PIX_FMT_RGB32 && | ||||
((avctx->pix_fmt != PIX_FMT_YUV420P && avctx->pix_fmt != PIX_FMT_YUV422P) || avctx->strict_std_compliance>FF_COMPLIANCE_INOFFICIAL)){ | |||||
((avctx->pix_fmt != PIX_FMT_YUV420P && avctx->pix_fmt != PIX_FMT_YUV422P) || avctx->strict_std_compliance>FF_COMPLIANCE_UNOFFICIAL)){ | |||||
av_log(avctx, AV_LOG_ERROR, "colorspace not supported in jpeg\n"); | av_log(avctx, AV_LOG_ERROR, "colorspace not supported in jpeg\n"); | ||||
return -1; | return -1; | ||||
} | } | ||||
@@ -160,7 +160,10 @@ static const AVOption options[]={ | |||||
{"very", "strictly conform to a older more strict version of the spec or reference software", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_VERY_STRICT, INT_MIN, INT_MAX, V|D|E, "strict"}, | {"very", "strictly conform to a older more strict version of the spec or reference software", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_VERY_STRICT, INT_MIN, INT_MAX, V|D|E, "strict"}, | ||||
{"strict", "strictly conform to all the things in the spec no matter what consequences", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_STRICT, INT_MIN, INT_MAX, V|D|E, "strict"}, | {"strict", "strictly conform to all the things in the spec no matter what consequences", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_STRICT, INT_MIN, INT_MAX, V|D|E, "strict"}, | ||||
{"normal", NULL, 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_NORMAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | {"normal", NULL, 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_NORMAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | ||||
{"inofficial", "allow unofficial extensions", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_INOFFICIAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | |||||
#if LIBAVCODEC_VERSION_MAJOR < 53 | |||||
{"inofficial", "allow unofficial extensions (deprecated - use unofficial)", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_UNOFFICIAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | |||||
#endif | |||||
{"unofficial", "allow unofficial extensions", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_UNOFFICIAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | |||||
{"experimental", "allow non standardized experimental things", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_EXPERIMENTAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | {"experimental", "allow non standardized experimental things", 0, FF_OPT_TYPE_CONST, FF_COMPLIANCE_EXPERIMENTAL, INT_MIN, INT_MAX, V|D|E, "strict"}, | ||||
{"b_qoffset", "qp offset between P and B frames", OFFSET(b_quant_offset), FF_OPT_TYPE_FLOAT, 1.25, -FLT_MAX, FLT_MAX, V|E}, | {"b_qoffset", "qp offset between P and B frames", OFFSET(b_quant_offset), FF_OPT_TYPE_FLOAT, 1.25, -FLT_MAX, FLT_MAX, V|E}, | ||||
{"er", "set error detection aggressivity", OFFSET(error_recognition), FF_OPT_TYPE_INT, FF_ER_CAREFUL, INT_MIN, INT_MAX, A|V|D, "er"}, | {"er", "set error detection aggressivity", OFFSET(error_recognition), FF_OPT_TYPE_INT, FF_ER_CAREFUL, INT_MIN, INT_MAX, A|V|D, "er"}, | ||||