---
 libavcodec/options.c |  280 ++++++++++++++++++++++++++------------------------
 1 files changed, 147 insertions(+), 133 deletions(-)

diff --git a/libavcodec/options.c b/libavcodec/options.c
index 5fa777f..6957171 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -75,9 +75,151 @@ static const AVClass *codec_child_class_next(const AVClass 
*prev)
 #define AV_CODEC_DEFAULT_BITRATE 200*1000
 
 static const AVOption options[]={
-{"b", "set bitrate (in bits/s)", OFFSET(bit_rate), AV_OPT_TYPE_INT, {.dbl = 
AV_CODEC_DEFAULT_BITRATE }, INT_MIN, INT_MAX, V|A|E},
-{"bt", "set video bitrate tolerance (in bits/s)", OFFSET(bit_rate_tolerance), 
AV_OPT_TYPE_INT, {.dbl = AV_CODEC_DEFAULT_BITRATE*20 }, 1, INT_MAX, V|E},
-{"sub_id", NULL, OFFSET(sub_id), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, 
INT_MAX},
+{"b",                     "set bitrate (in bits/s)",                           
  OFFSET(bit_rate),                AV_OPT_TYPE_INT,      
{AV_CODEC_DEFAULT_BITRATE},   INT_MIN, INT_MAX, V|A|E},
+{"bt",                    "set video bitrate tolerance (in bits/s)",           
  OFFSET(bit_rate_tolerance),      AV_OPT_TYPE_INT,      
{AV_CODEC_DEFAULT_BITRATE*20},      1, INT_MAX, V|E},
+{"sub_id",                NULL,                                                
  OFFSET(sub_id),                  AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"extradata_size",        NULL,                                                
  OFFSET(extradata_size),          AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"time_base",             NULL,                                                
  OFFSET(time_base),               AV_OPT_TYPE_RATIONAL, {0},                   
       INT_MIN, INT_MAX},
+{"g",                     "set the group of picture size",                     
  OFFSET(gop_size),                AV_OPT_TYPE_INT,      {12},                  
       INT_MIN, INT_MAX, V|E},
+{"ar",                    "set audio sampling rate (in Hz)",                   
  OFFSET(sample_rate),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, A|D|E},
+{"ac",                    "set number of audio channels",                      
  OFFSET(channels),                AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, A|D|E},
+{"cutoff",                "set cutoff bandwidth",                              
  OFFSET(cutoff),                  AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, A|E},
+{"frame_size",            NULL,                                                
  OFFSET(frame_size),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, A|E},
+{"frame_number",          NULL,                                                
  OFFSET(frame_number),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"delay",                 NULL,                                                
  OFFSET(delay),                   AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"qcomp",                 "video quantizer scale compression (VBR)",           
  OFFSET(qcompress),               AV_OPT_TYPE_FLOAT,    {0.5},                 
      -FLT_MAX, FLT_MAX, V|E},
+{"qblur",                 "video quantizer scale blur (VBR)",                  
  OFFSET(qblur),                   AV_OPT_TYPE_FLOAT,    {0.5},                 
            -1, FLT_MAX, V|E},
+{"qmin",                  "min video quantizer scale (VBR)",                   
  OFFSET(qmin),                    AV_OPT_TYPE_INT,      {2},                   
            -1,      69, V|E},
+{"qmax",                  "max video quantizer scale (VBR)",                   
  OFFSET(qmax),                    AV_OPT_TYPE_INT,      {31},                  
            -1,      69, V|E},
+{"qdiff",                 "max difference between the quantizer scale (VBR)",  
  OFFSET(max_qdiff),               AV_OPT_TYPE_INT,      {3},                   
       INT_MIN, INT_MAX, V|E},
+{"bf",                    "use 'frames' B frames",                             
  OFFSET(max_b_frames),            AV_OPT_TYPE_INT,      {DEFAULT},             
    -1, FF_MAX_B_FRAMES, V|E},
+{"b_qfactor",             "qp factor between p and b frames",                  
  OFFSET(b_quant_factor),          AV_OPT_TYPE_FLOAT,    {1.25},                
      -FLT_MAX, FLT_MAX, V|E},
+{"rc_strategy",           "ratecontrol method",                                
  OFFSET(rc_strategy),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"b_strategy",            "strategy to choose between I/P/B-frames",           
  OFFSET(b_frame_strategy),        AV_OPT_TYPE_INT,      {0},                   
       INT_MIN, INT_MAX, V|E},
+{"ps",                    "rtp payload size in bytes",                         
  OFFSET(rtp_payload_size),        AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"mv_bits",               NULL,                                                
  OFFSET(mv_bits),                 AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"header_bits",           NULL,                                                
  OFFSET(header_bits),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"i_tex_bits",            NULL,                                                
  OFFSET(i_tex_bits),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"p_tex_bits",            NULL,                                                
  OFFSET(p_tex_bits),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"misc_bits",             NULL,                                                
  OFFSET(misc_bits),               AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"frame_bits",            NULL,                                                
  OFFSET(frame_bits),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"i_count",               NULL,                                                
  OFFSET(i_count),                 AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"p_count",               NULL,                                                
  OFFSET(p_count),                 AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"skip_count",            NULL,                                                
  OFFSET(skip_count),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"codec_tag",             NULL,                                                
  OFFSET(codec_tag),               AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"lelim",                 "single coefficient elimination threshold for 
luminance (negative values also consider dc coefficient)",
+                                                                               
  OFFSET(luma_elim_threshold),     AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"celim",                 "single coefficient elimination threshold for 
chrominance (negative values also consider dc coefficient)",
+                                                                               
  OFFSET(chroma_elim_threshold),   AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"b_qoffset",             "qp offset between P and B frames",                  
  OFFSET(b_quant_offset),          AV_OPT_TYPE_FLOAT,    {1.25},                
      -FLT_MAX, FLT_MAX, V|E},
+{"has_b_frames",          NULL,                                                
  OFFSET(has_b_frames),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"block_align",           NULL,                                                
  OFFSET(block_align),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"mpeg_quant",            "use MPEG quantizers instead of H.263",              
  OFFSET(mpeg_quant),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"stats_out",             NULL,                                                
  OFFSET(stats_out),               AV_OPT_TYPE_STRING,   {.str = NULL}},
+{"stats_in",              NULL,                                                
  OFFSET(stats_in),                AV_OPT_TYPE_STRING,   {.str = NULL}},
+{"qsquish",               "how to keep quantizer between qmin and qmax (0 = 
clip, 1 = use differentiable function)",
+                                                                               
  OFFSET(rc_qsquish),              AV_OPT_TYPE_FLOAT,    {DEFAULT},             
             0,      99, V|E},
+{"rc_qmod_amp",           "experimental quantizer modulation",                 
  OFFSET(rc_qmod_amp),             AV_OPT_TYPE_FLOAT,    {DEFAULT},             
      -FLT_MAX, FLT_MAX, V|E},
+{"rc_qmod_freq",          "experimental quantizer modulation",                 
  OFFSET(rc_qmod_freq),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"rc_override_count",     NULL,                                                
  OFFSET(rc_override_count),       AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"rc_eq",                 "set rate control equation",                         
  OFFSET(rc_eq),                   AV_OPT_TYPE_STRING,   {.str = NULL},         
             0,       0, V|E},
+{"maxrate",               "set max video bitrate tolerance (in bits/s)",       
  OFFSET(rc_max_rate),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"minrate",               "set min video bitrate tolerance (in bits/s)",       
  OFFSET(rc_min_rate),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"bufsize",               "set ratecontrol buffer size (in bits)",             
  OFFSET(rc_buffer_size),          AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, A|V|E},
+{"rc_buf_aggressivity",   "currently useless",                                 
  OFFSET(rc_buffer_aggressivity),  AV_OPT_TYPE_FLOAT,    {1.0},                 
      -FLT_MAX, FLT_MAX, V|E},
+{"i_qfactor",             "qp factor between P and I frames",                  
  OFFSET(i_quant_factor),          AV_OPT_TYPE_FLOAT,    {-0.8},                
      -FLT_MAX, FLT_MAX, V|E},
+{"i_qoffset",             "qp offset between P and I frames",                  
  OFFSET(i_quant_offset),          AV_OPT_TYPE_FLOAT,    {0.0},                 
      -FLT_MAX, FLT_MAX, V|E},
+{"rc_init_cplx",          "initial complexity for 1-pass encoding",            
  OFFSET(rc_initial_cplx),         AV_OPT_TYPE_FLOAT,    {DEFAULT},             
      -FLT_MAX, FLT_MAX, V|E},
+{"lumi_mask",             "compresses bright areas stronger than medium ones", 
  OFFSET(lumi_masking),            AV_OPT_TYPE_FLOAT,    {0},                   
      -FLT_MAX, FLT_MAX, V|E},
+{"tcplx_mask",            "temporal complexity masking",                       
  OFFSET(temporal_cplx_masking),   AV_OPT_TYPE_FLOAT,    {0},                   
      -FLT_MAX, FLT_MAX, V|E},
+{"scplx_mask",            "spatial complexity masking",                        
  OFFSET(spatial_cplx_masking),    AV_OPT_TYPE_FLOAT,    {0},                   
      -FLT_MAX, FLT_MAX, V|E},
+{"p_mask",                "inter masking",                                     
  OFFSET(p_masking),               AV_OPT_TYPE_FLOAT,    {0},                   
      -FLT_MAX, FLT_MAX, V|E},
+{"dark_mask",             "compresses dark areas stronger than medium ones",   
  OFFSET(dark_masking),            AV_OPT_TYPE_FLOAT,    {0},                   
      -FLT_MAX, FLT_MAX, V|E},
+{"slice_count",           NULL,                                                
  OFFSET(slice_count),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"bits_per_coded_sample", NULL,                                                
  OFFSET(bits_per_coded_sample),   AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"aspect",                "sample aspect ratio",                               
  OFFSET(sample_aspect_ratio),     AV_OPT_TYPE_RATIONAL, {0},                   
             0,      10, V|E},
+{"dia_size",              "diamond type & size for motion estimation",         
  OFFSET(dia_size),                AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"last_pred",             "amount of motion predictors from the previous 
frame", OFFSET(last_predictor_count),    AV_OPT_TYPE_INT,      {DEFAULT},       
             INT_MIN, INT_MAX, V|E},
+{"preme",                 "pre motion estimation",                             
  OFFSET(pre_me),                  AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"pre_dia_size",          "diamond type & size for motion estimation 
pre-pass",  OFFSET(pre_dia_size),            AV_OPT_TYPE_INT,      {DEFAULT},   
                 INT_MIN, INT_MAX, V|E},
+{"subq",                  "sub pel motion estimation quality",                 
  OFFSET(me_subpel_quality),       AV_OPT_TYPE_INT,      {8},                   
       INT_MIN, INT_MAX, V|E},
+{"dtg_active_format",     NULL,                                                
  OFFSET(dtg_active_format),       AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"me_range",              "limit motion vectors range (1023 for DivX player)", 
  OFFSET(me_range),                AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"ibias",                 "intra quant bias",                                  
  OFFSET(intra_quant_bias),        AV_OPT_TYPE_INT,      
{FF_DEFAULT_QUANT_BIAS},      INT_MIN, INT_MAX, V|E},
+{"pbias",                 "inter quant bias",                                  
  OFFSET(inter_quant_bias),        AV_OPT_TYPE_INT,      
{FF_DEFAULT_QUANT_BIAS},      INT_MIN, INT_MAX, V|E},
+{"color_table_id",        NULL,                                                
  OFFSET(color_table_id),          AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"global_quality",        NULL,                                                
  OFFSET(global_quality),          AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|A|E},
+{"context",               "context model",                                     
  OFFSET(context_model),           AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"slice_flags",           NULL,                                                
  OFFSET(slice_flags),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"xvmc_acceleration",     NULL,                                                
  OFFSET(xvmc_acceleration),       AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"stream_codec_tag",      NULL,                                                
  OFFSET(stream_codec_tag),        AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"sc_threshold",          "scene change threshold",                            
  OFFSET(scenechange_threshold),   AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"lmin",                  "min lagrange factor (VBR)",                         
  OFFSET(lmin),                    AV_OPT_TYPE_INT,      { 2*FF_QP2LAMBDA},     
             0, INT_MAX, V|E},
+{"lmax",                  "max lagrange factor (VBR)",                         
  OFFSET(lmax),                    AV_OPT_TYPE_INT,      {31*FF_QP2LAMBDA},     
             0, INT_MAX, V|E},
+{"nr",                    "noise reduction",                                   
  OFFSET(noise_reduction),         AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"rc_init_occupancy",     "number of bits which should be loaded into the rc 
buffer before decoding starts",
+                                                                            
OFFSET(rc_initial_buffer_occupancy),  AV_OPT_TYPE_INT,      {DEFAULT},          
          INT_MIN, INT_MAX, V|E},
+{"inter_threshold",       NULL,                                                
  OFFSET(inter_threshold),         AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"error",                 NULL,                                                
  OFFSET(error_rate),              AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"qns",                   "quantizer noise shaping",                           
  OFFSET(quantizer_noise_shaping), AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"me_threshold",          "motion estimaton threshold",                        
  OFFSET(me_threshold),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"mb_threshold",          "macroblock threshold",                              
  OFFSET(mb_threshold),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"dc",                    "intra_dc_precision",                                
  OFFSET(intra_dc_precision),      AV_OPT_TYPE_INT,      {0},                   
       INT_MIN, INT_MAX, V|E},
+{"nssew",                 "nsse weight",                                       
  OFFSET(nsse_weight),             AV_OPT_TYPE_INT,      {8},                   
       INT_MIN, INT_MAX, V|E},
+{"skip_top",              "number of macroblock rows at the top which are 
skipped",
+                                                                               
  OFFSET(skip_top),                AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|D},
+{"skip_bottom",           "number of macroblock rows at the bottom which are 
skipped",
+                                                                               
  OFFSET(skip_bottom),             AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|D},
+{"lowres",                "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions",        
  OFFSET(lowres),                  AV_OPT_TYPE_INT,      {0},                   
             0, INT_MAX, V|A|D},
+{"skip_threshold",        "frame skip threshold",                              
  OFFSET(frame_skip_threshold),    AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"skip_factor",           "frame skip factor",                                 
  OFFSET(frame_skip_factor),       AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"skip_exp",              "frame skip exponent",                               
  OFFSET(frame_skip_exp),          AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"border_mask",           "increases the quantizer for macroblocks close to 
borders",
+                                                                               
  OFFSET(border_masking),          AV_OPT_TYPE_FLOAT,    {DEFAULT},             
      -FLT_MAX, FLT_MAX, V|E},
+{"mblmin",                "min macroblock lagrange factor (VBR)",              
  OFFSET(mb_lmin),                 AV_OPT_TYPE_INT,      {FF_QP2LAMBDA * 2},    
       1, FF_LAMBDA_MAX, V|E},
+{"mblmax",                "max macroblock lagrange factor (VBR)",              
  OFFSET(mb_lmax),                 AV_OPT_TYPE_INT,      {FF_QP2LAMBDA * 31},   
       1, FF_LAMBDA_MAX, V|E},
+{"mepc",                  "motion estimation bitrate penalty compensation (1.0 
= 256)",
+                                                                               
  OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT,      {256},                 
       INT_MIN, INT_MAX, V|E},
+{"bidir_refine",          "refine the two motion vectors used in bidirectional 
macroblocks",
+                                                                               
  OFFSET(bidir_refine),            AV_OPT_TYPE_INT,      {1},                   
             0,       4, V|E},
+{"brd_scale",             "downscales frames for dynamic B-frame decision",    
  OFFSET(brd_scale),               AV_OPT_TYPE_INT,      {DEFAULT},             
             0,      10, V|E},
+{"keyint_min",            "minimum interval between IDR-frames (x264)",        
  OFFSET(keyint_min),              AV_OPT_TYPE_INT,      {25},                  
       INT_MIN, INT_MAX, V|E},
+{"refs",                  "reference frames to consider for motion 
compensation (Snow)",
+                                                                               
  OFFSET(refs),                    AV_OPT_TYPE_INT,      {1},                   
       INT_MIN, INT_MAX, V|E},
+{"chromaoffset",          "chroma qp offset from luma",                        
  OFFSET(chromaoffset),            AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|E},
+{"trellis",               "rate-distortion optimal quantization",              
  OFFSET(trellis),                 AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX, V|A|E},
+{"sc_factor",             "multiplied by qscale for each frame and added to 
scene_change_score",
+                                                                               
  OFFSET(scenechange_factor),      AV_OPT_TYPE_INT,      {6},                   
             0, INT_MAX, V|E},
+{"mv0_threshold",         NULL,                                                
  OFFSET(mv0_threshold),           AV_OPT_TYPE_INT,      {256},                 
             0, INT_MAX, V|E},
+{"b_sensitivity",         "adjusts sensitivity of b_frame_strategy 1",         
  OFFSET(b_sensitivity),           AV_OPT_TYPE_INT,      {40},                  
             1, INT_MAX, V|E},
+{"compression_level",     NULL,                                                
  OFFSET(compression_level),       AV_OPT_TYPE_INT,      
{FF_COMPRESSION_DEFAULT},     INT_MIN, INT_MAX, V|A|E},
+{"min_prediction_order",  NULL,                                                
  OFFSET(min_prediction_order),    AV_OPT_TYPE_INT,      {-1},                  
       INT_MIN, INT_MAX, A|E},
+{"max_prediction_order",  NULL,                                                
  OFFSET(max_prediction_order),    AV_OPT_TYPE_INT,      {-1},                  
       INT_MIN, INT_MAX, A|E},
+{"timecode_frame_start",  "GOP timecode frame start number, in non drop frame 
format",
+                                                                               
  OFFSET(timecode_frame_start),    AV_OPT_TYPE_INT64,    {0},                   
           0, INT64_MAX, V|E},
+#if FF_API_REQUEST_CHANNELS
+{"request_channels",      "set desired number of audio channels",              
  OFFSET(request_channels),        AV_OPT_TYPE_INT,      {DEFAULT},             
             0, INT_MAX, A|D},
+#endif
+{"bits_per_raw_sample",   NULL,                                                
  OFFSET(bits_per_raw_sample),     AV_OPT_TYPE_INT,      {DEFAULT},             
       INT_MIN, INT_MAX},
+{"channel_layout",        NULL,                                                
  OFFSET(channel_layout),          AV_OPT_TYPE_INT64,    {DEFAULT},             
           0, INT64_MAX, A|E|D},
+{"request_channel_layout",NULL,                                                
  OFFSET(request_channel_layout),  AV_OPT_TYPE_INT64,    {DEFAULT},             
           0, INT64_MAX, A|D},
+{"rc_max_vbv_use",        NULL,                                                
  OFFSET(rc_max_available_vbv_use),AV_OPT_TYPE_FLOAT,    {1.0/3},               
           0.0, FLT_MAX, V|E},
+{"rc_min_vbv_use",        NULL,                                                
  OFFSET(rc_min_vbv_overflow_use), AV_OPT_TYPE_FLOAT,    {3},                   
           0.0, FLT_MAX, V|E},
+{"ticks_per_frame",       NULL,                                                
  OFFSET(ticks_per_frame),         AV_OPT_TYPE_INT,      {1},                   
             1, INT_MAX, A|V|E|D},
+{"color_primaries",       NULL,                                                
  OFFSET(color_primaries),         AV_OPT_TYPE_INT,      
{AVCOL_PRI_UNSPECIFIED},     1, AVCOL_PRI_NB-1, V|E|D},
+{"color_trc",             NULL,                                                
  OFFSET(color_trc),               AV_OPT_TYPE_INT,      
{AVCOL_TRC_UNSPECIFIED},     1, AVCOL_TRC_NB-1, V|E|D},
+{"colorspace",            NULL,                                                
  OFFSET(colorspace),              AV_OPT_TYPE_INT,      
{AVCOL_SPC_UNSPECIFIED},     1, AVCOL_SPC_NB-1, V|E|D},
+{"color_range",           NULL,                                                
  OFFSET(color_range),             AV_OPT_TYPE_INT,      
{AVCOL_RANGE_UNSPECIFIED}, 0, AVCOL_RANGE_NB-1, V|E|D},
+{"chroma_sample_location",NULL,                                                
  OFFSET(chroma_sample_location),  AV_OPT_TYPE_INT,      
{AVCHROMA_LOC_UNSPECIFIED},0, AVCHROMA_LOC_NB-1,V|E|D},
+{"log_level_offset",      "set the log level offset",                          
  OFFSET(log_level_offset),        AV_OPT_TYPE_INT,      {0}, INT_MIN, INT_MAX},
+{"slices",                "number of slices, used in parallelized encoding",   
  OFFSET(slices),                  AV_OPT_TYPE_INT,      {0}, 0, INT_MAX, V|E},
+{"level",                 NULL,                                                
  OFFSET(level),                   AV_OPT_TYPE_INT,      {FF_LEVEL_UNKNOWN},    
       INT_MIN, INT_MAX, V|A|E, "level"},
+{"unknown",               NULL,                                                
  0,                               AV_OPT_TYPE_CONST,    {FF_LEVEL_UNKNOWN},    
       INT_MIN, INT_MAX, V|A|E, "level"},
+{"threads",               NULL,                                                
  OFFSET(thread_count),            AV_OPT_TYPE_INT,      {1},                   
             0, INT_MAX, V|E|D, "threads"},
+{"auto",                  "detect a good number of threads",                   
  0,                               AV_OPT_TYPE_CONST,    {0},                   
       INT_MIN, INT_MAX, V|E|D, "threads"},
+{"thread_type",           "select multithreading type",                        
  OFFSET(thread_type),             AV_OPT_TYPE_FLAGS, 
{FF_THREAD_SLICE|FF_THREAD_FRAME},    0,  INT_MAX, V|E|D, "thread_type"},
+{"slice",                 NULL,                                                
  0,                               AV_OPT_TYPE_CONST, {FF_THREAD_SLICE},        
            0,        0, V|E|D, "thread_type"},
+{"frame",                 NULL,                                                
  0,                               AV_OPT_TYPE_CONST, {FF_THREAD_FRAME},        
            0,        0, V|E|D, "thread_type"},
 
 {"flags",  NULL, OFFSET(flags), AV_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, 
UINT_MAX, V|A|E|D, "flags"},
 {"mv4",             "use four motion vector by macroblock (mpeg4)",            
       0, AV_OPT_TYPE_CONST, {CODEC_FLAG_4MV},             0, 0, V|E, "flags"},
@@ -268,104 +410,6 @@ static const AVOption options[]={
 {"dts_hd_hra", NULL, 0, AV_OPT_TYPE_CONST, {FF_PROFILE_DTS_HD_HRA}, 0, 0, A|E, 
"profile"},
 {"dts_hd_ma",  NULL, 0, AV_OPT_TYPE_CONST, {FF_PROFILE_DTS_HD_MA},  0, 0, A|E, 
"profile"},
 
-{"extradata_size", NULL, OFFSET(extradata_size), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX},
-{"time_base", NULL, OFFSET(time_base), AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 
INT_MIN, INT_MAX},
-{"g", "set the group of picture size", OFFSET(gop_size), AV_OPT_TYPE_INT, 
{.dbl = 12 }, INT_MIN, INT_MAX, V|E},
-{"ar", "set audio sampling rate (in Hz)", OFFSET(sample_rate), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
-{"ac", "set number of audio channels", OFFSET(channels), AV_OPT_TYPE_INT, 
{.dbl = DEFAULT }, INT_MIN, INT_MAX, A|D|E},
-{"cutoff", "set cutoff bandwidth", OFFSET(cutoff), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, A|E},
-{"frame_size", NULL, OFFSET(frame_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX, A|E},
-{"frame_number", NULL, OFFSET(frame_number), AV_OPT_TYPE_INT, {.dbl = DEFAULT 
}, INT_MIN, INT_MAX},
-{"delay", NULL, OFFSET(delay), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, 
INT_MAX},
-{"qcomp", "video quantizer scale compression (VBR)", OFFSET(qcompress), 
AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -FLT_MAX, FLT_MAX, V|E},
-{"qblur", "video quantizer scale blur (VBR)", OFFSET(qblur), 
AV_OPT_TYPE_FLOAT, {.dbl = 0.5 }, -1, FLT_MAX, V|E},
-{"qmin", "min video quantizer scale (VBR)", OFFSET(qmin), AV_OPT_TYPE_INT, 
{.dbl = 2 }, -1, 69, V|E},
-{"qmax", "max video quantizer scale (VBR)", OFFSET(qmax), AV_OPT_TYPE_INT, 
{.dbl = 31 }, -1, 69, V|E},
-{"qdiff", "max difference between the quantizer scale (VBR)", 
OFFSET(max_qdiff), AV_OPT_TYPE_INT, {.dbl = 3 }, INT_MIN, INT_MAX, V|E},
-{"bf", "use 'frames' B frames", OFFSET(max_b_frames), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, -1, FF_MAX_B_FRAMES, V|E},
-{"b_qfactor", "qp factor between p and b frames", OFFSET(b_quant_factor), 
AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
-{"rc_strategy", "ratecontrol method", OFFSET(rc_strategy), AV_OPT_TYPE_INT, 
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"b_strategy", "strategy to choose between I/P/B-frames", 
OFFSET(b_frame_strategy), AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX, V|E},
-{"ps", "rtp payload size in bytes", OFFSET(rtp_payload_size), AV_OPT_TYPE_INT, 
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"mv_bits", NULL, OFFSET(mv_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"header_bits", NULL, OFFSET(header_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"i_tex_bits", NULL, OFFSET(i_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"p_tex_bits", NULL, OFFSET(p_tex_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"i_count", NULL, OFFSET(i_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"p_count", NULL, OFFSET(p_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"skip_count", NULL, OFFSET(skip_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"misc_bits", NULL, OFFSET(misc_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"frame_bits", NULL, OFFSET(frame_bits), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"codec_tag", NULL, OFFSET(codec_tag), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"lelim", "single coefficient elimination threshold for luminance (negative 
values also consider dc coefficient)", OFFSET(luma_elim_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"celim", "single coefficient elimination threshold for chrominance (negative 
values also consider dc coefficient)", OFFSET(chroma_elim_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"b_qoffset", "qp offset between P and B frames", OFFSET(b_quant_offset), 
AV_OPT_TYPE_FLOAT, {.dbl = 1.25 }, -FLT_MAX, FLT_MAX, V|E},
-{"has_b_frames", NULL, OFFSET(has_b_frames), AV_OPT_TYPE_INT, {.dbl = DEFAULT 
}, INT_MIN, INT_MAX},
-{"block_align", NULL, OFFSET(block_align), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"mpeg_quant", "use MPEG quantizers instead of H.263", OFFSET(mpeg_quant), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"stats_out", NULL, OFFSET(stats_out), AV_OPT_TYPE_STRING, {.str = NULL}, 
CHAR_MIN, CHAR_MAX},
-{"stats_in", NULL, OFFSET(stats_in), AV_OPT_TYPE_STRING, {.str = NULL}, 
CHAR_MIN, CHAR_MAX},
-{"qsquish", "how to keep quantizer between qmin and qmax (0 = clip, 1 = use 
differentiable function)", OFFSET(rc_qsquish), AV_OPT_TYPE_FLOAT, {.dbl = 
DEFAULT }, 0, 99, V|E},
-{"rc_qmod_amp", "experimental quantizer modulation", OFFSET(rc_qmod_amp), 
AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, FLT_MAX, V|E},
-{"rc_qmod_freq", "experimental quantizer modulation", OFFSET(rc_qmod_freq), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"rc_override_count", NULL, OFFSET(rc_override_count), AV_OPT_TYPE_INT, {.dbl 
= DEFAULT }, INT_MIN, INT_MAX},
-{"rc_eq", "set rate control equation", OFFSET(rc_eq), AV_OPT_TYPE_STRING, 
{.str = NULL}, CHAR_MIN, CHAR_MAX, V|E},
-{"maxrate", "set max video bitrate tolerance (in bits/s)", 
OFFSET(rc_max_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"minrate", "set min video bitrate tolerance (in bits/s)", 
OFFSET(rc_min_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"bufsize", "set ratecontrol buffer size (in bits)", OFFSET(rc_buffer_size), 
AV_OPT_TYPE_INT, {.dbl = 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},
-{"i_qfactor", "qp factor between P and I frames", OFFSET(i_quant_factor), 
AV_OPT_TYPE_FLOAT, {.dbl = -0.8 }, -FLT_MAX, FLT_MAX, V|E},
-{"i_qoffset", "qp offset between P and I frames", OFFSET(i_quant_offset), 
AV_OPT_TYPE_FLOAT, {.dbl = 0.0 }, -FLT_MAX, FLT_MAX, V|E},
-{"rc_init_cplx", "initial complexity for 1-pass encoding", 
OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, 
FLT_MAX, V|E},
-{"lumi_mask", "compresses bright areas stronger than medium ones", 
OFFSET(lumi_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
-{"tcplx_mask", "temporal complexity masking", OFFSET(temporal_cplx_masking), 
AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
-{"scplx_mask", "spatial complexity masking", OFFSET(spatial_cplx_masking), 
AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
-{"p_mask", "inter masking", OFFSET(p_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, 
-FLT_MAX, FLT_MAX, V|E},
-{"dark_mask", "compresses dark areas stronger than medium ones", 
OFFSET(dark_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, V|E},
-{"slice_count", NULL, OFFSET(slice_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"bits_per_coded_sample", NULL, OFFSET(bits_per_coded_sample), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX},
-{"aspect", "sample aspect ratio", OFFSET(sample_aspect_ratio), 
AV_OPT_TYPE_RATIONAL, {.dbl = 0}, 0, 10, V|E},
-{"dia_size", "diamond type & size for motion estimation", OFFSET(dia_size), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"last_pred", "amount of motion predictors from the previous frame", 
OFFSET(last_predictor_count), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, 
INT_MAX, V|E},
-{"preme", "pre motion estimation", OFFSET(pre_me), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"pre_dia_size", "diamond type & size for motion estimation pre-pass", 
OFFSET(pre_dia_size), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, 
V|E},
-{"subq", "sub pel motion estimation quality", OFFSET(me_subpel_quality), 
AV_OPT_TYPE_INT, {.dbl = 8 }, INT_MIN, INT_MAX, V|E},
-{"dtg_active_format", NULL, OFFSET(dtg_active_format), AV_OPT_TYPE_INT, {.dbl 
= DEFAULT }, INT_MIN, INT_MAX},
-{"me_range", "limit motion vectors range (1023 for DivX player)", 
OFFSET(me_range), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"ibias", "intra quant bias", OFFSET(intra_quant_bias), AV_OPT_TYPE_INT, {.dbl 
= FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
-{"pbias", "inter quant bias", OFFSET(inter_quant_bias), AV_OPT_TYPE_INT, {.dbl 
= FF_DEFAULT_QUANT_BIAS }, INT_MIN, INT_MAX, V|E},
-{"color_table_id", NULL, OFFSET(color_table_id), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX},
-{"global_quality", NULL, OFFSET(global_quality), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, V|A|E},
-{"context", "context model", OFFSET(context_model), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"slice_flags", NULL, OFFSET(slice_flags), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX},
-{"xvmc_acceleration", NULL, OFFSET(xvmc_acceleration), AV_OPT_TYPE_INT, {.dbl 
= DEFAULT }, INT_MIN, INT_MAX},
-{"stream_codec_tag", NULL, OFFSET(stream_codec_tag), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX},
-{"sc_threshold", "scene change threshold", OFFSET(scenechange_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"lmin", "min lagrange factor (VBR)", OFFSET(lmin), AV_OPT_TYPE_INT, {.dbl =  
2*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
-{"lmax", "max lagrange factor (VBR)", OFFSET(lmax), AV_OPT_TYPE_INT, {.dbl = 
31*FF_QP2LAMBDA }, 0, INT_MAX, V|E},
-{"nr", "noise reduction", OFFSET(noise_reduction), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"rc_init_occupancy", "number of bits which should be loaded into the rc 
buffer before decoding starts", OFFSET(rc_initial_buffer_occupancy), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"inter_threshold", NULL, OFFSET(inter_threshold), AV_OPT_TYPE_INT, {.dbl = 
DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"error", NULL, OFFSET(error_rate), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 
INT_MIN, INT_MAX, V|E},
-{"qns", "quantizer noise shaping", OFFSET(quantizer_noise_shaping), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"threads", NULL, OFFSET(thread_count), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, 
INT_MAX, V|E|D, "threads"},
-{"auto", "detect a good number of threads", 0, AV_OPT_TYPE_CONST, {.dbl = 0 }, 
INT_MIN, INT_MAX, V|E|D, "threads"},
-{"me_threshold", "motion estimaton threshold", OFFSET(me_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"mb_threshold", "macroblock threshold", OFFSET(mb_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"dc", "intra_dc_precision", OFFSET(intra_dc_precision), AV_OPT_TYPE_INT, 
{.dbl = 0 }, INT_MIN, INT_MAX, V|E},
-{"nssew", "nsse weight", OFFSET(nsse_weight), AV_OPT_TYPE_INT, {.dbl = 8 }, 
INT_MIN, INT_MAX, V|E},
-{"skip_top", "number of macroblock rows at the top which are skipped", 
OFFSET(skip_top), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
-{"skip_bottom", "number of macroblock rows at the bottom which are skipped", 
OFFSET(skip_bottom), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|D},
-{"level", NULL, OFFSET(level), AV_OPT_TYPE_INT, {.dbl = FF_LEVEL_UNKNOWN }, 
INT_MIN, INT_MAX, V|A|E, "level"},
-{"unknown", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_LEVEL_UNKNOWN }, INT_MIN, 
INT_MAX, V|A|E, "level"},
-{"lowres", "decode at 1= 1/2, 2=1/4, 3=1/8 resolutions", OFFSET(lowres), 
AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|A|D},
-{"skip_threshold", "frame skip threshold", OFFSET(frame_skip_threshold), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"skip_factor", "frame skip factor", OFFSET(frame_skip_factor), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"skip_exp", "frame skip exponent", OFFSET(frame_skip_exp), AV_OPT_TYPE_INT, 
{.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"border_mask", "increases the quantizer for macroblocks close to borders", 
OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = DEFAULT }, -FLT_MAX, 
FLT_MAX, V|E},
-{"mblmin", "min macroblock lagrange factor (VBR)", OFFSET(mb_lmin), 
AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 2 }, 1, FF_LAMBDA_MAX, V|E},
-{"mblmax", "max macroblock lagrange factor (VBR)", OFFSET(mb_lmax), 
AV_OPT_TYPE_INT, {.dbl = FF_QP2LAMBDA * 31 }, 1, FF_LAMBDA_MAX, V|E},
-{"mepc", "motion estimation bitrate penalty compensation (1.0 = 256)", 
OFFSET(me_penalty_compensation), AV_OPT_TYPE_INT, {.dbl = 256 }, INT_MIN, 
INT_MAX, V|E},
 {"skip_loop_filter", NULL, OFFSET(skip_loop_filter), AV_OPT_TYPE_INT, {.dbl = 
AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"skip_idct"       , NULL, OFFSET(skip_idct)       , AV_OPT_TYPE_INT, {.dbl = 
AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"skip_frame"      , NULL, OFFSET(skip_frame)      , AV_OPT_TYPE_INT, {.dbl = 
AVDISCARD_DEFAULT }, INT_MIN, INT_MAX, V|D, "avdiscard"},
@@ -375,38 +419,7 @@ static const AVOption options[]={
 {"bidir"           , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_BIDIR   }, 
INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"nokey"           , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_NONKEY  }, 
INT_MIN, INT_MAX, V|D, "avdiscard"},
 {"all"             , NULL, 0, AV_OPT_TYPE_CONST, {.dbl = AVDISCARD_ALL     }, 
INT_MIN, INT_MAX, V|D, "avdiscard"},
-{"bidir_refine", "refine the two motion vectors used in bidirectional 
macroblocks", OFFSET(bidir_refine), AV_OPT_TYPE_INT, {.dbl = 1 }, 0, 4, V|E},
-{"brd_scale", "downscales frames for dynamic B-frame decision", 
OFFSET(brd_scale), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, 10, V|E},
-{"keyint_min", "minimum interval between IDR-frames (x264)", 
OFFSET(keyint_min), AV_OPT_TYPE_INT, {.dbl = 25 }, INT_MIN, INT_MAX, V|E},
-{"refs", "reference frames to consider for motion compensation (Snow)", 
OFFSET(refs), AV_OPT_TYPE_INT, {.dbl = 1 }, INT_MIN, INT_MAX, V|E},
-{"chromaoffset", "chroma qp offset from luma", OFFSET(chromaoffset), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|E},
-{"trellis", "rate-distortion optimal quantization", OFFSET(trellis), 
AV_OPT_TYPE_INT, {.dbl = DEFAULT }, INT_MIN, INT_MAX, V|A|E},
-{"sc_factor", "multiplied by qscale for each frame and added to 
scene_change_score", OFFSET(scenechange_factor), AV_OPT_TYPE_INT, {.dbl = 6 }, 
0, INT_MAX, V|E},
-{"mv0_threshold", NULL, OFFSET(mv0_threshold), AV_OPT_TYPE_INT, {.dbl = 256 }, 
0, INT_MAX, V|E},
-{"b_sensitivity", "adjusts sensitivity of b_frame_strategy 1", 
OFFSET(b_sensitivity), AV_OPT_TYPE_INT, {.dbl = 40 }, 1, INT_MAX, V|E},
-{"compression_level", NULL, OFFSET(compression_level), AV_OPT_TYPE_INT, {.dbl 
= FF_COMPRESSION_DEFAULT }, INT_MIN, INT_MAX, V|A|E},
-{"min_prediction_order", NULL, OFFSET(min_prediction_order), AV_OPT_TYPE_INT, 
{.dbl = -1 }, INT_MIN, INT_MAX, A|E},
-{"max_prediction_order", NULL, OFFSET(max_prediction_order), AV_OPT_TYPE_INT, 
{.dbl = -1 }, INT_MIN, INT_MAX, A|E},
-{"timecode_frame_start", "GOP timecode frame start number, in non drop frame 
format", OFFSET(timecode_frame_start), AV_OPT_TYPE_INT64, {.dbl = 0 }, 0, 
INT64_MAX, V|E},
-#if FF_API_REQUEST_CHANNELS
-{"request_channels", "set desired number of audio channels", 
OFFSET(request_channels), AV_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, A|D},
-#endif
-{"bits_per_raw_sample", NULL, OFFSET(bits_per_raw_sample), AV_OPT_TYPE_INT, 
{.dbl = DEFAULT }, INT_MIN, INT_MAX},
-{"channel_layout", NULL, OFFSET(channel_layout), AV_OPT_TYPE_INT64, {.dbl = 
DEFAULT }, 0, INT64_MAX, A|E|D, "channel_layout"},
-{"request_channel_layout", NULL, OFFSET(request_channel_layout), 
AV_OPT_TYPE_INT64, {.dbl = DEFAULT }, 0, INT64_MAX, A|D, 
"request_channel_layout"},
-{"rc_max_vbv_use", NULL, OFFSET(rc_max_available_vbv_use), AV_OPT_TYPE_FLOAT, 
{.dbl = 1.0/3 }, 0.0, FLT_MAX, V|E},
-{"rc_min_vbv_use", NULL, OFFSET(rc_min_vbv_overflow_use),  AV_OPT_TYPE_FLOAT, 
{.dbl = 3 },     0.0, FLT_MAX, V|E},
-{"ticks_per_frame", NULL, OFFSET(ticks_per_frame), AV_OPT_TYPE_INT, {.dbl = 1 
}, 1, INT_MAX, A|V|E|D},
-{"color_primaries", NULL, OFFSET(color_primaries), AV_OPT_TYPE_INT, {.dbl = 
AVCOL_PRI_UNSPECIFIED }, 1, AVCOL_PRI_NB-1, V|E|D},
-{"color_trc", NULL, OFFSET(color_trc), AV_OPT_TYPE_INT, {.dbl = 
AVCOL_TRC_UNSPECIFIED }, 1, AVCOL_TRC_NB-1, V|E|D},
-{"colorspace", NULL, OFFSET(colorspace), AV_OPT_TYPE_INT, {.dbl = 
AVCOL_SPC_UNSPECIFIED }, 1, AVCOL_SPC_NB-1, V|E|D},
-{"color_range", NULL, OFFSET(color_range), AV_OPT_TYPE_INT, {.dbl = 
AVCOL_RANGE_UNSPECIFIED }, 0, AVCOL_RANGE_NB-1, V|E|D},
-{"chroma_sample_location", NULL, OFFSET(chroma_sample_location), 
AV_OPT_TYPE_INT, {.dbl = AVCHROMA_LOC_UNSPECIFIED }, 0, AVCHROMA_LOC_NB-1, 
V|E|D},
-{"log_level_offset", "set the log level offset", OFFSET(log_level_offset), 
AV_OPT_TYPE_INT, {.dbl = 0 }, INT_MIN, INT_MAX },
-{"slices", "number of slices, used in parallelized encoding", OFFSET(slices), 
AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, V|E},
-{"thread_type", "select multithreading type", OFFSET(thread_type), 
AV_OPT_TYPE_FLAGS, {.dbl = FF_THREAD_SLICE|FF_THREAD_FRAME }, 0, INT_MAX, 
V|E|D, "thread_type"},
-{"slice", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_SLICE }, INT_MIN, 
INT_MAX, V|E|D, "thread_type"},
-{"frame", NULL, 0, AV_OPT_TYPE_CONST, {.dbl = FF_THREAD_FRAME }, INT_MIN, 
INT_MAX, V|E|D, "thread_type"},
+
 {"audio_service_type", "audio service type", OFFSET(audio_service_type), 
AV_OPT_TYPE_INT, {.dbl = AV_AUDIO_SERVICE_TYPE_MAIN }, 0, 
AV_AUDIO_SERVICE_TYPE_NB-1, A|E, "audio_service_type"},
 {"ma", "Main Audio Service", 0, AV_OPT_TYPE_CONST, {.dbl = 
AV_AUDIO_SERVICE_TYPE_MAIN },              INT_MIN, INT_MAX, A|E, 
"audio_service_type"},
 {"ef", "Effects",            0, AV_OPT_TYPE_CONST, {.dbl = 
AV_AUDIO_SERVICE_TYPE_EFFECTS },           INT_MIN, INT_MAX, A|E, 
"audio_service_type"},
@@ -417,6 +430,7 @@ static const AVOption options[]={
 {"em", "Emergency",          0, AV_OPT_TYPE_CONST, {.dbl = 
AV_AUDIO_SERVICE_TYPE_EMERGENCY },         INT_MIN, INT_MAX, A|E, 
"audio_service_type"},
 {"vo", "Voice Over",         0, AV_OPT_TYPE_CONST, {.dbl = 
AV_AUDIO_SERVICE_TYPE_VOICE_OVER },        INT_MIN, INT_MAX, A|E, 
"audio_service_type"},
 {"ka", "Karaoke",            0, AV_OPT_TYPE_CONST, {.dbl = 
AV_AUDIO_SERVICE_TYPE_KARAOKE },           INT_MIN, INT_MAX, A|E, 
"audio_service_type"},
+
 {"request_sample_fmt", NULL, OFFSET(request_sample_fmt), AV_OPT_TYPE_INT, 
{.dbl = AV_SAMPLE_FMT_NONE }, AV_SAMPLE_FMT_NONE, AV_SAMPLE_FMT_NB-1, A|D, 
"request_sample_fmt"},
 {"u8" , "8-bit unsigned integer", 0, AV_OPT_TYPE_CONST, {.dbl = 
AV_SAMPLE_FMT_U8  }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
 {"s16", "16-bit signed integer",  0, AV_OPT_TYPE_CONST, {.dbl = 
AV_SAMPLE_FMT_S16 }, INT_MIN, INT_MAX, A|D, "request_sample_fmt"},
-- 
1.7.7.3

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to