| FFmpeg
    4.0
    | 
#include "libavutil/attributes.h"#include "libavutil/log.h"#include "libavutil/opt.h"#include "mpegutils.h"#include "mpegvideo.h"#include "h263.h"#include "mpeg4video.h"Go to the source code of this file.
| Macros | |
| #define | UNI_MPEG4_ENC_INDEX(last, run, level) ((last) * 128 * 64 + (run) * 128 + (level)) | 
| #define | OFFSET(x) offsetof(MpegEncContext, x) | 
| #define | VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 
| Functions | |
| static int | get_block_rate (MpegEncContext *s, int16_t block[64], int block_last_index, uint8_t scantable[64]) | 
| Return the number of bits that encoding the 8x8 block in block would need.  More... | |
| static void | restore_ac_coeffs (MpegEncContext *s, int16_t 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().  More... | |
| static int | decide_ac_pred (MpegEncContext *s, int16_t 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 MPEG-4.  More... | |
| void | ff_clean_mpeg4_qscales (MpegEncContext *s) | 
| modify mb_type & qscale so that encoding is actually possible in MPEG-4  More... | |
| static void | mpeg4_encode_dc (PutBitContext *s, int level, int n) | 
| Encode the dc value.  More... | |
| static int | mpeg4_get_dc_length (int level, int n) | 
| static void | mpeg4_encode_block (MpegEncContext *s, int16_t *block, int n, int intra_dc, uint8_t *scan_table, PutBitContext *dc_pb, PutBitContext *ac_pb) | 
| Encode an 8x8 block.  More... | |
| static int | mpeg4_get_block_length (MpegEncContext *s, int16_t *block, int n, int intra_dc, uint8_t *scan_table) | 
| static void | mpeg4_encode_blocks (MpegEncContext *s, int16_t block[6][64], int intra_dc[6], uint8_t **scan_table, PutBitContext *dc_pb, PutBitContext *ac_pb) | 
| static int | get_b_cbp (MpegEncContext *s, int16_t block[6][64], int motion_x, int motion_y, int mb_type) | 
| void | ff_mpeg4_encode_mb (MpegEncContext *s, int16_t block[6][64], int motion_x, int motion_y) | 
| void | ff_mpeg4_stuffing (PutBitContext *pbc) | 
| add MPEG-4 stuffing bits (01...1)  More... | |
| 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) | 
| int | ff_mpeg4_encode_picture_header (MpegEncContext *s, int picture_number) | 
| static av_cold void | init_uni_dc_tab (void) | 
| static av_cold 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 } | 
| static const AVOption | options [] | 
| static const AVClass | mpeg4enc_class | 
| AVCodec | ff_mpeg4_encoder | 
Definition at line 48 of file mpeg4videoenc.c.
Referenced by init_uni_mpeg4_rl_tab(), mpeg4_encode_block(), and mpeg4_get_block_length().
| #define OFFSET | ( | x | ) | offsetof(MpegEncContext, x) | 
Definition at line 1373 of file mpeg4videoenc.c.
| #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 
Definition at line 1374 of file mpeg4videoenc.c.
| 
 | inlinestatic | 
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 64 of file mpeg4videoenc.c.
Referenced by decide_ac_pred().
| 
 | inlinestatic | 
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 referring to the last non zero coefficient in zigzag order | 
Definition at line 99 of file mpeg4videoenc.c.
Referenced by decide_ac_pred(), and ff_mpeg4_encode_mb().
| 
 | inlinestatic | 
Return the optimal value (0 or 1) for the ac_pred element for the given MB in MPEG-4.
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 referring to the last non zero coefficient in zigzag order | 
Definition at line 130 of file mpeg4videoenc.c.
Referenced by ff_mpeg4_encode_mb().
| void ff_clean_mpeg4_qscales | ( | MpegEncContext * | s | ) | 
modify mb_type & qscale so that encoding is actually possible in MPEG-4
Definition at line 213 of file mpeg4videoenc.c.
Referenced by estimate_qp().
| 
 | inlinestatic | 
Encode the dc value.
| n | block index (0-3 are luma, 4-5 are chroma) | 
Definition at line 257 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_block().
Definition at line 270 of file mpeg4videoenc.c.
Referenced by mpeg4_get_block_length().
| 
 | inlinestatic | 
Encode an 8x8 block.
| n | block index (0-3 are luma, 4-5 are chroma) | 
Definition at line 282 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_blocks().
| 
 | static | 
Definition at line 343 of file mpeg4videoenc.c.
Referenced by mpeg4_encode_blocks().
| 
 | inlinestatic | 
Definition at line 397 of file mpeg4videoenc.c.
Referenced by ff_mpeg4_encode_mb().
| 
 | inlinestatic | 
Definition at line 431 of file mpeg4videoenc.c.
Referenced by ff_mpeg4_encode_mb().
| void ff_mpeg4_encode_mb | ( | MpegEncContext * | s, | 
| int16_t | block[6][64], | ||
| int | motion_x, | ||
| int | motion_y | ||
| ) | 
Definition at line 475 of file mpeg4videoenc.c.
Referenced by encode_mb_internal().
| void ff_mpeg4_stuffing | ( | PutBitContext * | pbc | ) | 
add MPEG-4 stuffing bits (01...1)
Definition at line 863 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 | ) | 
Definition at line 873 of file mpeg4videoenc.c.
Referenced by encode_picture().
| 
 | static | 
Definition at line 883 of file mpeg4videoenc.c.
Referenced by ff_mpeg4_encode_picture_header().
| 
 | static | 
Definition at line 913 of file mpeg4videoenc.c.
Referenced by encode_init(), and ff_mpeg4_encode_picture_header().
| 
 | static | 
Definition at line 957 of file mpeg4videoenc.c.
Referenced by encode_init(), and ff_mpeg4_encode_picture_header().
| int ff_mpeg4_encode_picture_header | ( | MpegEncContext * | s, | 
| int | picture_number | ||
| ) | 
Definition at line 1061 of file mpeg4videoenc.c.
Referenced by encode_picture().
Definition at line 1121 of file mpeg4videoenc.c.
Referenced by encode_init().
| 
 | static | 
Definition at line 1176 of file mpeg4videoenc.c.
Referenced by encode_init().
| 
 | static | 
Definition at line 1271 of file mpeg4videoenc.c.
| void ff_mpeg4_init_partitions | ( | MpegEncContext * | s | ) | 
Definition at line 1322 of file mpeg4videoenc.c.
Referenced by encode_thread().
| void ff_mpeg4_merge_partitions | ( | MpegEncContext * | s | ) | 
Definition at line 1335 of file mpeg4videoenc.c.
Referenced by write_slice_end().
| void ff_mpeg4_encode_video_packet_header | ( | MpegEncContext * | s | ) | 
Definition at line 1361 of file mpeg4videoenc.c.
Referenced by encode_thread().
| 
 | static | 
Definition at line 34 of file mpeg4videoenc.c.
Referenced by encode_init(), init_uni_dc_tab(), mpeg4_encode_dc(), and mpeg4_get_dc_length().
| 
 | static | 
Definition at line 35 of file mpeg4videoenc.c.
Referenced by init_uni_dc_tab(), mpeg4_encode_dc(), and mpeg4_get_dc_length().
| 
 | static | 
Definition at line 36 of file mpeg4videoenc.c.
Referenced by init_uni_dc_tab(), and mpeg4_encode_dc().
| 
 | static | 
Definition at line 37 of file mpeg4videoenc.c.
Referenced by init_uni_dc_tab(), and mpeg4_encode_dc().
| 
 | static | 
Definition at line 41 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_block().
| 
 | static | 
Definition at line 42 of file mpeg4videoenc.c.
Referenced by encode_init(), mpeg4_encode_block(), and mpeg4_get_block_length().
| 
 | static | 
Definition at line 43 of file mpeg4videoenc.c.
Referenced by encode_init(), and mpeg4_encode_block().
| 
 | static | 
Definition at line 44 of file mpeg4videoenc.c.
Referenced by encode_init(), mpeg4_encode_block(), and mpeg4_get_block_length().
| 
 | static | 
Definition at line 473 of file mpeg4videoenc.c.
Referenced by ff_mpeg4_encode_mb().
| 
 | static | 
Definition at line 1375 of file mpeg4videoenc.c.
| 
 | static | 
Definition at line 1382 of file mpeg4videoenc.c.
| AVCodec ff_mpeg4_encoder | 
Definition at line 1389 of file mpeg4videoenc.c.
 1.8.13
 1.8.13