#include "mpegvideo.h"#include "h263.h"#include "mpeg4video.h"Go to the source code of this file.
Defines | |
| #define | UNI_MPEG4_ENC_INDEX(last, run, level) ((last)*128*64 + (run)*128 + (level)) |
Functions | |
| static int | get_block_rate (MpegEncContext *s, DCTELEM block[64], int block_last_index, uint8_t scantable[64]) |
| Return the number of bits that encoding the 8x8 block in block would need. | |
| static void | restore_ac_coeffs (MpegEncContext *s, DCTELEM block[6][64], const int dir[6], uint8_t *st[6], const int zigzag_last_index[6]) |
| Restore the ac coefficients in block that have been changed by decide_ac_pred(). | |
| static int | decide_ac_pred (MpegEncContext *s, DCTELEM block[6][64], const int dir[6], uint8_t *st[6], int zigzag_last_index[6]) |
| Return the optimal value (0 or 1) for the ac_pred element for the given MB in mpeg4. | |
| void | ff_clean_mpeg4_qscales (MpegEncContext *s) |
| modify mb_type & qscale so that encoding is acually possible in mpeg4 | |
| static void | mpeg4_encode_dc (PutBitContext *s, int level, int n) |
| encodes the dc value. | |
| static int | mpeg4_get_dc_length (int level, int n) |
| static void | mpeg4_encode_block (MpegEncContext *s, DCTELEM *block, int n, int intra_dc, uint8_t *scan_table, PutBitContext *dc_pb, PutBitContext *ac_pb) |
| encodes a 8x8 block | |
| static int | mpeg4_get_block_length (MpegEncContext *s, DCTELEM *block, int n, int intra_dc, uint8_t *scan_table) |
| static void | mpeg4_encode_blocks (MpegEncContext *s, DCTELEM block[6][64], int intra_dc[6], uint8_t **scan_table, PutBitContext *dc_pb, PutBitContext *ac_pb) |
| void | mpeg4_encode_mb (MpegEncContext *s, DCTELEM block[6][64], int motion_x, int motion_y) |
| void | ff_mpeg4_stuffing (PutBitContext *pbc) |
| add mpeg4 stuffing bits (01. | |
| void | ff_set_mpeg4_time (MpegEncContext *s) |
| static void | mpeg4_encode_gop_header (MpegEncContext *s) |
| static void | mpeg4_encode_visual_object_header (MpegEncContext *s) |
| static void | mpeg4_encode_vol_header (MpegEncContext *s, int vo_number, int vol_number) |
| void | mpeg4_encode_picture_header (MpegEncContext *s, int picture_number) |
| static void | init_uni_dc_tab (void) |
| static void | init_uni_mpeg4_rl_tab (RLTable *rl, uint32_t *bits_tab, uint8_t *len_tab) |
| static av_cold int | encode_init (AVCodecContext *avctx) |
| void | ff_mpeg4_init_partitions (MpegEncContext *s) |
| void | ff_mpeg4_merge_partitions (MpegEncContext *s) |
| void | ff_mpeg4_encode_video_packet_header (MpegEncContext *s) |
Variables | |
| static uint8_t | uni_DCtab_lum_len [512] |
| static uint8_t | uni_DCtab_chrom_len [512] |
| static uint16_t | uni_DCtab_lum_bits [512] |
| static uint16_t | uni_DCtab_chrom_bits [512] |
| static uint32_t | uni_mpeg4_intra_rl_bits [64 *64 *2 *2] |
| static uint8_t | uni_mpeg4_intra_rl_len [64 *64 *2 *2] |
| static uint32_t | uni_mpeg4_inter_rl_bits [64 *64 *2 *2] |
| static uint8_t | uni_mpeg4_inter_rl_len [64 *64 *2 *2] |
| static const int | dquant_code [5] = {1,0,9,2,3} |
| AVCodec | ff_mpeg4_encoder |
Definition at line 43 of file mpeg4videoenc.c.
| static int decide_ac_pred | ( | MpegEncContext * | s, | |
| DCTELEM | block[6][64], | |||
| const int | dir[6], | |||
| uint8_t * | st[6], | |||
| int | zigzag_last_index[6] | |||
| ) | [inline, static] |
Return the optimal value (0 or 1) for the ac_pred element for the given MB in mpeg4.
This function will also update s->block_last_index and s->ac_val.
| [in,out] | block | MB coefficients, these will be updated if 1 is returned |
| [in] | dir | ac prediction direction for each 8x8 block |
| [out] | st | scantable for each 8x8 block |
| [out] | zigzag_last_index | index refering to the last non zero coefficient in zigzag order |
Definition at line 123 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_mb().
| static av_cold int encode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 1251 of file mpeg4videoenc.c.
| void ff_clean_mpeg4_qscales | ( | MpegEncContext * | s | ) |
modify mb_type & qscale so that encoding is acually possible in mpeg4
Definition at line 202 of file mpeg4videoenc.c.
Referenced by estimate_qp().
| void ff_mpeg4_encode_video_packet_header | ( | MpegEncContext * | s | ) |
| void ff_mpeg4_init_partitions | ( | MpegEncContext * | s | ) |
| void ff_mpeg4_merge_partitions | ( | MpegEncContext * | s | ) |
| void ff_mpeg4_stuffing | ( | PutBitContext * | pbc | ) |
add mpeg4 stuffing bits (01.
..1)
Definition at line 869 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_gop_header(), mpeg4_encode_visual_object_header(), mpeg4_encode_vol_header(), and write_slice_end().
| void ff_set_mpeg4_time | ( | MpegEncContext * | s | ) |
| static int get_block_rate | ( | MpegEncContext * | s, | |
| DCTELEM | block[64], | |||
| int | block_last_index, | |||
| uint8_t | scantable[64] | |||
| ) | [inline, static] |
Return the number of bits that encoding the 8x8 block in block would need.
| [in] | block_last_index | last index in scantable order that refers to a non zero element in block. |
Definition at line 60 of file mpeg4videoenc.c.
Referenced by decide_ac_pred().
| static void init_uni_dc_tab | ( | void | ) | [static] |
| static void init_uni_mpeg4_rl_tab | ( | RLTable * | rl, | |
| uint32_t * | bits_tab, | |||
| uint8_t * | len_tab | |||
| ) | [static] |
| static void mpeg4_encode_block | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | intra_dc, | |||
| uint8_t * | scan_table, | |||
| PutBitContext * | dc_pb, | |||
| PutBitContext * | ac_pb | |||
| ) | [inline, static] |
encodes a 8x8 block
| n | block index (0-3 are luma, 4-5 are chroma) |
Definition at line 295 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_blocks().
| static void mpeg4_encode_blocks | ( | MpegEncContext * | s, | |
| DCTELEM | block[6][64], | |||
| int | intra_dc[6], | |||
| uint8_t ** | scan_table, | |||
| PutBitContext * | dc_pb, | |||
| PutBitContext * | ac_pb | |||
| ) | [inline, static] |
| static void mpeg4_encode_dc | ( | PutBitContext * | s, | |
| int | level, | |||
| int | n | |||
| ) | [inline, static] |
encodes the dc value.
| n | block index (0-3 are luma, 4-5 are chroma) |
Definition at line 242 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_block().
| static void mpeg4_encode_gop_header | ( | MpegEncContext * | s | ) | [static] |
| void mpeg4_encode_mb | ( | MpegEncContext * | s, | |
| DCTELEM | block[6][64], | |||
| int | motion_x, | |||
| int | motion_y | |||
| ) |
| void mpeg4_encode_picture_header | ( | MpegEncContext * | s, | |
| int | picture_number | |||
| ) |
| static void mpeg4_encode_visual_object_header | ( | MpegEncContext * | s | ) | [static] |
Definition at line 916 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_picture_header().
| static void mpeg4_encode_vol_header | ( | MpegEncContext * | s, | |
| int | vo_number, | |||
| int | vol_number | |||
| ) | [static] |
Definition at line 961 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_picture_header().
| static int mpeg4_get_block_length | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | intra_dc, | |||
| uint8_t * | scan_table | |||
| ) | [static] |
| static int mpeg4_get_dc_length | ( | int | level, | |
| int | n | |||
| ) | [inline, static] |
| static void restore_ac_coeffs | ( | MpegEncContext * | s, | |
| DCTELEM | block[6][64], | |||
| const int | dir[6], | |||
| uint8_t * | st[6], | |||
| const int | zigzag_last_index[6] | |||
| ) | [inline, static] |
Restore the ac coefficients in block that have been changed by decide_ac_pred().
This function also restores s->block_last_index.
| [in,out] | block | MB coefficients, these will be restored |
| [in] | dir | ac prediction direction for each 8x8 block |
| [out] | st | scantable for each 8x8 block |
| [in] | zigzag_last_index | index refering to the last non zero coefficient in zigzag order |
Definition at line 92 of file mpeg4videoenc.c.
Referenced by decide_ac_pred(), and mpeg4_encode_mb().
const int dquant_code[5] = {1,0,9,2,3} [static] |
Definition at line 492 of file mpeg4videoenc.c.
Initial value:
{
"mpeg4",
AVMEDIA_TYPE_VIDEO,
CODEC_ID_MPEG4,
sizeof(MpegEncContext),
encode_init,
MPV_encode_picture,
MPV_encode_end,
.pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
.capabilities= CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS,
.long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
}
Definition at line 1351 of file mpeg4videoenc.c.
uint16_t uni_DCtab_chrom_bits[512] [static] |
Definition at line 33 of file mpeg4videoenc.c.
Referenced by init_uni_dc_tab(), and mpeg4_encode_dc().
uint8_t uni_DCtab_chrom_len[512] [static] |
Definition at line 31 of file mpeg4videoenc.c.
Referenced by encode_init(), init_uni_dc_tab(), mpeg4_encode_dc(), and mpeg4_get_dc_length().
uint16_t uni_DCtab_lum_bits[512] [static] |
Definition at line 32 of file mpeg4videoenc.c.
Referenced by init_uni_dc_tab(), and mpeg4_encode_dc().
uint8_t uni_DCtab_lum_len[512] [static] |
Definition at line 30 of file mpeg4videoenc.c.
Referenced by encode_init(), init_uni_dc_tab(), mpeg4_encode_dc(), and mpeg4_get_dc_length().
uint32_t uni_mpeg4_inter_rl_bits[64 *64 *2 *2] [static] |
Definition at line 39 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_block().
uint8_t uni_mpeg4_inter_rl_len[64 *64 *2 *2] [static] |
Definition at line 40 of file mpeg4videoenc.c.
Referenced by encode_init(), mpeg4_encode_block(), and mpeg4_get_block_length().
uint32_t uni_mpeg4_intra_rl_bits[64 *64 *2 *2] [static] |
Definition at line 37 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_block().
uint8_t uni_mpeg4_intra_rl_len[64 *64 *2 *2] [static] |
Definition at line 38 of file mpeg4videoenc.c.
Referenced by encode_init(), mpeg4_encode_block(), and mpeg4_get_block_length().
1.5.8