[][src]Struct ffmpeg_dev::sys::MpegEncContext

#[repr(C)]
pub struct MpegEncContext {
    pub class: *mut AVClass,
    pub y_dc_scale: c_int,
    pub c_dc_scale: c_int,
    pub ac_pred: c_int,
    pub block_last_index: [c_int; 12],
    pub h263_aic: c_int,
    pub inter_scantable: ScanTable,
    pub intra_scantable: ScanTable,
    pub intra_h_scantable: ScanTable,
    pub intra_v_scantable: ScanTable,
    pub avctx: *mut AVCodecContext,
    pub width: c_int,
    pub height: c_int,
    pub gop_size: c_int,
    pub intra_only: c_int,
    pub bit_rate: i64,
    pub out_format: OutputFormat,
    pub h263_pred: c_int,
    pub pb_frame: c_int,
    pub h263_plus: c_int,
    pub h263_flv: c_int,
    pub codec_id: AVCodecID,
    pub fixed_qscale: c_int,
    pub encoding: c_int,
    pub max_b_frames: c_int,
    pub luma_elim_threshold: c_int,
    pub chroma_elim_threshold: c_int,
    pub strict_std_compliance: c_int,
    pub workaround_bugs: c_int,
    pub codec_tag: c_int,
    pub context_initialized: c_int,
    pub input_picture_number: c_int,
    pub coded_picture_number: c_int,
    pub picture_number: c_int,
    pub picture_in_gop_number: c_int,
    pub mb_width: c_int,
    pub mb_height: c_int,
    pub mb_stride: c_int,
    pub b8_stride: c_int,
    pub h_edge_pos: c_int,
    pub v_edge_pos: c_int,
    pub mb_num: c_int,
    pub linesize: isize,
    pub uvlinesize: isize,
    pub picture: *mut Picture,
    pub input_picture: *mut *mut Picture,
    pub reordered_input_picture: *mut *mut Picture,
    pub user_specified_pts: i64,
    pub dts_delta: i64,
    pub reordered_pts: i64,
    pub pb: PutBitContext,
    pub start_mb_y: c_int,
    pub end_mb_y: c_int,
    pub thread_context: [*mut MpegEncContext; 32],
    pub slice_context_count: c_int,
    pub last_picture: Picture,
    pub next_picture: Picture,
    pub new_picture: Picture,
    pub current_picture: Picture,
    pub last_picture_ptr: *mut Picture,
    pub next_picture_ptr: *mut Picture,
    pub current_picture_ptr: *mut Picture,
    pub last_dc: [c_int; 3],
    pub dc_val_base: *mut i16,
    pub dc_val: [*mut i16; 3],
    pub y_dc_scale_table: *const u8,
    pub c_dc_scale_table: *const u8,
    pub chroma_qscale_table: *const u8,
    pub coded_block_base: *mut u8,
    pub coded_block: *mut u8,
    pub ac_val_base: *mut [c_short; 16],
    pub ac_val: [*mut [c_short; 16]; 3],
    pub mb_skipped: c_int,
    pub mbskip_table: *mut u8,
    pub mbintra_table: *mut u8,
    pub cbp_table: *mut u8,
    pub pred_dir_table: *mut u8,
    pub sc: ScratchpadContext,
    pub qscale: c_int,
    pub chroma_qscale: c_int,
    pub lambda: c_uint,
    pub lambda2: c_uint,
    pub lambda_table: *mut c_int,
    pub adaptive_quant: c_int,
    pub dquant: c_int,
    pub closed_gop: c_int,
    pub pict_type: c_int,
    pub vbv_delay: c_int,
    pub last_pict_type: c_int,
    pub last_non_b_pict_type: c_int,
    pub droppable: c_int,
    pub frame_rate_index: c_int,
    pub mpeg2_frame_rate_ext: AVRational,
    pub last_lambda_for: [c_int; 5],
    pub skipdct: c_int,
    pub unrestricted_mv: c_int,
    pub h263_long_vectors: c_int,
    pub bdsp: BlockDSPContext,
    pub fdsp: FDCTDSPContext,
    pub h264chroma: H264ChromaContext,
    pub hdsp: HpelDSPContext,
    pub idsp: IDCTDSPContext,
    pub mecc: MECmpContext,
    pub mdsp: MpegVideoDSPContext,
    pub mpvencdsp: MpegvideoEncDSPContext,
    pub pdsp: PixblockDSPContext,
    pub qdsp: QpelDSPContext,
    pub vdsp: VideoDSPContext,
    pub h263dsp: H263DSPContext,
    pub f_code: c_int,
    pub b_code: c_int,
    pub p_mv_table_base: *mut [c_short; 2],
    pub b_forw_mv_table_base: *mut [c_short; 2],
    pub b_back_mv_table_base: *mut [c_short; 2],
    pub b_bidir_forw_mv_table_base: *mut [c_short; 2],
    pub b_bidir_back_mv_table_base: *mut [c_short; 2],
    pub b_direct_mv_table_base: *mut [c_short; 2],
    pub p_field_mv_table_base: [[*mut [c_short; 2]; 2]; 2],
    pub b_field_mv_table_base: [[[*mut [c_short; 2]; 2]; 2]; 2],
    pub p_mv_table: *mut [c_short; 2],
    pub b_forw_mv_table: *mut [c_short; 2],
    pub b_back_mv_table: *mut [c_short; 2],
    pub b_bidir_forw_mv_table: *mut [c_short; 2],
    pub b_bidir_back_mv_table: *mut [c_short; 2],
    pub b_direct_mv_table: *mut [c_short; 2],
    pub p_field_mv_table: [[*mut [c_short; 2]; 2]; 2],
    pub b_field_mv_table: [[[*mut [c_short; 2]; 2]; 2]; 2],
    pub p_field_select_table: [*mut c_uchar; 2],
    pub b_field_select_table: [[*mut c_uchar; 2]; 2],
    pub motion_est: c_int,
    pub me_penalty_compensation: c_int,
    pub me_pre: c_int,
    pub mv_dir: c_int,
    pub mv_type: c_int,
    pub mv: [[[c_int; 2]; 4]; 2],
    pub field_select: [[c_int; 2]; 2],
    pub last_mv: [[[c_int; 2]; 2]; 2],
    pub fcode_tab: *mut u8,
    pub direct_scale_mv: [[i16; 64]; 2],
    pub me: MotionEstContext,
    pub no_rounding: c_int,
    pub mb_x: c_int,
    pub mb_y: c_int,
    pub mb_skip_run: c_int,
    pub mb_intra: c_int,
    pub mb_type: *mut u16,
    pub block_index: [c_int; 6],
    pub block_wrap: [c_int; 6],
    pub dest: [*mut u8; 3],
    pub mb_index2xy: *mut c_int,
    pub intra_matrix: [u16; 64],
    pub chroma_intra_matrix: [u16; 64],
    pub inter_matrix: [u16; 64],
    pub chroma_inter_matrix: [u16; 64],
    pub force_duplicated_matrix: c_int,
    pub intra_quant_bias: c_int,
    pub inter_quant_bias: c_int,
    pub min_qcoeff: c_int,
    pub max_qcoeff: c_int,
    pub ac_esc_length: c_int,
    pub intra_ac_vlc_length: *mut u8,
    pub intra_ac_vlc_last_length: *mut u8,
    pub intra_chroma_ac_vlc_length: *mut u8,
    pub intra_chroma_ac_vlc_last_length: *mut u8,
    pub inter_ac_vlc_length: *mut u8,
    pub inter_ac_vlc_last_length: *mut u8,
    pub luma_dc_vlc_length: *mut u8,
    pub coded_score: [c_int; 12],
    pub q_intra_matrix: *mut [c_int; 64],
    pub q_chroma_intra_matrix: *mut [c_int; 64],
    pub q_inter_matrix: *mut [c_int; 64],
    pub q_intra_matrix16: *mut [[c_ushort; 64]; 2],
    pub q_chroma_intra_matrix16: *mut [[c_ushort; 64]; 2],
    pub q_inter_matrix16: *mut [[c_ushort; 64]; 2],
    pub dct_error_sum: *mut [c_int; 64],
    pub dct_count: [c_int; 2],
    pub dct_offset: *mut [c_ushort; 64],
    pub total_bits: i64,
    pub frame_bits: c_int,
    pub stuffing_bits: c_int,
    pub next_lambda: c_int,
    pub rc_context: RateControlContext,
    pub mv_bits: c_int,
    pub header_bits: c_int,
    pub i_tex_bits: c_int,
    pub p_tex_bits: c_int,
    pub i_count: c_int,
    pub f_count: c_int,
    pub b_count: c_int,
    pub skip_count: c_int,
    pub misc_bits: c_int,
    pub last_bits: c_int,
    pub resync_mb_x: c_int,
    pub resync_mb_y: c_int,
    pub last_resync_gb: GetBitContext,
    pub mb_num_left: c_int,
    pub next_p_frame_damaged: c_int,
    pub parse_context: ParseContext,
    pub gob_index: c_int,
    pub obmc: c_int,
    pub mb_info: c_int,
    pub prev_mb_info: c_int,
    pub last_mb_info: c_int,
    pub mb_info_ptr: *mut u8,
    pub mb_info_size: c_int,
    pub ehc_mode: c_int,
    pub rc_strategy: c_int,
    pub umvplus: c_int,
    pub h263_aic_dir: c_int,
    pub h263_slice_structured: c_int,
    pub alt_inter_vlc: c_int,
    pub modified_quant: c_int,
    pub loop_filter: c_int,
    pub custom_pcf: c_int,
    pub studio_profile: c_int,
    pub dct_precision: c_int,
    pub time_increment_bits: c_int,
    pub last_time_base: c_int,
    pub time_base: c_int,
    pub time: i64,
    pub last_non_b_time: i64,
    pub pp_time: u16,
    pub pb_time: u16,
    pub pp_field_time: u16,
    pub pb_field_time: u16,
    pub real_sprite_warping_points: c_int,
    pub sprite_offset: [[c_int; 2]; 2],
    pub sprite_delta: [[c_int; 2]; 2],
    pub mcsel: c_int,
    pub quant_precision: c_int,
    pub quarter_sample: c_int,
    pub aspect_ratio_info: c_int,
    pub sprite_warping_accuracy: c_int,
    pub data_partitioning: c_int,
    pub partitioned_frame: c_int,
    pub low_delay: c_int,
    pub vo_type: c_int,
    pub tex_pb: PutBitContext,
    pub pb2: PutBitContext,
    pub mpeg_quant: c_int,
    pub padding_bug_score: c_int,
    pub divx_packed: c_int,
    pub bitstream_buffer: *mut u8,
    pub bitstream_buffer_size: c_int,
    pub allocated_bitstream_buffer_size: c_uint,
    pub rv10_version: c_int,
    pub rv10_first_dc_coded: [c_int; 3],
    pub mjpeg_ctx: *mut MJpegContext,
    pub esc_pos: c_int,
    pub pred: c_int,
    pub huffman: c_int,
    pub mv_table_index: c_int,
    pub rl_table_index: c_int,
    pub rl_chroma_table_index: c_int,
    pub dc_table_index: c_int,
    pub use_skip_mb_code: c_int,
    pub slice_height: c_int,
    pub first_slice_line: c_int,
    pub flipflop_rounding: c_int,
    pub msmpeg4_version: c_int,
    pub per_mb_rl_table: c_int,
    pub esc3_level_length: c_int,
    pub esc3_run_length: c_int,
    pub ac_stats: *mut [[[[c_int; 2]; 65]; 65]; 2],
    pub inter_intra_pred: c_int,
    pub mspel: c_int,
    pub gb: GetBitContext,
    pub gop_picture_number: c_int,
    pub last_mv_dir: c_int,
    pub vbv_delay_ptr: *mut u8,
    pub progressive_sequence: c_int,
    pub mpeg_f_code: [[c_int; 2]; 2],
    pub a53_cc: c_int,
    pub picture_structure: c_int,
    pub timecode_frame_start: i64,
    pub intra_dc_precision: c_int,
    pub frame_pred_frame_dct: c_int,
    pub top_field_first: c_int,
    pub concealment_motion_vectors: c_int,
    pub q_scale_type: c_int,
    pub brd_scale: c_int,
    pub intra_vlc_format: c_int,
    pub alternate_scan: c_int,
    pub seq_disp_ext: c_int,
    pub video_format: c_int,
    pub repeat_first_field: c_int,
    pub chroma_420_type: c_int,
    pub chroma_format: c_int,
    pub chroma_x_shift: c_int,
    pub chroma_y_shift: c_int,
    pub progressive_frame: c_int,
    pub full_pel: [c_int; 2],
    pub interlaced_dct: c_int,
    pub first_field: c_int,
    pub drop_frame_timecode: c_int,
    pub scan_offset: c_int,
    pub rtp_mode: c_int,
    pub rtp_payload_size: c_int,
    pub tc_opt_str: *mut c_char,
    pub tc: AVTimecode,
    pub ptr_lastgob: *mut u8,
    pub swap_uv: c_int,
    pub pack_pblocks: c_int,
    pub pblocks: [*mut [c_short; 64]; 12],
    pub block: *mut [c_short; 64],
    pub blocks: *mut [[c_short; 64]; 12],
    pub decode_mb: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut [i16; 64]) -> c_int>,
    pub block32: *mut [[c_int; 64]; 12],
    pub dpcm_direction: c_int,
    pub dpcm_macroblock: *mut [[c_short; 256]; 3],
    pub dct_unquantize_mpeg1_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_mpeg1_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_mpeg2_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_mpeg2_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_h263_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_h263_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_unquantize_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>,
    pub dct_quantize: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int, overflow: *mut c_int) -> c_int>,
    pub fast_dct_quantize: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int, overflow: *mut c_int) -> c_int>,
    pub denoise_dct: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16)>,
    pub mpv_flags: c_int,
    pub quantizer_noise_shaping: c_int,
    pub rc_qsquish: f32,
    pub rc_qmod_amp: f32,
    pub rc_qmod_freq: c_int,
    pub rc_initial_cplx: f32,
    pub rc_buffer_aggressivity: f32,
    pub border_masking: f32,
    pub lmin: c_int,
    pub lmax: c_int,
    pub vbv_ignore_qmax: c_int,
    pub rc_eq: *mut c_char,
    pub cplx_tab: *mut f32,
    pub bits_tab: *mut f32,
    pub context_reinit: c_int,
    pub er: ERContext,
    pub error_rate: c_int,
    pub tmp_frames: [*mut AVFrame; 18],
    pub b_frame_strategy: c_int,
    pub b_sensitivity: c_int,
    pub frame_skip_threshold: c_int,
    pub frame_skip_factor: c_int,
    pub frame_skip_exp: c_int,
    pub frame_skip_cmp: c_int,
    pub scenechange_threshold: c_int,
    pub noise_reduction: c_int,
}

MpegEncContext.

Fields

class: *mut AVClassy_dc_scale: c_intc_dc_scale: c_intac_pred: c_intblock_last_index: [c_int; 12]

< last non zero coefficient in block

h263_aic: c_int

< Advanced INTRA Coding (AIC)

inter_scantable: ScanTable

< if inter == intra then intra should be used to reduce the cache usage

intra_scantable: ScanTableintra_h_scantable: ScanTableintra_v_scantable: ScanTableavctx: *mut AVCodecContextwidth: c_int

< picture size. must be a multiple of 16

height: c_int

< picture size. must be a multiple of 16

gop_size: c_intintra_only: c_int

< if true, only intra pictures are generated

bit_rate: i64

< wanted bit rate

out_format: OutputFormat

< output format

h263_pred: c_int

< use MPEG-4/H.263 ac/dc predictions

pb_frame: c_int

< PB-frame mode (0 = none, 1 = base, 2 = improved)

h263_plus: c_int

< H.263+ headers

h263_flv: c_int

< use flv H.263 header

codec_id: AVCodecIDfixed_qscale: c_int

< fixed qscale if non zero

encoding: c_int

< true if we are encoding (vs decoding)

max_b_frames: c_int

< max number of B-frames for encoding

luma_elim_threshold: c_intchroma_elim_threshold: c_intstrict_std_compliance: c_int

< strictly follow the std (MPEG-4, ...)

workaround_bugs: c_int

< workaround bugs in encoders which cannot be detected automatically

codec_tag: c_int

< internal codec_tag upper case converted from avctx codec_tag

context_initialized: c_intinput_picture_number: c_int

< used to set pic->display_picture_number, should not be used for/by anything else

coded_picture_number: c_int

< used to set pic->coded_picture_number, should not be used for/by anything else

picture_number: c_intpicture_in_gop_number: c_int

< 0-> first pic in gop, ...

mb_width: c_int

< number of MBs horizontally & vertically

mb_height: c_int

< number of MBs horizontally & vertically

mb_stride: c_int

< mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11

b8_stride: c_int

< 2*mb_width+1 used for some 8x8 block arrays to allow simple addressing

h_edge_pos: c_int

< horizontal / vertical position of the right/bottom edge (pixel replication)

v_edge_pos: c_int

< horizontal / vertical position of the right/bottom edge (pixel replication)

mb_num: c_int

< number of MBs of a picture

linesize: isize

< line size, in bytes, may be different from width

uvlinesize: isize

< line size, for chroma in bytes, may be different from width

picture: *mut Picture

< main picture buffer

input_picture: *mut *mut Picture

< next pictures on display order for encoding

reordered_input_picture: *mut *mut Picture

< pointer to the next pictures in coded order for encoding

user_specified_pts: i64

< last non-zero pts from AVFrame which was passed into avcodec_encode_video2()

dts_delta: i64

pts difference between the first and second input frame, used for calculating dts of the first frame when there's a delay

reordered_pts: i64

reordered pts to be used as dts for the next output frame when there's a delay

pb: PutBitContext

bit output

start_mb_y: c_int

< start mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)

end_mb_y: c_int

< end mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)

thread_context: [*mut MpegEncContext; 32]slice_context_count: c_int

< number of used thread_contexts

last_picture: Picture

copy of the previous picture structure. note, linesize & data, might not match the previous picture (for field pictures)

next_picture: Picture

copy of the next picture structure. note, linesize & data, might not match the next picture (for field pictures)

new_picture: Picture

copy of the source picture structure for encoding. note, linesize & data, might not match the source picture (for field pictures)

current_picture: Picture

< buffer to store the decompressed current picture

last_picture_ptr: *mut Picture

< pointer to the previous picture.

next_picture_ptr: *mut Picture

< pointer to the next picture (for bidir pred)

current_picture_ptr: *mut Picture

< pointer to the current picture

last_dc: [c_int; 3]

< last DC values for MPEG-1

dc_val_base: *mut i16dc_val: [*mut i16; 3]

< used for MPEG-4 DC prediction, all 3 arrays must be continuous

y_dc_scale_table: *const u8

< qscale -> y_dc_scale table

c_dc_scale_table: *const u8

< qscale -> c_dc_scale table

chroma_qscale_table: *const u8

< qscale -> chroma_qscale (H.263)

coded_block_base: *mut u8coded_block: *mut u8

< used for coded block pattern prediction (msmpeg4v3, wmv1)

ac_val_base: *mut [c_short; 16]ac_val: [*mut [c_short; 16]; 3]

< used for MPEG-4 AC prediction, all 3 arrays must be continuous

mb_skipped: c_int

< MUST BE SET only during DECODING

mbskip_table: *mut u8

< used to avoid copy if macroblock skipped (for black regions for example) and used for B-frame encoding & decoding (contains skip table of next P-frame)

mbintra_table: *mut u8

< used to avoid setting {ac, dc, cbp}-pred stuff to zero on inter MB decoding

cbp_table: *mut u8

< used to store cbp, ac_pred for partitioned decoding

pred_dir_table: *mut u8

< used to store pred_dir for partitioned decoding

sc: ScratchpadContextqscale: c_int

< QP

chroma_qscale: c_int

< chroma QP

lambda: c_uint

< Lagrange multiplier used in rate distortion

lambda2: c_uint

< (lambda*lambda) >> FF_LAMBDA_SHIFT

lambda_table: *mut c_intadaptive_quant: c_int

< use adaptive quantization

dquant: c_int

< qscale difference to prev qscale

closed_gop: c_int

< MPEG1/2 GOP is closed

pict_type: c_int

< AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...

vbv_delay: c_intlast_pict_type: c_intlast_non_b_pict_type: c_int

< used for MPEG-4 gmc B-frames & ratecontrol

droppable: c_intframe_rate_index: c_intmpeg2_frame_rate_ext: AVRationallast_lambda_for: [c_int; 5]

< last lambda for a specific pict type

skipdct: c_int

< skip dct and code zero residual

unrestricted_mv: c_int

< mv can point outside of the coded picture

h263_long_vectors: c_int

< use horrible H.263v1 long vector mode

bdsp: BlockDSPContextfdsp: FDCTDSPContexth264chroma: H264ChromaContexthdsp: HpelDSPContextidsp: IDCTDSPContextmecc: MECmpContextmdsp: MpegVideoDSPContextmpvencdsp: MpegvideoEncDSPContextpdsp: PixblockDSPContextqdsp: QpelDSPContextvdsp: VideoDSPContexth263dsp: H263DSPContextf_code: c_int

< forward MV resolution

b_code: c_int

< backward MV resolution for B-frames (MPEG-4)

p_mv_table_base: *mut [c_short; 2]b_forw_mv_table_base: *mut [c_short; 2]b_back_mv_table_base: *mut [c_short; 2]b_bidir_forw_mv_table_base: *mut [c_short; 2]b_bidir_back_mv_table_base: *mut [c_short; 2]b_direct_mv_table_base: *mut [c_short; 2]p_field_mv_table_base: [[*mut [c_short; 2]; 2]; 2]b_field_mv_table_base: [[[*mut [c_short; 2]; 2]; 2]; 2]p_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) P-frame encoding

b_forw_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) forward mode B-frame encoding

b_back_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) backward mode B-frame encoding

b_bidir_forw_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) bidir mode B-frame encoding

b_bidir_back_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) bidir mode B-frame encoding

b_direct_mv_table: *mut [c_short; 2]

< MV table (1MV per MB) direct mode B-frame encoding

p_field_mv_table: [[*mut [c_short; 2]; 2]; 2]

< MV table (2MV per MB) interlaced P-frame encoding

b_field_mv_table: [[[*mut [c_short; 2]; 2]; 2]; 2]

< MV table (4MV per MB) interlaced B-frame encoding

p_field_select_table: [*mut c_uchar; 2]b_field_select_table: [[*mut c_uchar; 2]; 2]motion_est: c_int

< ME algorithm

me_penalty_compensation: c_intme_pre: c_int

< prepass for motion estimation

mv_dir: c_intmv_type: c_intmv: [[[c_int; 2]; 4]; 2]

motion vectors for a macroblock first coordinate : 0 = forward 1 = backward second " : depend on type third " : 0 = x, 1 = y

field_select: [[c_int; 2]; 2]last_mv: [[[c_int; 2]; 2]; 2]

< last MV, used for MV prediction in MPEG-1 & B-frame MPEG-4

fcode_tab: *mut u8

< smallest fcode needed for each MV

direct_scale_mv: [[i16; 64]; 2]

< precomputed to avoid divisions in ff_mpeg4_set_direct_mv

me: MotionEstContextno_rounding: c_int

< apply no rounding to motion compensation (MPEG-4, msmpeg4, ...) for B-frames rounding mode is always 0

mb_x: c_intmb_y: c_intmb_skip_run: c_intmb_intra: c_intmb_type: *mut u16

< Table for candidate MB types for encoding (defines in mpegutils.h)

block_index: [c_int; 6]

< index to current MB in block based arrays with edges

block_wrap: [c_int; 6]dest: [*mut u8; 3]mb_index2xy: *mut c_int

< mb_index -> mb_x + mb_y*mb_stride

intra_matrix: [u16; 64]

matrix transmitted in the bitstream

chroma_intra_matrix: [u16; 64]inter_matrix: [u16; 64]chroma_inter_matrix: [u16; 64]force_duplicated_matrix: c_int

< Force duplication of mjpeg matrices, useful for rtp streaming

intra_quant_bias: c_int

< bias for the quantizer

inter_quant_bias: c_int

< bias for the quantizer

min_qcoeff: c_int

< minimum encodable coefficient

max_qcoeff: c_int

< maximum encodable coefficient

ac_esc_length: c_int

< num of bits needed to encode the longest esc

intra_ac_vlc_length: *mut u8intra_ac_vlc_last_length: *mut u8intra_chroma_ac_vlc_length: *mut u8intra_chroma_ac_vlc_last_length: *mut u8inter_ac_vlc_length: *mut u8inter_ac_vlc_last_length: *mut u8luma_dc_vlc_length: *mut u8coded_score: [c_int; 12]q_intra_matrix: *mut [c_int; 64]

precomputed matrix (combine qscale and DCT renorm)

q_chroma_intra_matrix: *mut [c_int; 64]q_inter_matrix: *mut [c_int; 64]q_intra_matrix16: *mut [[c_ushort; 64]; 2]

identical to the above but for MMX & these are not permutated, second 64 entries are bias

q_chroma_intra_matrix16: *mut [[c_ushort; 64]; 2]q_inter_matrix16: *mut [[c_ushort; 64]; 2]dct_error_sum: *mut [c_int; 64]dct_count: [c_int; 2]dct_offset: *mut [c_ushort; 64]total_bits: i64frame_bits: c_int

< bits used for the current frame

stuffing_bits: c_int

< bits used for stuffing

next_lambda: c_int

< next lambda used for retrying to encode a frame

rc_context: RateControlContext

< contains stuff only accessed in ratecontrol.c

mv_bits: c_intheader_bits: c_inti_tex_bits: c_intp_tex_bits: c_inti_count: c_intf_count: c_intb_count: c_intskip_count: c_intmisc_bits: c_int

< cbp, mb_type

last_bits: c_int

< temp var used for calculating the above vars

resync_mb_x: c_int

< x position of last resync marker

resync_mb_y: c_int

< y position of last resync marker

last_resync_gb: GetBitContext

< used to search for the next resync marker

mb_num_left: c_int

< number of MBs left in this video packet (for partitioned Slices only)

next_p_frame_damaged: c_int

< set if the next p frame is damaged, to avoid showing trashed B-frames

parse_context: ParseContextgob_index: c_intobmc: c_int

< overlapped block motion compensation

mb_info: c_int

< interval for outputting info about mb offsets as side data

prev_mb_info: c_intlast_mb_info: c_intmb_info_ptr: *mut u8mb_info_size: c_intehc_mode: c_intrc_strategy: c_int

< deprecated

umvplus: c_int

< == H.263+ && unrestricted_mv

h263_aic_dir: c_int

< AIC direction: 0 = left, 1 = top

h263_slice_structured: c_intalt_inter_vlc: c_int

< alternative inter vlc

modified_quant: c_intloop_filter: c_intcustom_pcf: c_intstudio_profile: c_intdct_precision: c_inttime_increment_bits: c_intlast_time_base: c_inttime_base: c_int

< time in seconds of last I,P,S Frame

time: i64

< time of current frame

last_non_b_time: i64pp_time: u16

< time distance between the last 2 p,s,i frames

pb_time: u16

< time distance between the last b and p,s,i frame

pp_field_time: u16pb_field_time: u16

< like above, just for interlaced

real_sprite_warping_points: c_intsprite_offset: [[c_int; 2]; 2]

< sprite offset[isChroma][isMVY]

sprite_delta: [[c_int; 2]; 2]

< sprite_delta [isY][isMVY]

mcsel: c_intquant_precision: c_intquarter_sample: c_int

< 1->qpel, 0->half pel ME/MC

aspect_ratio_info: c_intsprite_warping_accuracy: c_intdata_partitioning: c_int

< data partitioning flag from header

partitioned_frame: c_int

< is current frame partitioned

low_delay: c_int

< no reordering needed / has no B-frames

vo_type: c_inttex_pb: PutBitContext

< used for data partitioned VOPs

pb2: PutBitContext

< used for data partitioned VOPs

mpeg_quant: c_intpadding_bug_score: c_int

< used to detect the VERY common padding bug in MPEG-4

divx_packed: c_intbitstream_buffer: *mut u8bitstream_buffer_size: c_intallocated_bitstream_buffer_size: c_uintrv10_version: c_int

< RV10 version: 0 or 3

rv10_first_dc_coded: [c_int; 3]mjpeg_ctx: *mut MJpegContextesc_pos: c_intpred: c_inthuffman: c_intmv_table_index: c_intrl_table_index: c_intrl_chroma_table_index: c_intdc_table_index: c_intuse_skip_mb_code: c_intslice_height: c_int

< in macroblocks

first_slice_line: c_int

< used in MPEG-4 too to handle resync markers

flipflop_rounding: c_intmsmpeg4_version: c_int

< 0=not msmpeg4, 1=mp41, 2=mp42, 3=mp43/divx3 4=wmv1/7 5=wmv2/8

per_mb_rl_table: c_intesc3_level_length: c_intesc3_run_length: c_intac_stats: *mut [[[[c_int; 2]; 65]; 65]; 2]

[mb_intra][isChroma][level][run][last]

inter_intra_pred: c_intmspel: c_intgb: GetBitContextgop_picture_number: c_int

< index of the first picture of a GOP based on fake_pic_num & MPEG-1 specific

last_mv_dir: c_int

< last mv_dir, used for B-frame encoding

vbv_delay_ptr: *mut u8

< pointer to vbv_delay in the bitstream

progressive_sequence: c_intmpeg_f_code: [[c_int; 2]; 2]a53_cc: c_intpicture_structure: c_inttimecode_frame_start: i64

< GOP timecode frame start number, in non drop frame format

intra_dc_precision: c_intframe_pred_frame_dct: c_inttop_field_first: c_intconcealment_motion_vectors: c_intq_scale_type: c_intbrd_scale: c_intintra_vlc_format: c_intalternate_scan: c_intseq_disp_ext: c_intvideo_format: c_intrepeat_first_field: c_intchroma_420_type: c_intchroma_format: c_intchroma_x_shift: c_intchroma_y_shift: c_intprogressive_frame: c_intfull_pel: [c_int; 2]interlaced_dct: c_intfirst_field: c_int

< is 1 for the first field of a field picture 0 otherwise

drop_frame_timecode: c_int

< timecode is in drop frame format.

scan_offset: c_int

< reserve space for SVCD scan offset user data.

rtp_mode: c_intrtp_payload_size: c_inttc_opt_str: *mut c_char

< timecode option string

tc: AVTimecode

< timecode context

ptr_lastgob: *mut u8swap_uv: c_intpack_pblocks: c_intpblocks: [*mut [c_short; 64]; 12]block: *mut [c_short; 64]

< points to one of the following blocks

blocks: *mut [[c_short; 64]; 12]decode_mb: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut [i16; 64]) -> c_int>block32: *mut [[c_int; 64]; 12]dpcm_direction: c_intdpcm_macroblock: *mut [[c_short; 256]; 3]dct_unquantize_mpeg1_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_mpeg1_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_mpeg2_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_mpeg2_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_h263_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_h263_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_intra: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_unquantize_inter: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int)>dct_quantize: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int, overflow: *mut c_int) -> c_int>fast_dct_quantize: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16, n: c_int, qscale: c_int, overflow: *mut c_int) -> c_int>denoise_dct: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut i16)>mpv_flags: c_int

< flags set by private options

quantizer_noise_shaping: c_intrc_qsquish: f32

ratecontrol qmin qmax limiting method 0-> clipping, 1-> use a nice continuous function to limit qscale within qmin/qmax.

rc_qmod_amp: f32rc_qmod_freq: c_intrc_initial_cplx: f32rc_buffer_aggressivity: f32border_masking: f32lmin: c_intlmax: c_intvbv_ignore_qmax: c_intrc_eq: *mut c_charcplx_tab: *mut f32bits_tab: *mut f32context_reinit: c_inter: ERContexterror_rate: c_inttmp_frames: [*mut AVFrame; 18]b_frame_strategy: c_intb_sensitivity: c_intframe_skip_threshold: c_intframe_skip_factor: c_intframe_skip_exp: c_intframe_skip_cmp: c_intscenechange_threshold: c_intnoise_reduction: c_int

Trait Implementations

impl Clone for MpegEncContext[src]

impl Copy for MpegEncContext[src]

Auto Trait Implementations

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = !

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]