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"}, | ||||