#include "avcodec.h"
#include "dsputil.h"
#include "mathops.h"
#include "mpegvideo.h"
#include "mpeg12.h"
#include "mpeg12data.h"
#include "bytestream.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
#include "libavutil/avassert.h"
#include "libavutil/timecode.h"
Go to the source code of this file.
Definition in file mpeg12enc.c.
#define COMMON_OPTS |
Value:
{ "gop_timecode", "MPEG GOP Timecode in hh:mm:ss[:;.]ff format", OFFSET(tc_opt_str), AV_OPT_TYPE_STRING, {.str=NULL}, CHAR_MIN, CHAR_MAX, VE },\ { "intra_vlc", "Use MPEG-2 intra VLC table.", OFFSET(intra_vlc_format), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },\ { "drop_frame_timecode", "Timecode is in drop frame format.", OFFSET(drop_frame_timecode), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE}, \ { "scan_offset", "Reserve space for SVCD scan offset user data.", OFFSET(scan_offset), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
Definition at line 933 of file mpeg12enc.c.
#define mpeg12_class | ( | x | ) |
Value:
static const AVClass mpeg## x ##_class = {\ .class_name = "mpeg" #x "video encoder",\ .item_name = av_default_item_name,\ .option = mpeg## x ##_options,\ .version = LIBAVUTIL_VERSION_INT,\ };
Definition at line 953 of file mpeg12enc.c.
#define OFFSET | ( | x | ) | offsetof(MpegEncContext, x) |
Definition at line 931 of file mpeg12enc.c.
#define VE AV_OPT_FLAG_ENCODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM |
Definition at line 932 of file mpeg12enc.c.
static void encode_dc | ( | MpegEncContext * | s, | |
int | diff, | |||
int | component | |||
) | [inline, static] |
static av_cold int encode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 131 of file mpeg12enc.c.
static void encode_mb_skip_run | ( | MpegEncContext * | s, | |
int | run | |||
) | [inline, static] |
void ff_mpeg1_encode_init | ( | MpegEncContext * | s | ) |
void ff_mpeg1_encode_mb | ( | MpegEncContext * | s, | |
DCTELEM | block[6][64], | |||
int | motion_x, | |||
int | motion_y | |||
) |
void ff_mpeg1_encode_picture_header | ( | MpegEncContext * | s, | |
int | picture_number | |||
) |
void ff_mpeg1_encode_slice_header | ( | MpegEncContext * | s | ) |
Definition at line 333 of file mpeg12enc.c.
Referenced by encode_thread(), and ff_mpeg1_encode_picture_header().
static int find_frame_rate_index | ( | MpegEncContext * | s | ) | [static] |
mpeg12_class | ( | 1 | ) |
Definition at line 961 of file mpeg12enc.c.
static void mpeg1_encode_block | ( | MpegEncContext * | s, | |
DCTELEM * | block, | |||
int | component | |||
) | [static] |
static av_always_inline void mpeg1_encode_mb_internal | ( | MpegEncContext * | s, | |
DCTELEM | block[6][64], | |||
int | motion_x, | |||
int | motion_y, | |||
int | mb_block_count | |||
) | [static] |
static void mpeg1_encode_motion | ( | MpegEncContext * | s, | |
int | val, | |||
int | f_or_b_code | |||
) | [static] |
static void mpeg1_encode_sequence_header | ( | MpegEncContext * | s | ) | [static] |
static void put_header | ( | MpegEncContext * | s, | |
int | header | |||
) | [static] |
Definition at line 191 of file mpeg12enc.c.
Referenced by asf_write_header1(), ff_mpeg1_encode_picture_header(), ff_mpeg1_encode_slice_header(), and mpeg1_encode_sequence_header().
static void put_mb_modes | ( | MpegEncContext * | s, | |
int | n, | |||
int | bits, | |||
int | has_mv, | |||
int | field_motion | |||
) | [inline, static] |
static av_always_inline void put_qscale | ( | MpegEncContext * | s | ) | [static] |
Definition at line 323 of file mpeg12enc.c.
Referenced by ff_mpeg1_encode_slice_header(), and mpeg1_encode_mb_internal().
Definition at line 60 of file mpeg12enc.c.
Initial value:
{ .name = "mpeg2video", .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_MPEG2VIDEO, .priv_data_size = sizeof(MpegEncContext), .init = encode_init, .encode2 = ff_MPV_encode_picture, .close = ff_MPV_encode_end, .supported_framerates = avpriv_frame_rate_tab + 1, .pix_fmts = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_NONE }, .capabilities = CODEC_CAP_DELAY | CODEC_CAP_SLICE_THREADS, .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"), .priv_class = &mpeg2_class, }
Definition at line 980 of file mpeg12enc.c.
const uint8_t inv_non_linear_qscale[13] [static] |
Initial value:
{ 0, 2, 4, 6, 8, 9,10,11,12,13,14,15,16, }
Definition at line 41 of file mpeg12enc.c.
Referenced by put_qscale().
uint32_t mpeg1_chr_dc_uni[512] [static] |
uint8_t mpeg1_index_run[2][64] [static] |
Definition at line 69 of file mpeg12enc.c.
Referenced by ff_mpeg1_encode_init(), and mpeg1_encode_block().
uint32_t mpeg1_lum_dc_uni[512] [static] |
int8_t mpeg1_max_level[2][64] [static] |
Definition at line 70 of file mpeg12enc.c.
Referenced by ff_mpeg1_encode_init(), and mpeg1_encode_block().
const AVOption mpeg1_options[] [static] |
Initial value:
{ COMMON_OPTS FF_MPV_COMMON_OPTS { NULL }, }
Definition at line 939 of file mpeg12enc.c.
const AVOption mpeg2_options[] [static] |
Initial value:
{ COMMON_OPTS { "non_linear_quant", "Use nonlinear quantizer.", OFFSET(q_scale_type), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, { "alternate_scan", "Enable alternate scantable.", OFFSET(alternate_scan), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE }, FF_MPV_COMMON_OPTS { NULL }, }
Definition at line 945 of file mpeg12enc.c.
uint8_t mv_penalty[MAX_FCODE+1][MAX_MV *2+1] [static] |
Definition at line 59 of file mpeg12enc.c.
const uint8_t svcd_scan_offset_placeholder[14] [static] |
Initial value:
{ 0x10, 0x0E, 0x00, 0x80, 0x81, 0x00, 0x80, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }
Definition at line 46 of file mpeg12enc.c.
Referenced by ff_mpeg1_encode_picture_header().
uint8_t uni_mpeg1_ac_vlc_len[64 *64 *2] [static] |
uint8_t uni_mpeg2_ac_vlc_len[64 *64 *2] [static] |