Libav
Macros | Functions | Variables
mpegvideo_enc.c File Reference

The simplest mpeg encoder (well, it was the simplest!). More...

#include <stdint.h>
#include "libavutil/internal.h"
#include "libavutil/intmath.h"
#include "libavutil/mathematics.h"
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavutil/timer.h"
#include "avcodec.h"
#include "dct.h"
#include "idctdsp.h"
#include "mpeg12.h"
#include "mpegvideo.h"
#include "h261.h"
#include "h263.h"
#include "mjpegenc_common.h"
#include "mathops.h"
#include "mpegutils.h"
#include "mjpegenc.h"
#include "msmpeg4.h"
#include "pixblockdsp.h"
#include "qpeldsp.h"
#include "faandct.h"
#include "thread.h"
#include "aandcttab.h"
#include "flv.h"
#include "mpeg4video.h"
#include "internal.h"
#include "bytestream.h"
#include <limits.h>

Go to the source code of this file.

Macros

#define QUANT_BIAS_SHIFT   8
 
#define QMAT_SHIFT_MMX   16
 
#define QMAT_SHIFT   22
 
#define COPY(a)   dst->a= src->a
 
#define MERGE(field)   dst->field += src->field; src->field=0
 
#define OFFSET(x)   offsetof(MpegEncContext, x)
 
#define VE   AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM
 

Functions

static int encode_picture (MpegEncContext *s, int picture_number)
 
static int dct_quantize_refine (MpegEncContext *s, int16_t *block, int16_t *weight, int16_t *orig, int n, int qscale)
 
static int sse_mb (MpegEncContext *s)
 
static void denoise_dct_c (MpegEncContext *s, int16_t *block)
 
static int dct_quantize_trellis_c (MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow)
 
void ff_convert_matrix (MpegEncContext *s, int(*qmat)[64], uint16_t(*qmat16)[2][64], const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra)
 
static void update_qscale (MpegEncContext *s)
 
void ff_write_quant_matrix (PutBitContext *pb, uint16_t *matrix)
 
void ff_init_qscale_tab (MpegEncContext *s)
 init s->current_picture.qscale_table from s->lambda_table More...
 
static void update_duplicate_context_after_me (MpegEncContext *dst, MpegEncContext *src)
 
static void mpv_encode_defaults (MpegEncContext *s)
 Set the given MpegEncContext to defaults for encoding. More...
 
av_cold int ff_mpv_encode_init (AVCodecContext *avctx)
 
av_cold int ff_mpv_encode_end (AVCodecContext *avctx)
 
static int get_sae (uint8_t *src, int ref, int stride)
 
static int get_intra_count (MpegEncContext *s, uint8_t *src, uint8_t *ref, int stride)
 
static int load_input_picture (MpegEncContext *s, const AVFrame *pic_arg)
 
static int skip_check (MpegEncContext *s, Picture *p, Picture *ref)
 
static int encode_frame (AVCodecContext *c, AVFrame *frame)
 
static int estimate_best_b_count (MpegEncContext *s)
 
static int select_input_picture (MpegEncContext *s)
 
static void frame_end (MpegEncContext *s)
 
static void update_noise_reduction (MpegEncContext *s)
 
static int frame_start (MpegEncContext *s)
 
int ff_mpv_encode_picture (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
 
static void dct_single_coeff_elimination (MpegEncContext *s, int n, int threshold)
 
static void clip_coeffs (MpegEncContext *s, int16_t *block, int last_index)
 
static void get_visual_weight (int16_t *weight, uint8_t *ptr, int stride)
 
static av_always_inline void encode_mb_internal (MpegEncContext *s, int motion_x, int motion_y, int mb_block_height, int mb_block_count)
 
static av_always_inline void encode_mb (MpegEncContext *s, int motion_x, int motion_y)
 
static void copy_context_before_encode (MpegEncContext *d, MpegEncContext *s, int type)
 
static void copy_context_after_encode (MpegEncContext *d, MpegEncContext *s, int type)
 
static void encode_mb_hq (MpegEncContext *s, MpegEncContext *backup, MpegEncContext *best, int type, PutBitContext pb[2], PutBitContext pb2[2], PutBitContext tex_pb[2], int *dmin, int *next_block, int motion_x, int motion_y)
 
static int sse (MpegEncContext *s, uint8_t *src1, uint8_t *src2, int w, int h, int stride)
 
static int pre_estimate_motion_thread (AVCodecContext *c, void *arg)
 
static int estimate_motion_thread (AVCodecContext *c, void *arg)
 
static int mb_var_thread (AVCodecContext *c, void *arg)
 
static void write_slice_end (MpegEncContext *s)
 
static void write_mb_info (MpegEncContext *s)
 
static void update_mb_info (MpegEncContext *s, int startcode)
 
static int encode_thread (AVCodecContext *c, void *arg)
 
static void merge_context_after_me (MpegEncContext *dst, MpegEncContext *src)
 
static void merge_context_after_encode (MpegEncContext *dst, MpegEncContext *src)
 
static int estimate_qp (MpegEncContext *s, int dry_run)
 
static void set_frame_distances (MpegEncContext *s)
 
static void build_basis (uint8_t *perm)
 
int ff_dct_quantize_c (MpegEncContext *s, int16_t *block, int n, int qscale, int *overflow)
 

Variables

static uint8_t default_mv_penalty [MAX_FCODE+1][MAX_MV *2+1]
 
static uint8_t default_fcode_tab [MAX_MV *2+1]
 
const AVOption ff_mpv_generic_options []
 
static int16_t basis [64][64]
 
static const AVOption h263_options []
 
static const AVClass h263_class
 
AVCodec ff_h263_encoder
 
static const AVOption h263p_options []
 
static const AVClass h263p_class
 
AVCodec ff_h263p_encoder
 
AVCodec ff_msmpeg4v2_encoder
 
AVCodec ff_msmpeg4v3_encoder
 
AVCodec ff_wmv1_encoder
 

Detailed Description

The simplest mpeg encoder (well, it was the simplest!).

Definition in file mpegvideo_enc.c.

Macro Definition Documentation

§ QUANT_BIAS_SHIFT

#define QUANT_BIAS_SHIFT   8

Definition at line 61 of file mpegvideo_enc.c.

Referenced by ff_convert_matrix(), ff_dct_quantize_c(), and ff_mpv_encode_init().

§ QMAT_SHIFT_MMX

#define QMAT_SHIFT_MMX   16

Definition at line 63 of file mpegvideo_enc.c.

Referenced by ff_convert_matrix().

§ QMAT_SHIFT

#define QMAT_SHIFT   22

Definition at line 64 of file mpegvideo_enc.c.

Referenced by dct_quantize_trellis_c(), ff_convert_matrix(), and ff_dct_quantize_c().

§ COPY

#define COPY (   a)    dst->a= src->a

§ MERGE

#define MERGE (   field)    dst->field += src->field; src->field=0

Definition at line 3134 of file mpegvideo_enc.c.

Referenced by merge_context_after_encode(), and merge_context_after_me().

§ OFFSET

#define OFFSET (   x)    offsetof(MpegEncContext, x)

Definition at line 4242 of file mpegvideo_enc.c.

§ VE

Definition at line 4243 of file mpegvideo_enc.c.

Function Documentation

§ encode_picture()

static int encode_picture ( MpegEncContext s,
int  picture_number 
)
static

Definition at line 3224 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_picture().

§ dct_quantize_refine()

static int dct_quantize_refine ( MpegEncContext s,
int16_t *  block,
int16_t *  weight,
int16_t *  orig,
int  n,
int  qscale 
)
static

Definition at line 3786 of file mpegvideo_enc.c.

Referenced by encode_mb_internal().

§ sse_mb()

static int sse_mb ( MpegEncContext s)
static

Definition at line 2356 of file mpegvideo_enc.c.

Referenced by encode_mb_hq().

§ denoise_dct_c()

static void denoise_dct_c ( MpegEncContext s,
int16_t *  block 
)
static

Definition at line 3448 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_init().

§ dct_quantize_trellis_c()

static int dct_quantize_trellis_c ( MpegEncContext s,
int16_t *  block,
int  n,
int  qscale,
int *  overflow 
)
static

Definition at line 3472 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_init().

§ ff_convert_matrix()

void ff_convert_matrix ( MpegEncContext s,
int(*)  qmat[64],
uint16_t(*)  qmat16[2][64],
const uint16_t *  quant_matrix,
int  bias,
int  qmin,
int  qmax,
int  intra 
)

Definition at line 80 of file mpegvideo_enc.c.

Referenced by dnxhd_init_qmat(), encode_picture(), and ff_mpv_encode_init().

§ update_qscale()

static void update_qscale ( MpegEncContext s)
inlinestatic

Definition at line 159 of file mpegvideo_enc.c.

Referenced by encode_mb_internal(), encode_picture(), and estimate_qp().

§ ff_write_quant_matrix()

void ff_write_quant_matrix ( PutBitContext pb,
uint16_t *  matrix 
)

Definition at line 169 of file mpegvideo_enc.c.

Referenced by mpeg1_encode_sequence_header(), and mpeg4_encode_vol_header().

§ ff_init_qscale_tab()

void ff_init_qscale_tab ( MpegEncContext s)

init s->current_picture.qscale_table from s->lambda_table

Definition at line 185 of file mpegvideo_enc.c.

Referenced by estimate_qp(), and ff_clean_h263_qscales().

§ update_duplicate_context_after_me()

static void update_duplicate_context_after_me ( MpegEncContext dst,
MpegEncContext src 
)
static

Definition at line 198 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ mpv_encode_defaults()

static void mpv_encode_defaults ( MpegEncContext s)
static

Set the given MpegEncContext to defaults for encoding.

the changed fields will not depend upon the prior state of the MpegEncContext.

Definition at line 221 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_init().

§ ff_mpv_encode_init()

av_cold int ff_mpv_encode_init ( AVCodecContext avctx)

Definition at line 237 of file mpegvideo_enc.c.

Referenced by encode_init(), and wmv2_encode_init().

§ ff_mpv_encode_end()

av_cold int ff_mpv_encode_end ( AVCodecContext avctx)

Definition at line 845 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_init(), and mpeg12_class().

§ get_sae()

static int get_sae ( uint8_t src,
int  ref,
int  stride 
)
static

Definition at line 879 of file mpegvideo_enc.c.

Referenced by get_intra_count().

§ get_intra_count()

static int get_intra_count ( MpegEncContext s,
uint8_t src,
uint8_t ref,
int  stride 
)
static

Definition at line 893 of file mpegvideo_enc.c.

Referenced by select_input_picture().

§ load_input_picture()

static int load_input_picture ( MpegEncContext s,
const AVFrame pic_arg 
)
static

Definition at line 917 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_picture().

§ skip_check()

static int skip_check ( MpegEncContext s,
Picture p,
Picture ref 
)
static

Definition at line 1049 of file mpegvideo_enc.c.

Referenced by select_input_picture().

§ encode_frame()

static int encode_frame ( AVCodecContext c,
AVFrame frame 
)
static

Definition at line 1086 of file mpegvideo_enc.c.

Referenced by estimate_best_b_count().

§ estimate_best_b_count()

static int estimate_best_b_count ( MpegEncContext s)
static

Definition at line 1101 of file mpegvideo_enc.c.

Referenced by select_input_picture().

§ select_input_picture()

static int select_input_picture ( MpegEncContext s)
static

Definition at line 1215 of file mpegvideo_enc.c.

Referenced by ff_mpv_encode_picture().

§ frame_end()

static void frame_end ( MpegEncContext s)
static

§ update_noise_reduction()

static void update_noise_reduction ( MpegEncContext s)
static

Definition at line 1440 of file mpegvideo_enc.c.

Referenced by frame_start().

§ frame_start()

static int frame_start ( MpegEncContext s)
static

Definition at line 1461 of file mpegvideo_enc.c.

Referenced by decode_dds1(), decode_dsw1(), decode_tsw1(), and ff_mpv_encode_picture().

§ ff_mpv_encode_picture()

int ff_mpv_encode_picture ( AVCodecContext avctx,
AVPacket pkt,
const AVFrame pic_arg,
int *  got_packet 
)

Definition at line 1533 of file mpegvideo_enc.c.

Referenced by mpeg12_class().

§ dct_single_coeff_elimination()

static void dct_single_coeff_elimination ( MpegEncContext s,
int  n,
int  threshold 
)
inlinestatic

Definition at line 1738 of file mpegvideo_enc.c.

Referenced by encode_mb_internal().

§ clip_coeffs()

static void clip_coeffs ( MpegEncContext s,
int16_t *  block,
int  last_index 
)
inlinestatic

Definition at line 1794 of file mpegvideo_enc.c.

Referenced by encode_mb_internal().

§ get_visual_weight()

static void get_visual_weight ( int16_t *  weight,
uint8_t ptr,
int  stride 
)
static

Definition at line 1828 of file mpegvideo_enc.c.

Referenced by encode_mb_internal().

§ encode_mb_internal()

static av_always_inline void encode_mb_internal ( MpegEncContext s,
int  motion_x,
int  motion_y,
int  mb_block_height,
int  mb_block_count 
)
static

Definition at line 1852 of file mpegvideo_enc.c.

Referenced by encode_mb().

§ encode_mb()

static av_always_inline void encode_mb ( MpegEncContext s,
int  motion_x,
int  motion_y 
)
static

Definition at line 2211 of file mpegvideo_enc.c.

Referenced by encode_mb_hq(), and encode_thread().

§ copy_context_before_encode()

static void copy_context_before_encode ( MpegEncContext d,
MpegEncContext s,
int  type 
)
inlinestatic

Definition at line 2217 of file mpegvideo_enc.c.

Referenced by encode_mb_hq(), and encode_thread().

§ copy_context_after_encode()

static void copy_context_after_encode ( MpegEncContext d,
MpegEncContext s,
int  type 
)
inlinestatic

Definition at line 2245 of file mpegvideo_enc.c.

Referenced by encode_mb_hq(), and encode_thread().

§ encode_mb_hq()

static void encode_mb_hq ( MpegEncContext s,
MpegEncContext backup,
MpegEncContext best,
int  type,
PutBitContext  pb[2],
PutBitContext  pb2[2],
PutBitContext  tex_pb[2],
int *  dmin,
int *  next_block,
int  motion_x,
int  motion_y 
)
inlinestatic

Definition at line 2284 of file mpegvideo_enc.c.

Referenced by encode_thread().

§ sse()

static int sse ( MpegEncContext s,
uint8_t src1,
uint8_t src2,
int  w,
int  h,
int  stride 
)
static

Definition at line 2335 of file mpegvideo_enc.c.

Referenced by block_sse(), encode_thread(), ff_vp9dsp_init_x86(), main(), and sse_mb().

§ pre_estimate_motion_thread()

static int pre_estimate_motion_thread ( AVCodecContext c,
void arg 
)
static

Definition at line 2379 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ estimate_motion_thread()

static int estimate_motion_thread ( AVCodecContext c,
void arg 
)
static

Definition at line 2398 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ mb_var_thread()

static int mb_var_thread ( AVCodecContext c,
void arg 
)
static

Definition at line 2423 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ write_slice_end()

static void write_slice_end ( MpegEncContext s)
static

Definition at line 2446 of file mpegvideo_enc.c.

Referenced by encode_thread().

§ write_mb_info()

static void write_mb_info ( MpegEncContext s)
static

Definition at line 2464 of file mpegvideo_enc.c.

Referenced by update_mb_info().

§ update_mb_info()

static void update_mb_info ( MpegEncContext s,
int  startcode 
)
static

Definition at line 2484 of file mpegvideo_enc.c.

Referenced by encode_thread().

§ encode_thread()

static int encode_thread ( AVCodecContext c,
void arg 
)
static

Definition at line 2507 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ merge_context_after_me()

static void merge_context_after_me ( MpegEncContext dst,
MpegEncContext src 
)
static

Definition at line 3135 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ merge_context_after_encode()

static void merge_context_after_encode ( MpegEncContext dst,
MpegEncContext src 
)
static

Definition at line 3141 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ estimate_qp()

static int estimate_qp ( MpegEncContext s,
int  dry_run 
)
static

Definition at line 3173 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ set_frame_distances()

static void set_frame_distances ( MpegEncContext s)
static

Definition at line 3210 of file mpegvideo_enc.c.

Referenced by encode_picture().

§ build_basis()

static void build_basis ( uint8_t perm)
static

Definition at line 3767 of file mpegvideo_enc.c.

Referenced by dct_quantize_refine().

§ ff_dct_quantize_c()

int ff_dct_quantize_c ( MpegEncContext s,
int16_t *  block,
int  n,
int  qscale,
int *  overflow 
)

Definition at line 4161 of file mpegvideo_enc.c.

Referenced by dnxhd_encode_init(), encode_mb_internal(), and ff_mpv_encode_init().

Variable Documentation

§ default_mv_penalty

uint8_t default_mv_penalty[MAX_FCODE+1][MAX_MV *2+1]
static

Definition at line 72 of file mpegvideo_enc.c.

Referenced by mpv_encode_defaults().

§ default_fcode_tab

uint8_t default_fcode_tab[MAX_MV *2+1]
static

Definition at line 73 of file mpegvideo_enc.c.

Referenced by mpv_encode_defaults().

§ ff_mpv_generic_options

const AVOption ff_mpv_generic_options[]
Initial value:
= {
{ NULL },
}
#define FF_MPV_COMMON_OPTS
Definition: mpegvideo.h:661
NULL
Definition: eval.c:55

Definition at line 75 of file mpegvideo_enc.c.

§ basis

int16_t basis[64][64]
static

Definition at line 3765 of file mpegvideo_enc.c.

Referenced by add_8x8basis(), and try_8x8basis().

§ h263_options

const AVOption h263_options[]
static
Initial value:
= {
{ "obmc", "use overlapped block motion compensation.", OFFSET(obmc), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "structured_slices","Write slice start position at every GOB header instead of just GOB number.", OFFSET(h263_slice_structured), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
{ "mb_info", "emit macroblock info for RFC 2190 packetization, the parameter value is the maximum payload size", OFFSET(mb_info), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE },
{ NULL },
}
#define OFFSET(x)
#define FF_MPV_COMMON_OPTS
Definition: mpegvideo.h:661
NULL
Definition: eval.c:55
#define VE

Definition at line 4244 of file mpegvideo_enc.c.

§ h263_class

const AVClass h263_class
static
Initial value:
= {
.class_name = "H.263 encoder",
.item_name = av_default_item_name,
.option = h263_options,
}
static const AVOption h263_options[]
LIBAVUTIL_VERSION_INT
Definition: eval.c:55
av_default_item_name
Definition: dnxhdenc.c:52

Definition at line 4252 of file mpegvideo_enc.c.

§ ff_h263_encoder

AVCodec ff_h263_encoder
Initial value:
= {
.name = "h263",
.long_name = NULL_IF_CONFIG_SMALL("H.263 / H.263-1996"),
.priv_data_size = sizeof(MpegEncContext),
.pix_fmts= (const enum AVPixelFormat[]){AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE},
.priv_class = &h263_class,
}
static const AVClass h263_class
av_cold int ff_mpv_encode_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:145
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:490
MpegEncContext.
Definition: mpegvideo.h:204
av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:65
static av_cold int init(AVCodecParserContext *s)
Definition: h264_parser.c:499
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:63

Definition at line 4259 of file mpegvideo_enc.c.

§ h263p_options

const AVOption h263p_options[]
static
Initial value:
= {
{ "umv", "Use unlimited motion vectors.", OFFSET(umvplus), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "aiv", "Use alternative inter VLC.", OFFSET(alt_inter_vlc), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "obmc", "use overlapped block motion compensation.", OFFSET(obmc), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE },
{ "structured_slices", "Write slice start position at every GOB header instead of just GOB number.", OFFSET(h263_slice_structured), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE},
{ NULL },
}
#define OFFSET(x)
#define FF_MPV_COMMON_OPTS
Definition: mpegvideo.h:661
NULL
Definition: eval.c:55
#define VE

Definition at line 4272 of file mpegvideo_enc.c.

§ h263p_class

const AVClass h263p_class
static
Initial value:
= {
.class_name = "H.263p encoder",
.item_name = av_default_item_name,
.option = h263p_options,
}
static const AVOption h263p_options[]
LIBAVUTIL_VERSION_INT
Definition: eval.c:55
av_default_item_name
Definition: dnxhdenc.c:52

Definition at line 4280 of file mpegvideo_enc.c.

§ ff_h263p_encoder

AVCodec ff_h263p_encoder
Initial value:
= {
.name = "h263p",
.long_name = NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
.priv_data_size = sizeof(MpegEncContext),
.capabilities = CODEC_CAP_SLICE_THREADS,
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
.priv_class = &h263p_class,
}
av_cold int ff_mpv_encode_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:145
static const AVClass h263p_class
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:490
MpegEncContext.
Definition: mpegvideo.h:204
av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:65
#define CODEC_CAP_SLICE_THREADS
Codec supports slice-based (or partition-based) multithreading.
Definition: avcodec.h:759
static av_cold int init(AVCodecParserContext *s)
Definition: h264_parser.c:499
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:63

Definition at line 4287 of file mpegvideo_enc.c.

§ ff_msmpeg4v2_encoder

AVCodec ff_msmpeg4v2_encoder
Initial value:
= {
.name = "msmpeg4v2",
.long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
.priv_data_size = sizeof(MpegEncContext),
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
.priv_class = &msmpeg4v2_class,
}
av_cold int ff_mpv_encode_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:145
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:490
MpegEncContext.
Definition: mpegvideo.h:204
av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:65
static av_cold int init(AVCodecParserContext *s)
Definition: h264_parser.c:499
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:63

Definition at line 4303 of file mpegvideo_enc.c.

§ ff_msmpeg4v3_encoder

AVCodec ff_msmpeg4v3_encoder
Initial value:
= {
.name = "msmpeg4",
.long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
.priv_data_size = sizeof(MpegEncContext),
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
.priv_class = &msmpeg4v3_class,
}
av_cold int ff_mpv_encode_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:145
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:490
MpegEncContext.
Definition: mpegvideo.h:204
av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:65
static av_cold int init(AVCodecParserContext *s)
Definition: h264_parser.c:499
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:63

Definition at line 4318 of file mpegvideo_enc.c.

§ ff_wmv1_encoder

AVCodec ff_wmv1_encoder
Initial value:
= {
.name = "wmv1",
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
.priv_data_size = sizeof(MpegEncContext),
.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE },
.priv_class = &wmv1_class,
}
av_cold int ff_mpv_encode_end(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:145
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:490
MpegEncContext.
Definition: mpegvideo.h:204
av_cold int ff_mpv_encode_init(AVCodecContext *avctx)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:65
static av_cold int init(AVCodecParserContext *s)
Definition: h264_parser.c:499
int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pic_arg, int *got_packet)
AVPixelFormat
Pixel format.
Definition: pixfmt.h:63

Definition at line 4333 of file mpegvideo_enc.c.