mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
h264: Allow discarding the cropping information from SPS
Some 3D systems overload the meaning of the field for other purposes. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
33552a5f7b
commit
a84fb6e06f
@ -657,6 +657,8 @@ typedef struct RcOverride{
|
||||
#define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks.
|
||||
#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding.
|
||||
#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata.
|
||||
#define CODEC_FLAG2_IGNORE_CROP 0x00010000 ///< Discard cropping information from SPS.
|
||||
|
||||
#if FF_API_MPV_GLOBAL_OPTS
|
||||
#define CODEC_FLAG_CBP_RD 0x04000000 ///< Use rate distortion optimization for cbp.
|
||||
#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){
|
||||
sps->crop_right = get_ue_golomb(&s->gb);
|
||||
sps->crop_top = get_ue_golomb(&s->gb);
|
||||
sps->crop_bottom= get_ue_golomb(&s->gb);
|
||||
if (h->s.avctx->flags2 & CODEC_FLAG2_IGNORE_CROP) {
|
||||
av_log(h->s.avctx, AV_LOG_DEBUG,
|
||||
"discarding sps cropping, "
|
||||
"original values are l:%u r:%u t:%u b:%u\n",
|
||||
sps->crop_left,
|
||||
sps->crop_right,
|
||||
sps->crop_top,
|
||||
sps->crop_bottom);
|
||||
|
||||
sps->crop_left =
|
||||
sps->crop_right =
|
||||
sps->crop_top =
|
||||
sps->crop_bottom = 0;
|
||||
}
|
||||
if(sps->crop_left || sps->crop_top){
|
||||
av_log(h->s.avctx, AV_LOG_ERROR, "insane cropping not completely supported, this could look slightly wrong ...\n");
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ static const AVOption options[]={
|
||||
{"sgop", "Deprecated, use mpegvideo private options instead", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_STRICT_GOP }, INT_MIN, INT_MAX, V|E, "flags2"},
|
||||
#endif
|
||||
{"noout", "skip bitstream encoding", 0, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_NO_OUTPUT }, INT_MIN, INT_MAX, V|E, "flags2"},
|
||||
{"ignorecrop", "ignore cropping information from sps", 1, AV_OPT_TYPE_CONST, {.i64 = CODEC_FLAG2_IGNORE_CROP }, INT_MIN, INT_MAX, V|D, "flags2"},
|
||||
{"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"},
|
||||
#if FF_API_SUB_ID
|
||||
{"sub_id", NULL, OFFSET(sub_id), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
|
||||
|
@ -27,7 +27,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 54
|
||||
#define LIBAVCODEC_VERSION_MINOR 40
|
||||
#define LIBAVCODEC_VERSION_MINOR 41
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user