#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "mpegvideo_common.h"
#include "mjpegenc.h"
#include "msmpeg4.h"
#include "h263.h"
#include "faandct.h"
#include "aandcttab.h"
#include <limits.h>
Go to the source code of this file.
Defines | |
| #define | COPY(a) dst->a= src->a | 
| #define | MERGE(field) dst->field += src->field; src->field=0 | 
Functions | |
| static int | encode_picture (MpegEncContext *s, int picture_number) | 
| static int | dct_quantize_refine (MpegEncContext *s, DCTELEM *block, int16_t *weight, DCTELEM *orig, int n, int qscale) | 
| static int | sse_mb (MpegEncContext *s) | 
| 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) | 
| static void | update_qscale (MpegEncContext *s) | 
| void | ff_write_quant_matrix (PutBitContext *pb, uint16_t *matrix) | 
| static void | copy_picture_attributes (MpegEncContext *s, AVFrame *dst, AVFrame *src) | 
| static void | update_duplicate_context_after_me (MpegEncContext *dst, MpegEncContext *src) | 
| static void | MPV_encode_defaults (MpegEncContext *s) | 
| sets the given MpegEncContext to defaults for encoding.   | |
| av_cold int | MPV_encode_init (AVCodecContext *avctx) | 
| av_cold int | 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, AVFrame *pic_arg) | 
| static int | skip_check (MpegEncContext *s, Picture *p, Picture *ref) | 
| static int | estimate_best_b_count (MpegEncContext *s) | 
| static void | select_input_picture (MpegEncContext *s) | 
| int | MPV_encode_picture (AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data) | 
| static void | dct_single_coeff_elimination (MpegEncContext *s, int n, int threshold) | 
| static void | clip_coeffs (MpegEncContext *s, DCTELEM *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 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) | 
| void | denoise_dct_c (MpegEncContext *s, DCTELEM *block) | 
| int | dct_quantize_trellis_c (MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow) | 
| static void | build_basis (uint8_t *perm) | 
| int | dct_quantize_c (MpegEncContext *s, DCTELEM *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] | 
| static int16_t | basis [64][64] | 
| AVCodec | h263_encoder | 
| AVCodec | h263p_encoder | 
| AVCodec | flv_encoder | 
| AVCodec | rv10_encoder | 
| AVCodec | rv20_encoder | 
| AVCodec | mpeg4_encoder | 
| AVCodec | msmpeg4v1_encoder | 
| AVCodec | msmpeg4v2_encoder | 
| AVCodec | msmpeg4v3_encoder | 
| AVCodec | wmv1_encoder | 
Definition in file mpegvideo_enc.c.
| #define COPY | ( | a | ) | dst->a= src->a | 
Definition at line 2615 of file mpegvideo_enc.c.
Referenced by merge_context_after_encode(), and merge_context_after_me().
| 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 149 of file mpegvideo_enc.c.
Referenced by load_input_picture(), and select_input_picture().
| int dct_quantize_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale, | |||
| int * | overflow | |||
| ) | 
Definition at line 3638 of file mpegvideo_enc.c.
Referenced by dnxhd_encode_init(), encode_mb_internal(), and MPV_encode_init().
| static int dct_quantize_refine | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int16_t * | weight, | |||
| DCTELEM * | orig, | |||
| int | n, | |||
| int | qscale | |||
| ) |  [static] | 
        
| int dct_quantize_trellis_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block, | |||
| int | n, | |||
| int | qscale, | |||
| int * | overflow | |||
| ) | 
| static void dct_single_coeff_elimination | ( | MpegEncContext * | s, | |
| int | n, | |||
| int | threshold | |||
| ) |  [inline, static] | 
        
| void denoise_dct_c | ( | MpegEncContext * | s, | |
| DCTELEM * | block | |||
| ) | 
| static av_always_inline void encode_mb | ( | MpegEncContext * | s, | |
| int | motion_x, | |||
| int | motion_y | |||
| ) |  [static] | 
        
Definition at line 1729 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 56 of file mpegvideo_enc.c.
Referenced by dnxhd_init_qmat(), encode_picture(), and MPV_encode_init().
| void ff_write_quant_matrix | ( | PutBitContext * | pb, | |
| uint16_t * | matrix | |||
| ) | 
| static int get_intra_count | ( | MpegEncContext * | s, | |
| uint8_t * | src, | |||
| uint8_t * | ref, | |||
| int | stride | |||
| ) |  [static] | 
        
| static int get_sae | ( | uint8_t * | src, | |
| int | ref, | |||
| int | stride | |||
| ) |  [static] | 
        
| static void get_visual_weight | ( | int16_t * | weight, | |
| uint8_t * | ptr, | |||
| 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] | 
        
sets the given MpegEncContext to defaults for encoding.
the changed fields will not depend upon the prior state of the MpegEncContext.
Definition at line 209 of file mpegvideo_enc.c.
Referenced by MPV_encode_init().
| av_cold int MPV_encode_end | ( | AVCodecContext * | avctx | ) | 
Definition at line 718 of file mpegvideo_enc.c.
| av_cold int MPV_encode_init | ( | AVCodecContext * | avctx | ) | 
Definition at line 221 of file mpegvideo_enc.c.
Referenced by encode_init(), and wmv2_encode_init().
| int MPV_encode_picture | ( | AVCodecContext * | avctx, | |
| unsigned char * | buf, | |||
| int | buf_size, | |||
| void * | data | |||
| ) | 
Definition at line 1183 of file mpegvideo_enc.c.
| static int pre_estimate_motion_thread | ( | AVCodecContext * | c, | |
| void * | arg | |||
| ) |  [static] | 
        
| static void 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 1853 of file mpegvideo_enc.c.
Referenced by block_sse(), encode_thread(), main(), 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_qscale | ( | MpegEncContext * | s | ) |  [inline, static] | 
        
Definition at line 130 of file mpegvideo_enc.c.
Referenced by encode_mb_internal(), encode_picture(), and estimate_qp().
| static void write_slice_end | ( | MpegEncContext * | s | ) |  [static] | 
        
int16_t basis[64][64] [static]           | 
        
Definition at line 3241 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:
 {
    "flv",
    CODEC_TYPE_VIDEO,
    CODEC_ID_FLV1,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("Flash Video (FLV)"),
}
Definition at line 3742 of file mpegvideo_enc.c.
Initial value:
 {
    "h263",
    CODEC_TYPE_VIDEO,
    CODEC_ID_H263,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("H.263 / H.263-1996"),
}
Definition at line 3718 of file mpegvideo_enc.c.
Initial value:
 {
    "h263p",
    CODEC_TYPE_VIDEO,
    CODEC_ID_H263P,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("H.263+ / H.263-1998 / H.263 version 2"),
}
Definition at line 3730 of file mpegvideo_enc.c.
Initial value:
 {
    "mpeg4",
    CODEC_TYPE_VIDEO,
    CODEC_ID_MPEG4,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .capabilities= CODEC_CAP_DELAY,
    .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
}
Definition at line 3778 of file mpegvideo_enc.c.
Initial value:
 {
    "msmpeg4v1",
    CODEC_TYPE_VIDEO,
    CODEC_ID_MSMPEG4V1,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 1"),
}
Definition at line 3791 of file mpegvideo_enc.c.
Initial value:
 {
    "msmpeg4v2",
    CODEC_TYPE_VIDEO,
    CODEC_ID_MSMPEG4V2,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 2"),
}
Definition at line 3803 of file mpegvideo_enc.c.
Initial value:
 {
    "msmpeg4",
    CODEC_TYPE_VIDEO,
    CODEC_ID_MSMPEG4V3,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("MPEG-4 part 2 Microsoft variant version 3"),
}
Definition at line 3815 of file mpegvideo_enc.c.
Initial value:
 {
    "rv10",
    CODEC_TYPE_VIDEO,
    CODEC_ID_RV10,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("RealVideo 1.0"),
}
Definition at line 3754 of file mpegvideo_enc.c.
Initial value:
 {
    "rv20",
    CODEC_TYPE_VIDEO,
    CODEC_ID_RV20,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("RealVideo 2.0"),
}
Definition at line 3766 of file mpegvideo_enc.c.
Initial value:
 {
    "wmv1",
    CODEC_TYPE_VIDEO,
    CODEC_ID_WMV1,
    sizeof(MpegEncContext),
    MPV_encode_init,
    MPV_encode_picture,
    MPV_encode_end,
    .pix_fmts= (enum PixelFormat[]){PIX_FMT_YUV420P, PIX_FMT_NONE},
    .long_name= NULL_IF_CONFIG_SMALL("Windows Media Video 7"),
}
Definition at line 3827 of file mpegvideo_enc.c.
 1.5.8