#include "libavutil/intmath.h"
#include "libavutil/mathematics.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "h263.h"
#include "mjpegenc.h"
#include "msmpeg4.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>
#include "sp5x.h"
Go to the source code of this file.
Definition in file mpegvideo_enc.c.
| #define COPY | ( | a | ) | dst->a= src->a | 
| #define MERGE | ( | field | ) | dst->field += src->field; src->field=0 | 
Definition at line 3094 of file mpegvideo_enc.c.
Referenced by merge_context_after_encode(), and merge_context_after_me().
| #define OFFSET | ( | x | ) | offsetof(MpegEncContext, x) | 
Definition at line 4223 of file mpegvideo_enc.c.
| #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 
Definition at line 4224 of file mpegvideo_enc.c.
| static void build_basis | ( | uint8_t * | perm | ) |  [static] | 
        
| static void clip_coeffs | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | last_index | |||
| ) |  [inline, static] | 
        
| static void copy_context_after_encode | ( | MpegEncContext * | d, | |
| MpegEncContext * | s, | |||
| int | type | |||
| ) |  [inline, static] | 
        
| static void copy_context_before_encode | ( | MpegEncContext * | d, | |
| MpegEncContext * | s, | |||
| int | type | |||
| ) |  [inline, static] | 
        
| static void copy_picture_attributes | ( | MpegEncContext * | s, | |
| AVFrame * | dst, | |||
| AVFrame * | src | |||
| ) |  [static] | 
        
Definition at line 187 of file mpegvideo_enc.c.
Referenced by load_input_picture(), and select_input_picture().
| static void dct_single_coeff_elimination | ( | MpegEncContext * | s, | |
| int | n, | |||
| int | threshold | |||
| ) |  [inline, static] | 
        
| static void denoise_dct_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block | |||
| ) |  [static] | 
        
| static int encode_frame | ( | AVCodecContext * | c, | |
| AVFrame * | frame | |||
| ) |  [static] | 
        
Definition at line 1132 of file mpegvideo_enc.c.
| static av_always_inline void encode_mb | ( | MpegEncContext * | s, | |
| int | motion_x, | |||
| int | motion_y | |||
| ) |  [static] | 
        
Definition at line 2157 of file mpegvideo_enc.c.
| 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 | |||
| ) |  [inline, static] | 
        
| 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] | 
        
| static int encode_picture | ( | MpegEncContext * | s, | |
| int | picture_number | |||
| ) |  [static] | 
        
| static int encode_thread | ( | AVCodecContext * | c, | |
| void * | arg | |||
| ) |  [static] | 
        
| static int estimate_best_b_count | ( | MpegEncContext * | s | ) |  [static] | 
        
| static int estimate_motion_thread | ( | AVCodecContext * | c, | |
| void * | arg | |||
| ) |  [static] | 
        
| static int estimate_qp | ( | MpegEncContext * | s, | |
| int | dry_run | |||
| ) |  [static] | 
        
| void ff_convert_matrix | ( | DSPContext * | dsp, | |
| int(*) | qmat[64], | |||
| uint16_t(*) | qmat16[2][64], | |||
| const uint16_t * | quant_matrix, | |||
| int | bias, | |||
| int | qmin, | |||
| int | qmax, | |||
| int | intra | |||
| ) | 
Definition at line 71 of file mpegvideo_enc.c.
Referenced by dnxhd_init_qmat(), encode_picture(), and ff_MPV_encode_init().
| av_cold int ff_dct_encode_init | ( | MpegEncContext * | s | ) | 
Definition at line 270 of file mpegvideo_enc.c.
Referenced by dnxhd_encode_init(), and ff_MPV_encode_init().
Definition at line 4143 of file mpegvideo_enc.c.
Referenced by dnxhd_encode_init(), encode_mb_internal(), and ff_dct_encode_init().
| void ff_init_qscale_tab | ( | MpegEncContext * | s | ) | 
init s->current_picture.qscale_table from s->lambda_table
Definition at line 174 of file mpegvideo_enc.c.
Referenced by estimate_qp(), and ff_clean_h263_qscales().
| av_cold int ff_MPV_encode_end | ( | AVCodecContext * | avctx | ) | 
| av_cold int ff_MPV_encode_init | ( | AVCodecContext * | avctx | ) | 
Definition at line 286 of file mpegvideo_enc.c.
Referenced by encode_init(), and wmv2_encode_init().
| int ff_MPV_encode_picture | ( | AVCodecContext * | avctx, | |
| AVPacket * | pkt, | |||
| AVFrame * | pic_arg, | |||
| int * | got_packet | |||
| ) | 
Definition at line 1472 of file mpegvideo_enc.c.
Referenced by amv_encode_picture(), and mpeg12_class().
| void ff_write_quant_matrix | ( | PutBitContext * | pb, | |
| uint16_t * | matrix | |||
| ) | 
Definition at line 158 of file mpegvideo_enc.c.
Referenced by mpeg1_encode_sequence_header(), and mpeg4_encode_vol_header().
| static int get_intra_count | ( | MpegEncContext * | s, | |
| uint8_t * | src, | |||
| uint8_t * | ref, | |||
| int | stride | |||
| ) |  [static] | 
        
| static int load_input_picture | ( | MpegEncContext * | s, | |
| AVFrame * | pic_arg | |||
| ) |  [static] | 
        
| static int mb_var_thread | ( | AVCodecContext * | c, | |
| void * | arg | |||
| ) |  [static] | 
        
| static void merge_context_after_encode | ( | MpegEncContext * | dst, | |
| MpegEncContext * | src | |||
| ) |  [static] | 
        
| static void merge_context_after_me | ( | MpegEncContext * | dst, | |
| MpegEncContext * | src | |||
| ) |  [static] | 
        
| 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 258 of file mpegvideo_enc.c.
Referenced by ff_MPV_encode_init().
| static int pre_estimate_motion_thread | ( | AVCodecContext * | c, | |
| void * | arg | |||
| ) |  [static] | 
        
| static int select_input_picture | ( | MpegEncContext * | s | ) |  [static] | 
        
| static void set_frame_distances | ( | MpegEncContext * | s | ) |  [static] | 
        
| static int skip_check | ( | MpegEncContext * | s, | |
| Picture * | p, | |||
| Picture * | ref | |||
| ) |  [static] | 
        
| static int sse | ( | MpegEncContext * | s, | |
| uint8_t * | src1, | |||
| uint8_t * | src2, | |||
| int | w, | |||
| int | h, | |||
| int | stride | |||
| ) |  [static] | 
        
Definition at line 2281 of file mpegvideo_enc.c.
Referenced by block_sse(), encode_thread(), main(), run_psnr(), and sse_mb().
| static int sse_mb | ( | MpegEncContext * | s | ) |  [static] | 
        
| static void update_duplicate_context_after_me | ( | MpegEncContext * | dst, | |
| MpegEncContext * | src | |||
| ) |  [static] | 
        
| static void update_mb_info | ( | MpegEncContext * | s, | |
| int | startcode | |||
| ) |  [static] | 
        
| static void update_qscale | ( | MpegEncContext * | s | ) |  [inline, static] | 
        
Definition at line 148 of file mpegvideo_enc.c.
Referenced by encode_mb_internal(), encode_picture(), and estimate_qp().
| static void write_mb_info | ( | MpegEncContext * | s | ) |  [static] | 
        
| static void write_slice_end | ( | MpegEncContext * | s | ) |  [static] | 
        
Definition at line 3749 of file mpegvideo_enc.c.
Referenced by add_8x8basis_TMPL(), and try_8x8basis_TMPL().
uint8_t default_fcode_tab[MAX_MV *2+1] [static]           | 
        
uint8_t default_mv_penalty[MAX_FCODE+1][MAX_MV *2+1] [static]           | 
        
Initial value:
 {
    .name           = "h263",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_H263,
    .priv_data_size = sizeof(MpegEncContext),
    .init           = ff_MPV_encode_init,
    .encode2        = ff_MPV_encode_picture,
    .close          = ff_MPV_encode_end,
    .pix_fmts= (const enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996"),
    .priv_class     = &h263_class,
}
Definition at line 4240 of file mpegvideo_enc.c.
Initial value:
 {
    .name           = "h263p",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_H263P,
    .priv_data_size = sizeof(MpegEncContext),
    .init           = ff_MPV_encode_init,
    .encode2        = ff_MPV_encode_picture,
    .close          = ff_MPV_encode_end,
    .capabilities   = CODEC_CAP_SLICE_THREADS,
    .pix_fmts       = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
    .long_name      = NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
    .priv_class     = &h263p_class,
}
Definition at line 4268 of file mpegvideo_enc.c.
| const AVOption ff_mpv_generic_options[] | 
Initial value:
 {
    .name           = "msmpeg4v2",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_MSMPEG4V2,
    .priv_data_size = sizeof(MpegEncContext),
    .init           = ff_MPV_encode_init,
    .encode2        = ff_MPV_encode_picture,
    .close          = ff_MPV_encode_end,
    .pix_fmts       = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
    .long_name      = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
    .priv_class     = &msmpeg4v2_class,
}
Definition at line 4284 of file mpegvideo_enc.c.
Initial value:
 {
    .name           = "msmpeg4",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_MSMPEG4V3,
    .priv_data_size = sizeof(MpegEncContext),
    .init           = ff_MPV_encode_init,
    .encode2        = ff_MPV_encode_picture,
    .close          = ff_MPV_encode_end,
    .pix_fmts       = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
    .long_name      = NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
    .priv_class     = &msmpeg4v3_class,
}
Definition at line 4299 of file mpegvideo_enc.c.
Initial value:
 {
    .name           = "wmv1",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_WMV1,
    .priv_data_size = sizeof(MpegEncContext),
    .init           = ff_MPV_encode_init,
    .encode2        = ff_MPV_encode_picture,
    .close          = ff_MPV_encode_end,
    .pix_fmts       = (const enum PixelFormat[]){ PIX_FMT_YUV420P, PIX_FMT_NONE },
    .long_name      = NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
    .priv_class     = &wmv1_class,
}
Definition at line 4314 of file mpegvideo_enc.c.
const AVClass h263_class [static]           | 
        
Initial value:
 {
    .class_name = "H.263 encoder",
    .item_name  = av_default_item_name,
    .option     = h263_options,
    .version    = LIBAVUTIL_VERSION_INT,
}
Definition at line 4233 of file mpegvideo_enc.c.
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 },
    FF_MPV_COMMON_OPTS
    { NULL },
}
Definition at line 4225 of file mpegvideo_enc.c.
const AVClass h263p_class [static]           | 
        
Initial value:
 {
    .class_name = "H.263p encoder",
    .item_name  = av_default_item_name,
    .option     = h263p_options,
    .version    = LIBAVUTIL_VERSION_INT,
}
Definition at line 4261 of file mpegvideo_enc.c.
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},
    FF_MPV_COMMON_OPTS
    { NULL },
}
Definition at line 4253 of file mpegvideo_enc.c.
 1.5.8