Some 3D systems overload the meaning of the field for other purposes.
Unified · Split
| @@ -657,6 +657,8 @@ typedef struct RcOverride{ · 656 unmodified lines | ||
| 657 | 657 | #define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks. |
| 658 | 658 | #define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding. |
| 659 | 659 | #define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata. |
| 660 | +#define CODEC_FLAG2_IGNORE_CROP 0x00010000 ///< Discard cropping information from SPS. | |
| 661 | + | |
| 660 | 662 | #if FF_API_MPV_GLOBAL_OPTS |
| 661 | 663 | #define CODEC_FLAG_CBP_RD 0x04000000 ///< Use rate distortion optimization for cbp. |
| 662 | 664 | #define CODEC_FLAG_QP_RD 0x08000000 ///< Use rate distortion optimization for qp selectioon. |
| @@ -425,6 +425,20 @@ int ff_h264_decode_seq_parameter_set(H264Context *h){ · 424 unmodified lines | ||
| 425 | 425 | sps->crop_right = get_ue_golomb(&s->gb); |
| 426 | 426 | sps->crop_top = get_ue_golomb(&s->gb); |
| 427 | 427 | sps->crop_bottom= get_ue_golomb(&s->gb); |
| 428 | + if (h->s.avctx->flags2 & CODEC_FLAG2_IGNORE_CROP) { | |
| 429 | + av_log(h->s.avctx, AV_LOG_DEBUG, | |
| 430 | + "discarding sps cropping, " | |
| 431 | + "original values are l:%u r:%u t:%u b:%u\n", | |
| 432 | + sps->crop_left, | |
| 433 | + sps->crop_right, | |
| 434 | + sps->crop_top, | |
| 435 | + sps->crop_bottom); | |
| 436 | + | |
| 437 | + sps->crop_left = | |
| 438 | + sps->crop_right = | |
| 439 | + sps->crop_top = | |
| 440 | + sps->crop_bottom = 0; | |
| 441 | + } | |
| 428 | 442 | if(sps->crop_left || sps->crop_top){ |
| 429 | 443 | av_log(h->s.avctx, AV_LOG_ERROR, "insane cropping not completely supported, this could look slightly wrong ...\n"); |
| 430 | 444 | } |
| @@ -76,6 +76,7 @@ static const AVOption options[]={ · 75 unmodified lines | ||
| 76 | 76 | {"sgop", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_STRICT_GOP }, INT_MIN, INT_MAX, V|E, "flags2"}, |
| 77 | 77 | #endif |
| 78 | 78 | {"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, "flags2"}, |
| 79 | +{"ignorecrop", "ignore cropping information from sps", 1, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_IGNORE_CROP }, INT_MIN, INT_MAX, V|D, "flags2"}, | |
| 79 | 80 | {"local_header", "place global headers at every keyframe instead of in extradata", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_LOCAL_HEADER }, INT_MIN, INT_MAX, V|E, "flags2"}, |
| 80 | 81 | #if FF_API_SUB_ID |
| 81 | 82 | {"sub_id", NULL, OFFSET(sub_id), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX}, |
| @@ -27,7 +27,7 @@ · 26 unmodified lines | ||
| 27 | 27 | */ |
| 28 | 28 | |
| 29 | 29 | #define LIBAVCODEC_VERSION_MAJOR 54 |
| 30 | −#define LIBAVCODEC_VERSION_MINOR 40 | |
| 30 | +#define LIBAVCODEC_VERSION_MINOR 41 | |
| 31 | 31 | #define LIBAVCODEC_VERSION_MICRO 0 |
| 32 | 32 | |
| 33 | 33 | #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |