Merge commit 'a75c2eb25a62105c09b48521aef429dc8a231637'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 18 Oct 2014 12:06:15 +0000 (14:06 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 18 Oct 2014 12:06:15 +0000 (14:06 +0200)
* commit 'a75c2eb25a62105c09b48521aef429dc8a231637':
  lavc: make rc_eq into private options of mpegvideo encoders

Conflicts:
libavcodec/options_table.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/avcodec.h
libavcodec/mpegvideo.h
libavcodec/mpegvideo_enc.c
libavcodec/options.c
libavcodec/options_table.h
libavcodec/ratecontrol.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -180,13 -169,11 +180,11 @@@ static const AVOption avcodec_options[
  {"rc_qmod_freq", "deprecated, use encoder private options instead", OFFSET(rc_qmod_freq), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|E},
  #endif
  {"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX},
- {"rc_eq", "Set rate control equation. When computing the expression, besides the standard functions "
-           "defined in the section 'Expression Evaluation', the following functions are available: "
-           "bits2qp(bits), qp2bits(qp). Also the following constants are available: iTex pTex tex mv "
-           "fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex.",
-           OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
+ #if FF_API_MPV_OPT
+ {"rc_eq", "deprecated, use encoder private options instead", OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
+ #endif
 -{"maxrate", "Set maximum bitrate tolerance (in bits/s). Requires bufsize to be set.", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
 -{"minrate", "Set minimum bitrate tolerance (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise.",
 +{"maxrate", "maximum bitrate (in bits/s). Used for VBV together with bufsize.", OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, 0, INT_MAX, V|A|E},
 +{"minrate", "minimum bitrate (in bits/s). Most useful in setting up a CBR encode. It is of little use otherwise.",
              OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
  {"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), AV_OPT_TYPE_INT, {.i64 = DEFAULT }, INT_MIN, INT_MAX, A|V|E},
  {"rc_buf_aggressivity", "currently useless", OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, V|E},
@@@ -130,15 -125,8 +130,15 @@@ av_cold int ff_rate_control_init(MpegEn
      };
      emms_c();
  
 +    if (!s->avctx->rc_max_available_vbv_use && s->avctx->rc_buffer_size) {
 +        if (s->avctx->rc_max_rate) {
 +            s->avctx->rc_max_available_vbv_use = av_clipf(s->avctx->rc_max_rate/(s->avctx->rc_buffer_size*get_fps(s->avctx)), 1.0/3, 1.0);
 +        } else
 +            s->avctx->rc_max_available_vbv_use = 1.0;
 +    }
 +
      res = av_expr_parse(&rcc->rc_eq_eval,
-                         s->avctx->rc_eq ? s->avctx->rc_eq : "tex^qComp",
+                         s->rc_eq ? s->rc_eq : "tex^qComp",
                          const_names, func1_names, func1,
                          NULL, NULL, 0, s->avctx);
      if (res < 0) {