FFmpeg
Public Attributes | List of all members
MpegEncContext Struct Reference

MpegEncContext. More...

#include <mpegvideo.h>

Public Attributes

AVClassclass
 
int y_dc_scale
 
int c_dc_scale
 
int ac_pred
 
int block_last_index [12]
 last non zero coefficient in block
 
int h263_aic
 Advanced INTRA Coding (AIC)
 
ScanTable inter_scantable
 if inter == intra then intra should be used to reduce the cache usage
 
ScanTable intra_scantable
 
ScanTable intra_h_scantable
 
ScanTable intra_v_scantable
 
struct AVCodecContextavctx
 
int width
 
int height
 picture size. must be a multiple of 16
 
int gop_size
 
int intra_only
 if true, only intra pictures are generated
 
int64_t bit_rate
 wanted bit rate
 
enum OutputFormat out_format
 output format
 
int h263_pred
 use MPEG-4/H.263 ac/dc predictions
 
int pb_frame
 PB-frame mode (0 = none, 1 = base, 2 = improved)
 
int h263_plus
 H.263+ headers.
 
int h263_flv
 use flv H.263 header
 
enum AVCodecID codec_id
 
int fixed_qscale
 fixed qscale if non zero
 
int encoding
 true if we are encoding (vs decoding)
 
int max_b_frames
 max number of B-frames for encoding
 
int luma_elim_threshold
 
int chroma_elim_threshold
 
int strict_std_compliance
 strictly follow the std (MPEG-4, ...)
 
int workaround_bugs
 workaround bugs in encoders which cannot be detected automatically
 
int codec_tag
 internal codec_tag upper case converted from avctx codec_tag
 
int context_initialized
 
int input_picture_number
 used to set pic->display_picture_number, should not be used for/by anything else
 
int coded_picture_number
 used to set pic->coded_picture_number, should not be used for/by anything else
 
int picture_number
 
int picture_in_gop_number
 0-> first pic in gop, ...
 
int mb_width
 
int mb_height
 number of MBs horizontally & vertically
 
int mb_stride
 mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11
 
int b8_stride
 2*mb_width+1 used for some 8x8 block arrays to allow simple addressing
 
int h_edge_pos
 
int v_edge_pos
 horizontal / vertical position of the right/bottom edge (pixel replication)
 
int mb_num
 number of MBs of a picture
 
ptrdiff_t linesize
 line size, in bytes, may be different from width
 
ptrdiff_t uvlinesize
 line size, for chroma in bytes, may be different from width
 
Picturepicture
 main picture buffer
 
Picture ** input_picture
 next pictures on display order for encoding
 
Picture ** reordered_input_picture
 pointer to the next pictures in coded order for encoding
 
int64_t user_specified_pts
 last non-zero pts from AVFrame which was passed into avcodec_encode_video2()
 
int64_t dts_delta
 pts difference between the first and second input frame, used for calculating dts of the first frame when there's a delay
 
int64_t reordered_pts
 reordered pts to be used as dts for the next output frame when there's a delay
 
PutBitContext pb
 bit output
 
int start_mb_y
 start mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)
 
int end_mb_y
 end mb_y of this thread (so current thread should process start_mb_y <= row < end_mb_y)
 
struct MpegEncContextthread_context [MAX_THREADS]
 
int slice_context_count
 number of used thread_contexts
 
Picture last_picture
 copy of the previous picture structure. More...
 
Picture next_picture
 copy of the next picture structure. More...
 
Picture new_picture
 copy of the source picture structure for encoding. More...
 
Picture current_picture
 copy of the current picture structure. More...
 
Picturelast_picture_ptr
 pointer to the previous picture.
 
Picturenext_picture_ptr
 pointer to the next picture (for bidir pred)
 
Picturecurrent_picture_ptr
 pointer to the current picture
 
int last_dc [3]
 last DC values for MPEG-1
 
int16_t * dc_val_base
 
int16_t * dc_val [3]
 used for MPEG-4 DC prediction, all 3 arrays must be continuous
 
const uint8_t * y_dc_scale_table
 qscale -> y_dc_scale table
 
const uint8_t * c_dc_scale_table
 qscale -> c_dc_scale table
 
const uint8_t * chroma_qscale_table
 qscale -> chroma_qscale (H.263)
 
uint8_t * coded_block_base
 
uint8_t * coded_block
 used for coded block pattern prediction (msmpeg4v3, wmv1)
 
int16_t(* ac_val_base )[16]
 
int16_t(*[3] ac_val )[16]
 used for MPEG-4 AC prediction, all 3 arrays must be continuous
 
int mb_skipped
 MUST BE SET only during DECODING.
 
uint8_t * mbskip_table
 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)
 
uint8_t * mbintra_table
 used to avoid setting {ac, dc, cbp}-pred stuff to zero on inter MB decoding
 
uint8_t * cbp_table
 used to store cbp, ac_pred for partitioned decoding
 
uint8_t * pred_dir_table
 used to store pred_dir for partitioned decoding
 
ScratchpadContext sc
 
int qscale
 QP.
 
int chroma_qscale
 chroma QP
 
unsigned int lambda
 Lagrange multiplier used in rate distortion.
 
unsigned int lambda2
 (lambda*lambda) >> FF_LAMBDA_SHIFT
 
int * lambda_table
 
int adaptive_quant
 use adaptive quantization
 
int dquant
 qscale difference to prev qscale
 
int closed_gop
 MPEG1/2 GOP is closed.
 
int pict_type
 AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
 
int vbv_delay
 
int last_pict_type
 
int last_non_b_pict_type
 used for MPEG-4 gmc B-frames & ratecontrol
 
int droppable
 
int frame_rate_index
 
AVRational mpeg2_frame_rate_ext
 
int last_lambda_for [5]
 last lambda for a specific pict type
 
int skipdct
 skip dct and code zero residual
 
int unrestricted_mv
 mv can point outside of the coded picture
 
int h263_long_vectors
 use horrible H.263v1 long vector mode
 
BlockDSPContext bdsp
 
FDCTDSPContext fdsp
 
H264ChromaContext h264chroma
 
HpelDSPContext hdsp
 
IDCTDSPContext idsp
 
MECmpContext mecc
 
MpegVideoDSPContext mdsp
 
MpegvideoEncDSPContext mpvencdsp
 
PixblockDSPContext pdsp
 
QpelDSPContext qdsp
 
VideoDSPContext vdsp
 
H263DSPContext h263dsp
 
int f_code
 forward MV resolution
 
int b_code
 backward MV resolution for B-frames (MPEG-4)
 
int16_t(* p_mv_table_base )[2]
 
int16_t(* b_forw_mv_table_base )[2]
 
int16_t(* b_back_mv_table_base )[2]
 
int16_t(* b_bidir_forw_mv_table_base )[2]
 
int16_t(* b_bidir_back_mv_table_base )[2]
 
int16_t(* b_direct_mv_table_base )[2]
 
int16_t(*[2][2] p_field_mv_table_base )[2]
 
int16_t(*[2][2][2] b_field_mv_table_base )[2]
 
int16_t(* p_mv_table )[2]
 MV table (1MV per MB) P-frame encoding.
 
int16_t(* b_forw_mv_table )[2]
 MV table (1MV per MB) forward mode B-frame encoding.
 
int16_t(* b_back_mv_table )[2]
 MV table (1MV per MB) backward mode B-frame encoding.
 
int16_t(* b_bidir_forw_mv_table )[2]
 MV table (1MV per MB) bidir mode B-frame encoding.
 
int16_t(* b_bidir_back_mv_table )[2]
 MV table (1MV per MB) bidir mode B-frame encoding.
 
int16_t(* b_direct_mv_table )[2]
 MV table (1MV per MB) direct mode B-frame encoding.
 
int16_t(*[2][2] p_field_mv_table )[2]
 MV table (2MV per MB) interlaced P-frame encoding.
 
int16_t(*[2][2][2] b_field_mv_table )[2]
 MV table (4MV per MB) interlaced B-frame encoding.
 
uint8_t *[2] p_field_select_table
 
uint8_t *[2][2] b_field_select_table
 
int motion_est
 ME algorithm.
 
int me_penalty_compensation
 
int me_pre
 prepass for motion estimation
 
int mv_dir
 
int mv_type
 
int mv [2][4][2]
 motion vectors for a macroblock first coordinate : 0 = forward 1 = backward second " : depend on type third " : 0 = x, 1 = y
 
int field_select [2][2]
 
int last_mv [2][2][2]
 last MV, used for MV prediction in MPEG-1 & B-frame MPEG-4
 
uint8_t * fcode_tab
 smallest fcode needed for each MV
 
int16_t direct_scale_mv [2][64]
 precomputed to avoid divisions in ff_mpeg4_set_direct_mv
 
MotionEstContext me
 
int no_rounding
 apply no rounding to motion compensation (MPEG-4, msmpeg4, ...) for B-frames rounding mode is always 0
 
int mb_x
 
int mb_y
 
int mb_skip_run
 
int mb_intra
 
uint16_t * mb_type
 Table for candidate MB types for encoding (defines in mpegutils.h)
 
int block_index [6]
 index to current MB in block based arrays with edges
 
int block_wrap [6]
 
uint8_t * dest [3]
 
int * mb_index2xy
 mb_index -> mb_x + mb_y*mb_stride
 
uint16_t intra_matrix [64]
 matrix transmitted in the bitstream
 
uint16_t chroma_intra_matrix [64]
 
uint16_t inter_matrix [64]
 
uint16_t chroma_inter_matrix [64]
 
int force_duplicated_matrix
 Force duplication of mjpeg matrices, useful for rtp streaming.
 
int intra_quant_bias
 bias for the quantizer
 
int inter_quant_bias
 bias for the quantizer
 
int min_qcoeff
 minimum encodable coefficient
 
int max_qcoeff
 maximum encodable coefficient
 
int ac_esc_length
 num of bits needed to encode the longest esc
 
uint8_t * intra_ac_vlc_length
 
uint8_t * intra_ac_vlc_last_length
 
uint8_t * intra_chroma_ac_vlc_length
 
uint8_t * intra_chroma_ac_vlc_last_length
 
uint8_t * inter_ac_vlc_length
 
uint8_t * inter_ac_vlc_last_length
 
uint8_t * luma_dc_vlc_length
 
int coded_score [12]
 
int(* q_intra_matrix )[64]
 precomputed matrix (combine qscale and DCT renorm)
 
int(* q_chroma_intra_matrix )[64]
 
int(* q_inter_matrix )[64]
 
uint16_t(* q_intra_matrix16 )[2][64]
 identical to the above but for MMX & these are not permutated, second 64 entries are bias
 
uint16_t(* q_chroma_intra_matrix16 )[2][64]
 
uint16_t(* q_inter_matrix16 )[2][64]
 
int(* dct_error_sum )[64]
 
int dct_count [2]
 
uint16_t(* dct_offset )[64]
 
int64_t total_bits
 
int frame_bits
 bits used for the current frame
 
int stuffing_bits
 bits used for stuffing
 
int next_lambda
 next lambda used for retrying to encode a frame
 
RateControlContext rc_context
 contains stuff only accessed in ratecontrol.c
 
int mv_bits
 
int header_bits
 
int i_tex_bits
 
int p_tex_bits
 
int i_count
 
int f_count
 
int b_count
 
int skip_count
 
int misc_bits
 cbp, mb_type
 
int last_bits
 temp var used for calculating the above vars
 
int resync_mb_x
 x position of last resync marker
 
int resync_mb_y
 y position of last resync marker
 
GetBitContext last_resync_gb
 used to search for the next resync marker
 
int mb_num_left
 number of MBs left in this video packet (for partitioned Slices only)
 
int next_p_frame_damaged
 set if the next p frame is damaged, to avoid showing trashed B-frames
 
ParseContext parse_context
 
int gob_index
 
int obmc
 overlapped block motion compensation
 
int mb_info
 interval for outputting info about mb offsets as side data
 
int prev_mb_info
 
int last_mb_info
 
uint8_t * mb_info_ptr
 
int mb_info_size
 
int ehc_mode
 
int rc_strategy
 
int umvplus
 == H.263+ && unrestricted_mv
 
int h263_aic_dir
 AIC direction: 0 = left, 1 = top.
 
int h263_slice_structured
 
int alt_inter_vlc
 alternative inter vlc
 
int modified_quant
 
int loop_filter
 
int custom_pcf
 
int studio_profile
 
int dct_precision
 number of bits to represent the fractional part of time (encoder only)
 
int time_increment_bits
 
int last_time_base
 
int time_base
 time in seconds of last I,P,S Frame
 
int64_t time
 time of current frame
 
int64_t last_non_b_time
 
uint16_t pp_time
 time distance between the last 2 p,s,i frames
 
uint16_t pb_time
 time distance between the last b and p,s,i frame
 
uint16_t pp_field_time
 
uint16_t pb_field_time
 like above, just for interlaced
 
int real_sprite_warping_points
 
int sprite_offset [2][2]
 sprite offset[isChroma][isMVY]
 
int sprite_delta [2][2]
 sprite_delta [isY][isMVY]
 
int mcsel
 
int quant_precision
 
int quarter_sample
 1->qpel, 0->half pel ME/MC
 
int aspect_ratio_info
 
int sprite_warping_accuracy
 
int data_partitioning
 data partitioning flag from header
 
int partitioned_frame
 is current frame partitioned
 
int low_delay
 no reordering needed / has no B-frames
 
int vo_type
 
PutBitContext tex_pb
 used for data partitioned VOPs
 
PutBitContext pb2
 used for data partitioned VOPs
 
int mpeg_quant
 
int padding_bug_score
 used to detect the VERY common padding bug in MPEG-4
 
int divx_packed
 
uint8_t * bitstream_buffer
 
int bitstream_buffer_size
 
unsigned int allocated_bitstream_buffer_size
 
int rv10_version
 RV10 version: 0 or 3.
 
int rv10_first_dc_coded [3]
 
struct MJpegContextmjpeg_ctx
 
int esc_pos
 
int pred
 
int huffman
 
int mv_table_index
 
int rl_table_index
 
int rl_chroma_table_index
 
int dc_table_index
 
int use_skip_mb_code
 
int slice_height
 in macroblocks
 
int first_slice_line
 used in MPEG-4 too to handle resync markers
 
int flipflop_rounding
 
int msmpeg4_version
 0=not msmpeg4, 1=mp41, 2=mp42, 3=mp43/divx3 4=wmv1/7 5=wmv2/8
 
int per_mb_rl_table
 
int esc3_level_length
 
int esc3_run_length
 
int(* ac_stats )[2][MAX_LEVEL+1][MAX_RUN+1][2]
 [mb_intra][isChroma][level][run][last]
 
int inter_intra_pred
 
int mspel
 
GetBitContext gb
 
int gop_picture_number
 index of the first picture of a GOP based on fake_pic_num & MPEG-1 specific
 
int last_mv_dir
 last mv_dir, used for B-frame encoding
 
uint8_t * vbv_delay_ptr
 pointer to vbv_delay in the bitstream
 
int progressive_sequence
 
int mpeg_f_code [2][2]
 
int picture_structure
 
int64_t timecode_frame_start
 GOP timecode frame start number, in non drop frame format.
 
int intra_dc_precision
 
int frame_pred_frame_dct
 
int top_field_first
 
int concealment_motion_vectors
 
int q_scale_type
 
int brd_scale
 
int intra_vlc_format
 
int alternate_scan
 
int seq_disp_ext
 
int video_format
 
int repeat_first_field
 
int chroma_420_type
 
int chroma_format
 
int chroma_x_shift
 
int chroma_y_shift
 
int progressive_frame
 
int full_pel [2]
 
int interlaced_dct
 
int first_field
 is 1 for the first field of a field picture 0 otherwise
 
int drop_frame_timecode
 timecode is in drop frame format.
 
int scan_offset
 reserve space for SVCD scan offset user data.
 
int rtp_mode
 
int rtp_payload_size
 
char * tc_opt_str
 timecode option string
 
AVTimecode tc
 timecode context
 
uint8_t * ptr_lastgob
 
int swap_uv
 
int pack_pblocks
 
int16_t(*[12] pblocks )[64]
 
int16_t(* block )[64]
 points to one of the following blocks
 
int16_t(* blocks )[12][64]
 
int(* decode_mb )(struct MpegEncContext *s, int16_t block[12][64])
 
int32_t(* block32 )[12][64]
 
void(* dct_unquantize_mpeg1_intra )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_mpeg1_inter )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_mpeg2_intra )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_mpeg2_inter )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_h263_intra )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_h263_inter )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_intra )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
void(* dct_unquantize_inter )(struct MpegEncContext *s, int16_t *block, int n, int qscale)
 
int(* dct_quantize )(struct MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow)
 
int(* fast_dct_quantize )(struct MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow)
 
void(* denoise_dct )(struct MpegEncContext *s, int16_t *block)
 
int mpv_flags
 flags set by private options
 
int quantizer_noise_shaping
 
float rc_qsquish
 ratecontrol qmin qmax limiting method 0-> clipping, 1-> use a nice continuous function to limit qscale within qmin/qmax.
 
float rc_qmod_amp
 
int rc_qmod_freq
 
float rc_initial_cplx
 
float rc_buffer_aggressivity
 
float border_masking
 
int lmin
 
int lmax
 
int vbv_ignore_qmax
 
char * rc_eq
 
float * cplx_tab
 
float * bits_tab
 
int context_reinit
 
ERContext er
 
int error_rate
 
AVFrametmp_frames [MAX_B_FRAMES+2]
 
int b_frame_strategy
 
int b_sensitivity
 
int frame_skip_threshold
 
int frame_skip_factor
 
int frame_skip_exp
 
int frame_skip_cmp
 
int scenechange_threshold
 
int noise_reduction
 

Detailed Description

MpegEncContext.

Member Data Documentation

§ current_picture

Picture MpegEncContext::current_picture

copy of the current picture structure.

note, linesize & data, might not match the current picture (for field pictures)buffer to store the decompressed current picture

§ last_picture

Picture MpegEncContext::last_picture

copy of the previous picture structure.

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

§ new_picture

Picture MpegEncContext::new_picture

copy of the source picture structure for encoding.

note, linesize & data, might not match the source picture (for field pictures)

§ next_picture

Picture MpegEncContext::next_picture

copy of the next picture structure.

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


The documentation for this struct was generated from the following file: