Definition in file mpegvideo.c.
Go to the source code of this file.
Functions | |
| static void | dct_unquantize_mpeg1_intra_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_mpeg1_inter_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_mpeg2_intra_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_mpeg2_intra_bitexact (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_mpeg2_inter_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_h263_intra_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | dct_unquantize_h263_inter_c (MpegEncContext *s, DCTELEM *block, int n, int qscale) |
| static void | draw_edges_c (uint8_t *buf, int wrap, int width, int height, int w) |
| int | XVMC_field_start (MpegEncContext *s, AVCodecContext *avctx) |
| void | XVMC_field_end (MpegEncContext *s) |
| void | XVMC_decode_mb (MpegEncContext *s) |
| void | ff_init_scantable (uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable) |
| const uint8_t * | ff_find_start_code (const uint8_t *restrict p, const uint8_t *end, uint32_t *restrict state) |
| DTVRecorder -- base class for Digital Televison recorders Copyright 2003-2004 by Brandon Beattie, Doug Larrick, Jason Hoos, and Daniel Thor Kristjansson Distributed as part of MythTV under GPL v2 and later. | |
| int | ff_dct_common_init (MpegEncContext *s) |
| void | copy_picture (Picture *dst, Picture *src) |
| int | alloc_picture (MpegEncContext *s, Picture *pic, int shared) |
| allocates a Picture The pixels are allocated/set by calling get_buffer() if shared=0 | |
| static void | free_picture (MpegEncContext *s, Picture *pic) |
| deallocates a picture | |
| static int | init_duplicate_context (MpegEncContext *s, MpegEncContext *base) |
| static void | free_duplicate_context (MpegEncContext *s) |
| static void | backup_duplicate_context (MpegEncContext *bak, MpegEncContext *src) |
| void | ff_update_duplicate_context (MpegEncContext *dst, MpegEncContext *src) |
| void | MPV_common_defaults (MpegEncContext *s) |
| sets the given MpegEncContext to common defaults (same for encoding and decoding). | |
| void | MPV_decode_defaults (MpegEncContext *s) |
| sets the given MpegEncContext to defaults for decoding. | |
| int | MPV_common_init (MpegEncContext *s) |
| init common structure for both encoder and decoder. | |
| void | MPV_common_end (MpegEncContext *s) |
| void | init_rl (RLTable *rl, uint8_t static_store[2][2 *MAX_RUN+MAX_LEVEL+3]) |
| void | init_vlc_rl (RLTable *rl, int use_static) |
| int | ff_find_unused_picture (MpegEncContext *s, int shared) |
| static void | update_noise_reduction (MpegEncContext *s) |
| int | MPV_frame_start (MpegEncContext *s, AVCodecContext *avctx) |
| generic function for encode/decode called after coding/decoding the header and before a frame is coded/decoded | |
| void | MPV_frame_end (MpegEncContext *s) |
| static void | draw_line (uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color) |
| draws an line from (ex, ey) -> (sx, sy). | |
| static void | draw_arrow (uint8_t *buf, int sx, int sy, int ex, int ey, int w, int h, int stride, int color) |
| draws an arrow from (ex, ey) -> (sx, sy). | |
| void | ff_print_debug_info (MpegEncContext *s, AVFrame *pict) |
| prints debuging info for the given picture. | |
| void | ff_emulated_edge_mc (uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h, int src_x, int src_y, int w, int h) |
| Copies a rectangular area of samples to a temporary buffer and replicates the boarder samples. | |
| static int | hpel_motion_lowres (MpegEncContext *s, uint8_t *dest, uint8_t *src, int field_based, int field_select, int src_x, int src_y, int width, int height, int stride, int h_edge_pos, int v_edge_pos, int w, int h, h264_chroma_mc_func *pix_op, int motion_x, int motion_y) |
| static av_always_inline void | mpeg_motion_lowres (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_based, int bottom_field, int field_select, uint8_t **ref_picture, h264_chroma_mc_func *pix_op, int motion_x, int motion_y, int h) |
| static void | chroma_4mv_motion_lowres (MpegEncContext *s, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture, h264_chroma_mc_func *pix_op, int mx, int my) |
| static void | MPV_motion_lowres (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, h264_chroma_mc_func *pix_op) |
| motion compensation of a single macroblock | |
| static void | put_dct (MpegEncContext *s, DCTELEM *block, int i, uint8_t *dest, int line_size, int qscale) |
| static void | add_dct (MpegEncContext *s, DCTELEM *block, int i, uint8_t *dest, int line_size) |
| static void | add_dequant_dct (MpegEncContext *s, DCTELEM *block, int i, uint8_t *dest, int line_size, int qscale) |
| void | ff_clean_intra_table_entries (MpegEncContext *s) |
| cleans dc, ac, coded_block for the current non intra MB | |
| static av_always_inline void | MPV_decode_mb_internal (MpegEncContext *s, DCTELEM block[12][64], int lowres_flag) |
| void | MPV_decode_mb (MpegEncContext *s, DCTELEM block[12][64]) |
| void | ff_draw_horiz_band (MpegEncContext *s, int y, int h) |
| void | ff_init_block_index (MpegEncContext *s) |
| void | ff_mpeg_flush (AVCodecContext *avctx) |
| void | ff_set_qscale (MpegEncContext *s, int qscale) |
| set qscale and update qscale dependent variables. | |
Variables | |
| void(* | draw_edges )(uint8_t *buf, int wrap, int width, int height, int w) = draw_edges_c |
| static const uint8_t | ff_default_chroma_qscale_table [32] |
| static void dct_unquantize_mpeg1_intra_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_mpeg1_inter_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_mpeg2_intra_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_mpeg2_intra_bitexact | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_mpeg2_inter_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_h263_intra_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void dct_unquantize_h263_inter_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale | |||
| ) | [static] |
| static void draw_edges_c | ( | uint8_t * | buf, | |
| int | wrap, | |||
| int | width, | |||
| int | height, | |||
| int | w | |||
| ) | [static] |
Definition at line 804 of file mpegvideo.c.
| int XVMC_field_start | ( | MpegEncContext * | s, | |
| AVCodecContext * | avctx | |||
| ) |
Definition at line 98 of file xvmcvideo.c.
| void XVMC_field_end | ( | MpegEncContext * | s | ) |
Definition at line 151 of file xvmcvideo.c.
| void XVMC_decode_mb | ( | MpegEncContext * | s | ) |
| void ff_init_scantable | ( | uint8_t * | permutation, | |
| ScanTable * | st, | |||
| const uint8_t * | src_scantable | |||
| ) |
Definition at line 78 of file mpegvideo.c.
Referenced by common_init(), decode_init(), decode_pic(), decode_vop_header(), dnxhd_init_vlc(), ff_dct_common_init(), ff_intrax8_common_init(), ff_mjpeg_decode_init(), mpeg_decode_picture_coding_extension(), vp3_decode_init(), vp56_init(), and wmv2_common_init().
| const uint8_t* ff_find_start_code | ( | const uint8_t *restrict | p, | |
| const uint8_t * | end, | |||
| uint32_t *restrict | state | |||
| ) |
DTVRecorder -- base class for Digital Televison recorders Copyright 2003-2004 by Brandon Beattie, Doug Larrick, Jason Hoos, and Daniel Thor Kristjansson Distributed as part of MythTV under GPL v2 and later.
Definition at line 102 of file mpegvideo.c.
Referenced by H264::KeyframeSequencer::AddBytes(), cavs_decode_frame(), ff_mpeg1_find_frame_end(), ff_rtp_send_mpegvideo(), DTVRecorder::FindMPEG2Keyframes(), mpeg_decode_frame(), AvFormatDecoder::MpegPreProcessPkt(), mpegvideo_extract_headers(), and slice_decode_thread().
| int ff_dct_common_init | ( | MpegEncContext * | s | ) |
Definition at line 133 of file mpegvideo.c.
Referenced by dnxhd_encode_init(), and MPV_common_init().
| int alloc_picture | ( | MpegEncContext * | s, | |
| Picture * | pic, | |||
| int | shared | |||
| ) |
allocates a Picture The pixels are allocated/set by calling get_buffer() if shared=0
Definition at line 185 of file mpegvideo.c.
Referenced by load_input_picture(), MPV_frame_start(), and select_input_picture().
| static void free_picture | ( | MpegEncContext * | s, | |
| Picture * | pic | |||
| ) | [static] |
| static int init_duplicate_context | ( | MpegEncContext * | s, | |
| MpegEncContext * | base | |||
| ) | [static] |
| static void free_duplicate_context | ( | MpegEncContext * | s | ) | [static] |
| static void backup_duplicate_context | ( | MpegEncContext * | bak, | |
| MpegEncContext * | src | |||
| ) | [static] |
| void ff_update_duplicate_context | ( | MpegEncContext * | dst, | |
| MpegEncContext * | src | |||
| ) |
Definition at line 375 of file mpegvideo.c.
Referenced by encode_picture(), and mpeg_decode_frame().
| void MPV_common_defaults | ( | MpegEncContext * | s | ) |
sets the given MpegEncContext to common defaults (same for encoding and decoding).
the changed fields will not depend upon the prior state of the MpegEncContext.
Definition at line 393 of file mpegvideo.c.
Referenced by MPV_decode_defaults(), and MPV_encode_defaults().
| void MPV_decode_defaults | ( | MpegEncContext * | s | ) |
sets the given MpegEncContext to defaults for decoding.
the changed fields will not depend upon the prior state of the MpegEncContext.
Definition at line 415 of file mpegvideo.c.
Referenced by decode_init(), ff_cavs_init(), ff_h263_decode_init(), h261_decode_init(), mpeg_decode_init(), rv10_decode_init(), and svq1_decode_init().
| int MPV_common_init | ( | MpegEncContext * | s | ) |
init common structure for both encoder and decoder.
this assumes that some variables like width/height are already set
Definition at line 423 of file mpegvideo.c.
Referenced by decode_pic(), decode_slice_header(), ff_h263_decode_frame(), ff_h263_decode_init(), h261_decode_frame(), MPV_encode_init(), rv10_decode_init(), rv20_decode_picture_header(), svq1_decode_init(), svq3_decode_frame(), and vcr2_init_sequence().
| void MPV_common_end | ( | MpegEncContext * | s | ) |
Definition at line 615 of file mpegvideo.c.
Referenced by decode_end(), decode_slice_header(), ff_h263_decode_end(), ff_h263_decode_frame(), h261_decode_end(), h261_decode_frame(), mpeg_decode_end(), mpeg_decode_postinit(), MPV_common_init(), MPV_encode_end(), rv10_decode_end(), rv20_decode_picture_header(), svq1_decode_end(), vc1_decode_end(), and vcr2_init_sequence().
| void init_rl | ( | RLTable * | rl, | |
| uint8_t | static_store[2][2 *MAX_RUN+MAX_LEVEL+3] | |||
| ) |
| static_store | static uint8_t array[2][2*MAX_RUN + MAX_LEVEL + 3] which will hold the level and run tables, if this is NULL av_malloc() will be used |
Definition at line 698 of file mpegvideo.c.
Referenced by ff_h261_encode_init(), ff_mpeg1_encode_init(), ff_msmpeg4_decode_init(), ff_msmpeg4_encode_init(), h261_decode_init_vlc(), h263_decode_init_vlc(), h263_encode_init(), and init_vlcs().
| void init_vlc_rl | ( | RLTable * | rl, | |
| int | use_static | |||
| ) |
Definition at line 749 of file mpegvideo.c.
Referenced by ff_msmpeg4_decode_init(), h261_decode_init_vlc(), and h263_decode_init_vlc().
| int ff_find_unused_picture | ( | MpegEncContext * | s, | |
| int | shared | |||
| ) |
Definition at line 831 of file mpegvideo.c.
Referenced by ff_h263_decode_frame(), h261_decode_frame(), load_input_picture(), MPV_frame_start(), select_input_picture(), and vc1_decode_frame().
| static void update_noise_reduction | ( | MpegEncContext * | s | ) | [static] |
Definition at line 863 of file mpegvideo.c.
| int MPV_frame_start | ( | MpegEncContext * | s, | |
| AVCodecContext * | avctx | |||
| ) |
generic function for encode/decode called after coding/decoding the header and before a frame is coded/decoded
Definition at line 883 of file mpegvideo.c.
Referenced by ff_h263_decode_frame(), frame_start(), h261_decode_frame(), mpeg_field_start(), MPV_encode_picture(), rv10_decode_packet(), svq1_decode_frame(), and vc1_decode_frame().
| void MPV_frame_end | ( | MpegEncContext * | s | ) |
Definition at line 1024 of file mpegvideo.c.
Referenced by decode_frame(), ff_h263_decode_frame(), h261_decode_frame(), MPV_encode_picture(), rv10_decode_frame(), rv10_decode_packet(), slice_end(), svq1_decode_frame(), svq3_decode_frame(), and vc1_decode_frame().
| static void draw_line | ( | uint8_t * | buf, | |
| int | sx, | |||
| int | sy, | |||
| int | ex, | |||
| int | ey, | |||
| int | w, | |||
| int | h, | |||
| int | stride, | |||
| int | color | |||
| ) | [static] |
draws an line from (ex, ey) -> (sx, sy).
| w | width of the image | |
| h | height of the image | |
| stride | stride/linesize of the image | |
| color | color of the arrow |
Definition at line 1081 of file mpegvideo.c.
Referenced by draw_arrow(), goom_lines_draw(), and grid3d_draw().
| static void draw_arrow | ( | uint8_t * | buf, | |
| int | sx, | |||
| int | sy, | |||
| int | ex, | |||
| int | ey, | |||
| int | w, | |||
| int | h, | |||
| int | stride, | |||
| int | color | |||
| ) | [static] |
draws an arrow from (ex, ey) -> (sx, sy).
| w | width of the image | |
| h | height of the image | |
| stride | stride/linesize of the image | |
| color | color of the arrow |
Definition at line 1130 of file mpegvideo.c.
Referenced by ff_print_debug_info().
| void ff_print_debug_info | ( | MpegEncContext * | s, | |
| AVFrame * | pict | |||
| ) |
prints debuging info for the given picture.
Definition at line 1159 of file mpegvideo.c.
Referenced by decode_frame(), ff_h263_decode_frame(), h261_decode_frame(), rv10_decode_frame(), slice_end(), and vc1_decode_frame().
| void ff_emulated_edge_mc | ( | uint8_t * | buf, | |
| uint8_t * | src, | |||
| int | linesize, | |||
| int | block_w, | |||
| int | block_h, | |||
| int | src_x, | |||
| int | src_y, | |||
| int | w, | |||
| int | h | |||
| ) |
Copies a rectangular area of samples to a temporary buffer and replicates the boarder samples.
| buf | destination buffer | |
| src | source buffer | |
| linesize | number of bytes between 2 vertically adjacent samples in both the source and destination buffers | |
| block_w | width of block | |
| block_h | height of block | |
| src_x | x coordinate of the top left sample of the block in the source buffer | |
| src_y | y coordinate of the top left sample of the block in the source buffer | |
| w | width of the source buffer | |
| h | height of the source buffer |
Definition at line 1429 of file mpegvideo.c.
Referenced by chroma_4mv_motion(), chroma_4mv_motion_lowres(), encode_mb_internal(), ff_mspel_motion(), gmc1_motion(), gmc_mmx(), hpel_motion(), hpel_motion_lowres(), mc_dir_part(), mca(), mpeg_motion(), mpeg_motion_lowres(), MPV_motion(), qpel_motion(), render_slice(), svq3_mc_dir_part(), vc1_interp_mc(), vc1_mc_1mv(), vc1_mc_4mv_chroma(), vc1_mc_4mv_luma(), and vp56_mc().
| static int hpel_motion_lowres | ( | MpegEncContext * | s, | |
| uint8_t * | dest, | |||
| uint8_t * | src, | |||
| int | field_based, | |||
| int | field_select, | |||
| int | src_x, | |||
| int | src_y, | |||
| int | width, | |||
| int | height, | |||
| int | stride, | |||
| int | h_edge_pos, | |||
| int | v_edge_pos, | |||
| int | w, | |||
| int | h, | |||
| h264_chroma_mc_func * | pix_op, | |||
| int | motion_x, | |||
| int | motion_y | |||
| ) | [inline, static] |
| static av_always_inline void mpeg_motion_lowres | ( | MpegEncContext * | s, | |
| uint8_t * | dest_y, | |||
| uint8_t * | dest_cb, | |||
| uint8_t * | dest_cr, | |||
| int | field_based, | |||
| int | bottom_field, | |||
| int | field_select, | |||
| uint8_t ** | ref_picture, | |||
| h264_chroma_mc_func * | pix_op, | |||
| int | motion_x, | |||
| int | motion_y, | |||
| int | h | |||
| ) | [static] |
| static void chroma_4mv_motion_lowres | ( | MpegEncContext * | s, | |
| uint8_t * | dest_cb, | |||
| uint8_t * | dest_cr, | |||
| uint8_t ** | ref_picture, | |||
| h264_chroma_mc_func * | pix_op, | |||
| int | mx, | |||
| int | my | |||
| ) | [inline, static] |
| static void MPV_motion_lowres | ( | MpegEncContext * | s, | |
| uint8_t * | dest_y, | |||
| uint8_t * | dest_cb, | |||
| uint8_t * | dest_cr, | |||
| int | dir, | |||
| uint8_t ** | ref_picture, | |||
| h264_chroma_mc_func * | pix_op | |||
| ) | [inline, static] |
motion compensation of a single macroblock
| s | context | |
| dest_y | luma destination pointer | |
| dest_cb | chroma cb/u destination pointer | |
| dest_cr | chroma cr/v destination pointer | |
| dir | direction (0->forward, 1->backward) | |
| ref_picture | array[3] of pointers to the 3 planes of the reference picture | |
| pic_op | halfpel motion compensation function (average or put normally) the motion vectors are taken from s->mv and the MV type from s->mv_type |
Definition at line 1688 of file mpegvideo.c.
Referenced by MPV_decode_mb_internal().
| static void put_dct | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | i, | |||
| uint8_t * | dest, | |||
| int | line_size, | |||
| int | qscale | |||
| ) | [inline, static] |
| static void add_dct | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | i, | |||
| uint8_t * | dest, | |||
| int | line_size | |||
| ) | [inline, static] |
| static void add_dequant_dct | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | i, | |||
| uint8_t * | dest, | |||
| int | line_size, | |||
| int | qscale | |||
| ) | [inline, static] |
| void ff_clean_intra_table_entries | ( | MpegEncContext * | s | ) |
cleans dc, ac, coded_block for the current non intra MB
Definition at line 1833 of file mpegvideo.c.
Referenced by encode_thread(), mpeg4_decode_partition_a(), and MPV_decode_mb_internal().
| static av_always_inline void MPV_decode_mb_internal | ( | MpegEncContext * | s, | |
| DCTELEM | block[12][64], | |||
| int | lowres_flag | |||
| ) | [static] |
| void MPV_decode_mb | ( | MpegEncContext * | s, | |
| DCTELEM | block[12][64] | |||
| ) |
Definition at line 2114 of file mpegvideo.c.
Referenced by decode_mb(), decode_slice(), encode_mb_hq(), encode_thread(), h261_decode_mb(), h261_decode_mb_skipped(), mpeg_decode_slice(), and rv10_decode_packet().
| void ff_draw_horiz_band | ( | MpegEncContext * | s, | |
| int | y, | |||
| int | h | |||
| ) |
| h | is the normal height, this will be reduced automatically if needed for the last row |
Definition at line 2123 of file mpegvideo.c.
Referenced by decode_slice(), ff_intrax8_decode_picture(), mpeg_decode_slice(), svq3_decode_frame(), vc1_decode_b_blocks(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_p_blocks(), vc1_decode_skip_blocks(), XVMC_decode_mb(), XVMC_field_end(), and XVMC_VLD_decode_slice().
| void ff_init_block_index | ( | MpegEncContext * | s | ) |
Definition at line 2162 of file mpegvideo.c.
Referenced by decode_slice(), encode_thread(), estimate_motion_thread(), ff_h261_reorder_mb_index(), h261_decode_mb(), h261_decode_mb_skipped(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg_decode_slice(), rv10_decode_packet(), svq1_encode_plane(), vc1_decode_b_blocks(), vc1_decode_i_blocks(), vc1_decode_i_blocks_adv(), vc1_decode_p_blocks(), and vc1_decode_skip_blocks().
| void ff_mpeg_flush | ( | AVCodecContext * | avctx | ) |
| void ff_set_qscale | ( | MpegEncContext * | s, | |
| int | qscale | |||
| ) |
set qscale and update qscale dependent variables.
Definition at line 2434 of file mpegvideo.c.
Referenced by decode_slice(), encode_mb_internal(), encode_thread(), ff_h261_encode_mb(), ff_mpeg4_decode_mb(), h261_decode_gob(), h261_decode_mb(), h263_decode_dquant(), mpeg4_decode_partition_a(), mpeg4_decode_partition_b(), mpeg4_decode_partitioned_mb(), and rv10_decode_packet().
| void(* draw_edges)(uint8_t *buf, int wrap, int width, int height, int w) = draw_edges_c |
Referenced by frame_start(), MPV_common_init_mmx(), and MPV_frame_end().
const uint8_t ff_default_chroma_qscale_table[32] [static] |
Initial value:
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
}
Definition at line 73 of file mpegvideo.c.
Referenced by MPV_common_defaults().
1.5.5