#[repr(C)]pub struct MpegEncContext {Show 347 fields
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 [i16; 16],
pub ac_val: [*mut [i16; 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 [i16; 2],
pub b_forw_mv_table_base: *mut [i16; 2],
pub b_back_mv_table_base: *mut [i16; 2],
pub b_bidir_forw_mv_table_base: *mut [i16; 2],
pub b_bidir_back_mv_table_base: *mut [i16; 2],
pub b_direct_mv_table_base: *mut [i16; 2],
pub p_field_mv_table_base: [[*mut [i16; 2]; 2]; 2],
pub b_field_mv_table_base: [[[*mut [i16; 2]; 2]; 2]; 2],
pub p_mv_table: *mut [i16; 2],
pub b_forw_mv_table: *mut [i16; 2],
pub b_back_mv_table: *mut [i16; 2],
pub b_bidir_forw_mv_table: *mut [i16; 2],
pub b_bidir_back_mv_table: *mut [i16; 2],
pub b_direct_mv_table: *mut [i16; 2],
pub p_field_mv_table: [[*mut [i16; 2]; 2]; 2],
pub b_field_mv_table: [[[*mut [i16; 2]; 2]; 2]; 2],
pub p_field_select_table: [*mut u8; 2],
pub b_field_select_table: [[*mut u8; 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 [[u16; 64]; 2],
pub q_chroma_intra_matrix16: *mut [[u16; 64]; 2],
pub q_inter_matrix16: *mut [[u16; 64]; 2],
pub dct_error_sum: *mut [c_int; 64],
pub dct_count: [c_int; 2],
pub dct_offset: *mut [u16; 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 [i16; 64]; 12],
pub block: *mut [i16; 64],
pub blocks: *mut [[i16; 64]; 12],
pub decode_mb: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut [i16; 64]) -> c_int>,
pub block32: *mut [[i32; 64]; 12],
pub dpcm_direction: c_int,
pub dpcm_macroblock: *mut [[i16; 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,
}
Expand description
MpegEncContext.
Fields§
§class: *mut AVClass
§y_dc_scale: c_int
§c_dc_scale: c_int
§ac_pred: c_int
§block_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: ScanTable
§intra_h_scantable: ScanTable
§intra_v_scantable: ScanTable
§avctx: *mut AVCodecContext
§width: c_int
< picture size. must be a multiple of 16
height: c_int
< picture size. must be a multiple of 16
gop_size: c_int
§intra_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: AVCodecID
§fixed_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_int
§chroma_elim_threshold: c_int
§strict_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_int
§input_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_int
§picture_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 i16
§dc_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 u8
§coded_block: *mut u8
< used for coded block pattern prediction (msmpeg4v3, wmv1)
ac_val_base: *mut [i16; 16]
§ac_val: [*mut [i16; 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: ScratchpadContext
§qscale: 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_int
§adaptive_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_int
§last_pict_type: c_int
§last_non_b_pict_type: c_int
< used for MPEG-4 gmc B-frames & ratecontrol
droppable: c_int
§frame_rate_index: c_int
§mpeg2_frame_rate_ext: AVRational
§last_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: BlockDSPContext
§fdsp: FDCTDSPContext
§h264chroma: H264ChromaContext
§hdsp: HpelDSPContext
§idsp: IDCTDSPContext
§mecc: MECmpContext
§mdsp: MpegVideoDSPContext
§mpvencdsp: MpegvideoEncDSPContext
§pdsp: PixblockDSPContext
§qdsp: QpelDSPContext
§vdsp: VideoDSPContext
§h263dsp: H263DSPContext
§f_code: c_int
< forward MV resolution
b_code: c_int
< backward MV resolution for B-frames (MPEG-4)
p_mv_table_base: *mut [i16; 2]
§b_forw_mv_table_base: *mut [i16; 2]
§b_back_mv_table_base: *mut [i16; 2]
§b_bidir_forw_mv_table_base: *mut [i16; 2]
§b_bidir_back_mv_table_base: *mut [i16; 2]
§b_direct_mv_table_base: *mut [i16; 2]
§p_field_mv_table_base: [[*mut [i16; 2]; 2]; 2]
§b_field_mv_table_base: [[[*mut [i16; 2]; 2]; 2]; 2]
§p_mv_table: *mut [i16; 2]
< MV table (1MV per MB) P-frame encoding
b_forw_mv_table: *mut [i16; 2]
< MV table (1MV per MB) forward mode B-frame encoding
b_back_mv_table: *mut [i16; 2]
< MV table (1MV per MB) backward mode B-frame encoding
b_bidir_forw_mv_table: *mut [i16; 2]
< MV table (1MV per MB) bidir mode B-frame encoding
b_bidir_back_mv_table: *mut [i16; 2]
< MV table (1MV per MB) bidir mode B-frame encoding
b_direct_mv_table: *mut [i16; 2]
< MV table (1MV per MB) direct mode B-frame encoding
p_field_mv_table: [[*mut [i16; 2]; 2]; 2]
< MV table (2MV per MB) interlaced P-frame encoding
b_field_mv_table: [[[*mut [i16; 2]; 2]; 2]; 2]
< MV table (4MV per MB) interlaced B-frame encoding
p_field_select_table: [*mut u8; 2]
§b_field_select_table: [[*mut u8; 2]; 2]
§motion_est: c_int
< ME algorithm
me_penalty_compensation: c_int
§me_pre: c_int
< prepass for motion estimation
mv_dir: c_int
§mv_type: c_int
§mv: [[[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: MotionEstContext
§no_rounding: c_int
< apply no rounding to motion compensation (MPEG-4, msmpeg4, …) for B-frames rounding mode is always 0
mb_x: c_int
§mb_y: c_int
§mb_skip_run: c_int
§mb_intra: c_int
§mb_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 u8
§intra_ac_vlc_last_length: *mut u8
§intra_chroma_ac_vlc_length: *mut u8
§intra_chroma_ac_vlc_last_length: *mut u8
§inter_ac_vlc_length: *mut u8
§inter_ac_vlc_last_length: *mut u8
§luma_dc_vlc_length: *mut u8
§coded_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 [[u16; 64]; 2]
identical to the above but for MMX & these are not permutated, second 64 entries are bias
q_chroma_intra_matrix16: *mut [[u16; 64]; 2]
§q_inter_matrix16: *mut [[u16; 64]; 2]
§dct_error_sum: *mut [c_int; 64]
§dct_count: [c_int; 2]
§dct_offset: *mut [u16; 64]
§total_bits: i64
§frame_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_int
§header_bits: c_int
§i_tex_bits: c_int
§p_tex_bits: c_int
§i_count: c_int
§f_count: c_int
§b_count: c_int
§skip_count: c_int
§misc_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: ParseContext
§gob_index: c_int
§obmc: c_int
< overlapped block motion compensation
mb_info: c_int
< interval for outputting info about mb offsets as side data
prev_mb_info: c_int
§last_mb_info: c_int
§mb_info_ptr: *mut u8
§mb_info_size: c_int
§ehc_mode: c_int
§rc_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_int
§alt_inter_vlc: c_int
< alternative inter vlc
modified_quant: c_int
§loop_filter: c_int
§custom_pcf: c_int
§studio_profile: c_int
§dct_precision: c_int
§time_increment_bits: c_int
§last_time_base: c_int
§time_base: c_int
< time in seconds of last I,P,S Frame
time: i64
< time of current frame
last_non_b_time: i64
§pp_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: u16
§pb_field_time: u16
< like above, just for interlaced
real_sprite_warping_points: c_int
§sprite_offset: [[c_int; 2]; 2]
< sprite offset[isChroma][isMVY]
sprite_delta: [[c_int; 2]; 2]
< sprite_delta [isY][isMVY]
mcsel: c_int
§quant_precision: c_int
§quarter_sample: c_int
< 1->qpel, 0->half pel ME/MC
aspect_ratio_info: c_int
§sprite_warping_accuracy: c_int
§data_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_int
§tex_pb: PutBitContext
< used for data partitioned VOPs
pb2: PutBitContext
< used for data partitioned VOPs
mpeg_quant: c_int
§padding_bug_score: c_int
< used to detect the VERY common padding bug in MPEG-4
divx_packed: c_int
§bitstream_buffer: *mut u8
§bitstream_buffer_size: c_int
§allocated_bitstream_buffer_size: c_uint
§rv10_version: c_int
< RV10 version: 0 or 3
rv10_first_dc_coded: [c_int; 3]
§mjpeg_ctx: *mut MJpegContext
§esc_pos: c_int
§pred: c_int
§huffman: c_int
§mv_table_index: c_int
§rl_table_index: c_int
§rl_chroma_table_index: c_int
§dc_table_index: c_int
§use_skip_mb_code: c_int
§slice_height: c_int
< in macroblocks
first_slice_line: c_int
< used in MPEG-4 too to handle resync markers
flipflop_rounding: c_int
§msmpeg4_version: c_int
< 0=not msmpeg4, 1=mp41, 2=mp42, 3=mp43/divx3 4=wmv1/7 5=wmv2/8
per_mb_rl_table: c_int
§esc3_level_length: c_int
§esc3_run_length: c_int
§ac_stats: *mut [[[[c_int; 2]; 65]; 65]; 2]
[mb_intra][isChroma][level][run][last]
inter_intra_pred: c_int
§mspel: c_int
§gb: GetBitContext
§gop_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_int
§mpeg_f_code: [[c_int; 2]; 2]
§a53_cc: c_int
§picture_structure: c_int
§timecode_frame_start: i64
< GOP timecode frame start number, in non drop frame format
intra_dc_precision: c_int
§frame_pred_frame_dct: c_int
§top_field_first: c_int
§concealment_motion_vectors: c_int
§q_scale_type: c_int
§brd_scale: c_int
§intra_vlc_format: c_int
§alternate_scan: c_int
§seq_disp_ext: c_int
§video_format: c_int
§repeat_first_field: c_int
§chroma_420_type: c_int
§chroma_format: c_int
§chroma_x_shift: c_int
§chroma_y_shift: c_int
§progressive_frame: c_int
§full_pel: [c_int; 2]
§interlaced_dct: c_int
§first_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_int
§rtp_payload_size: c_int
§tc_opt_str: *mut c_char
< timecode option string
tc: AVTimecode
< timecode context
ptr_lastgob: *mut u8
§swap_uv: c_int
§pack_pblocks: c_int
§pblocks: [*mut [i16; 64]; 12]
§block: *mut [i16; 64]
< points to one of the following blocks
blocks: *mut [[i16; 64]; 12]
§decode_mb: Option<unsafe extern "C" fn(s: *mut MpegEncContext, block: *mut [i16; 64]) -> c_int>
§block32: *mut [[i32; 64]; 12]
§dpcm_direction: c_int
§dpcm_macroblock: *mut [[i16; 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_int
§rc_qsquish: f32
ratecontrol qmin qmax limiting method 0-> clipping, 1-> use a nice continuous function to limit qscale within qmin/qmax.
rc_qmod_amp: f32
§rc_qmod_freq: c_int
§rc_initial_cplx: f32
§rc_buffer_aggressivity: f32
§border_masking: f32
§lmin: c_int
§lmax: c_int
§vbv_ignore_qmax: c_int
§rc_eq: *mut c_char
§cplx_tab: *mut f32
§bits_tab: *mut f32
§context_reinit: c_int
§er: ERContext
§error_rate: c_int
§tmp_frames: [*mut AVFrame; 18]
§b_frame_strategy: c_int
§b_sensitivity: c_int
§frame_skip_threshold: c_int
§frame_skip_factor: c_int
§frame_skip_exp: c_int
§frame_skip_cmp: c_int
§scenechange_threshold: c_int
§noise_reduction: c_int
Trait Implementations§
Source§impl Clone for MpegEncContext
impl Clone for MpegEncContext
Source§fn clone(&self) -> MpegEncContext
fn clone(&self) -> MpegEncContext
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more