⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpegvideo.h

📁 mediastreamer2是开源的网络传输媒体流的库
💻 H
📖 第 1 页 / 共 3 页
字号:
    int msmpeg4_version;   ///< 0=not msmpeg4, 1=mp41, 2=mp42, 3=mp43/divx3 4=wmv1/7 5=wmv2/8    int per_mb_rl_table;    int esc3_level_length;    int esc3_run_length;    /** [mb_intra][isChroma][level][run][last] */    int (*ac_stats)[2][MAX_LEVEL+1][MAX_RUN+1][2];    int inter_intra_pred;    int mspel;    /* decompression specific */    GetBitContext gb;    /* Mpeg1 specific */    int gop_picture_number;  ///< index of the first picture of a GOP based on fake_pic_num & mpeg1 specific    int last_mv_dir;         ///< last mv_dir, used for b frame encoding    int broken_link;         ///< no_output_of_prior_pics_flag    uint8_t *vbv_delay_ptr;  ///< pointer to vbv_delay in the bitstream    /* MPEG2 specific - I wish I had not to support this mess. */    int progressive_sequence;    int mpeg_f_code[2][2];    int picture_structure;/* picture type */#define PICT_TOP_FIELD     1#define PICT_BOTTOM_FIELD  2#define PICT_FRAME         3    int intra_dc_precision;    int frame_pred_frame_dct;    int top_field_first;    int concealment_motion_vectors;    int q_scale_type;    int intra_vlc_format;    int alternate_scan;    int repeat_first_field;    int chroma_420_type;    int chroma_format;#define CHROMA_420 1#define CHROMA_422 2#define CHROMA_444 3    int chroma_x_shift;//depend on pix_format, that depend on chroma_format    int chroma_y_shift;    int progressive_frame;    int full_pel[2];    int interlaced_dct;    int first_slice;    int first_field;         ///< is 1 for the first field of a field picture 0 otherwise    /* RTP specific */    int rtp_mode;    uint8_t *ptr_lastgob;    int swap_uv;//vcr2 codec is mpeg2 varint with UV swaped    short * pblocks[12];    DCTELEM (*block)[64]; ///< points to one of the following blocks    DCTELEM (*blocks)[8][64]; // for HQ mode we need to keep the best block    int (*decode_mb)(struct MpegEncContext *s, DCTELEM block[6][64]); // used by some codecs to avoid a switch()#define SLICE_OK         0#define SLICE_ERROR     -1#define SLICE_END       -2 ///<end marker found#define SLICE_NOEND     -3 ///<no end marker or error found but mb count exceeded    void (*dct_unquantize_mpeg1_intra)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_mpeg1_inter)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_mpeg2_intra)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_mpeg2_inter)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_h263_intra)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_h263_inter)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_h261_intra)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_h261_inter)(struct MpegEncContext *s,                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_intra)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both)                           DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_inter)(struct MpegEncContext *s, // unquantizer to use (mpeg4 can use both)                           DCTELEM *block/*align 16*/, int n, int qscale);    int (*dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);    int (*fast_dct_quantize)(struct MpegEncContext *s, DCTELEM *block/*align 16*/, int n, int qscale, int *overflow);    void (*denoise_dct)(struct MpegEncContext *s, DCTELEM *block);} MpegEncContext;void MPV_decode_defaults(MpegEncContext *s);int MPV_common_init(MpegEncContext *s);void MPV_common_end(MpegEncContext *s);void MPV_decode_mb(MpegEncContext *s, DCTELEM block[12][64]);int MPV_frame_start(MpegEncContext *s, AVCodecContext *avctx);void MPV_frame_end(MpegEncContext *s);int MPV_encode_init(AVCodecContext *avctx);int MPV_encode_end(AVCodecContext *avctx);int MPV_encode_picture(AVCodecContext *avctx, unsigned char *buf, int buf_size, void *data);void MPV_common_init_mmx(MpegEncContext *s);void MPV_common_init_axp(MpegEncContext *s);void MPV_common_init_mlib(MpegEncContext *s);void MPV_common_init_mmi(MpegEncContext *s);void MPV_common_init_armv4l(MpegEncContext *s);void MPV_common_init_altivec(MpegEncContext *s);extern void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);void ff_clean_intra_table_entries(MpegEncContext *s);void ff_init_scantable(uint8_t *, ScanTable *st, const uint8_t *src_scantable);void ff_draw_horiz_band(MpegEncContext *s, int y, int h);void ff_emulated_edge_mc(uint8_t *buf, uint8_t *src, int linesize, int block_w, int block_h,                                    int src_x, int src_y, int w, int h);void ff_mpeg_flush(AVCodecContext *avctx);void ff_print_debug_info(MpegEncContext *s, AVFrame *pict);void ff_write_quant_matrix(PutBitContext *pb, uint16_t *matrix);int ff_find_unused_picture(MpegEncContext *s, int shared);void ff_denoise_dct(MpegEncContext *s, DCTELEM *block);void ff_update_duplicate_context(MpegEncContext *dst, MpegEncContext *src);const uint8_t *ff_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state);void ff_er_frame_start(MpegEncContext *s);void ff_er_frame_end(MpegEncContext *s);void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status);int ff_dct_common_init(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);void ff_init_block_index(MpegEncContext *s);static inline void ff_update_block_index(MpegEncContext *s){    const int block_size= 8>>s->avctx->lowres;    s->block_index[0]+=2;    s->block_index[1]+=2;    s->block_index[2]+=2;    s->block_index[3]+=2;    s->block_index[4]++;    s->block_index[5]++;    s->dest[0]+= 2*block_size;    s->dest[1]+= block_size;    s->dest[2]+= block_size;}static inline int get_bits_diff(MpegEncContext *s){    const int bits= put_bits_count(&s->pb);    const int last= s->last_bits;    s->last_bits = bits;    return bits - last;}static inline int ff_h263_round_chroma(int x){    static const uint8_t h263_chroma_roundtab[16] = {    //  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15        0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,    };    return h263_chroma_roundtab[x & 0xf] + (x >> 3);}/* motion_est.c */void ff_estimate_p_frame_motion(MpegEncContext * s,                             int mb_x, int mb_y);void ff_estimate_b_frame_motion(MpegEncContext * s,                             int mb_x, int mb_y);int ff_get_best_fcode(MpegEncContext * s, int16_t (*mv_table)[2], int type);void ff_fix_long_p_mvs(MpegEncContext * s);void ff_fix_long_mvs(MpegEncContext * s, uint8_t *field_select_table, int field_select,                     int16_t (*mv_table)[2], int f_code, int type, int truncate);void ff_init_me(MpegEncContext *s);int ff_pre_estimate_p_frame_motion(MpegEncContext * s, int mb_x, int mb_y);int ff_epzs_motion_search(MpegEncContext * s, int *mx_ptr, int *my_ptr,                             int P[10][2], int src_index, int ref_index, int16_t (*last_mv)[2],                             int ref_mv_scale, int size, int h);int ff_get_mb_score(MpegEncContext * s, int mx, int my, int src_index,                               int ref_index, int size, int h, int add_rate);/* mpeg12.c */extern const uint16_t ff_mpeg1_default_intra_matrix[64];extern const uint16_t ff_mpeg1_default_non_intra_matrix[64];extern const uint8_t ff_mpeg1_dc_scale_table[128];extern const AVRational ff_frame_rate_tab[];void mpeg1_encode_picture_header(MpegEncContext *s, int picture_number);void mpeg1_encode_mb(MpegEncContext *s,                     DCTELEM block[6][64],                     int motion_x, int motion_y);void ff_mpeg1_encode_init(MpegEncContext *s);void ff_mpeg1_encode_slice_header(MpegEncContext *s);void ff_mpeg1_clean_buffers(MpegEncContext *s);int ff_mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size);#include "rl.h"extern const uint8_t ff_mpeg4_y_dc_scale_table[32];extern const uint8_t ff_mpeg4_c_dc_scale_table[32];extern const uint8_t ff_aic_dc_scale_table[32];extern const int16_t ff_mpeg4_default_intra_matrix[64];extern const int16_t ff_mpeg4_default_non_intra_matrix[64];extern const uint8_t ff_h263_chroma_qscale_table[32];extern const uint8_t ff_h263_loop_filter_strength[32];/* h261.c */void ff_h261_loop_filter(MpegEncContext *s);void ff_h261_reorder_mb_index(MpegEncContext* s);void ff_h261_encode_mb(MpegEncContext *s,                    DCTELEM block[6][64],                    int motion_x, int motion_y);void ff_h261_encode_picture_header(MpegEncContext * s, int picture_number);void ff_h261_encode_init(MpegEncContext *s);int ff_h261_get_picture_format(int width, int height);/* h263.c, h263dec.c */int ff_h263_decode_init(AVCodecContext *avctx);int ff_h263_decode_frame(AVCodecContext *avctx,                             void *data, int *data_size,                             const uint8_t *buf, int buf_size);int ff_h263_decode_end(AVCodecContext *avctx);void h263_encode_mb(MpegEncContext *s,                    DCTELEM block[6][64],                    int motion_x, int motion_y);void mpeg4_encode_mb(MpegEncContext *s,                    DCTELEM block[6][64],                    int motion_x, int motion_y);void h263_encode_picture_header(MpegEncContext *s, int picture_number);void ff_flv_encode_picture_header(MpegEncContext *s, int picture_number);void h263_encode_gob_header(MpegEncContext * s, int mb_line);int16_t *h263_pred_motion(MpegEncContext * s, int block, int dir,                        int *px, int *py);void mpeg4_pred_ac(MpegEncContext * s, DCTELEM *block, int n,                   int dir);void ff_set_mpeg4_time(MpegEncContext * s);void mpeg4_encode_picture_header(MpegEncContext *s, int picture_number);void h263_encode_init(MpegEncContext *s);void h263_decode_init_vlc(MpegEncContext *s);int h263_decode_picture_header(MpegEncContext *s);int ff_h263_decode_gob_header(MpegEncContext *s);int ff_mpeg4_decode_picture_header(MpegEncContext * s, GetBitContext *gb);void ff_h263_update_motion_val(MpegEncContext * s);void ff_h263_loop_filter(MpegEncContext * s);void ff_set_qscale(MpegEncContext * s, int qscale);int ff_h263_decode_mba(MpegEncContext *s);void ff_h263_encode_mba(MpegEncContext *s);int intel_h263_decode_picture_header(MpegEncContext *s);int flv_h263_decode_picture_header(MpegEncContext *s);int ff_h263_decode_mb(MpegEncContext *s,                      DCTELEM block[6][64]);int ff_mpeg4_decode_mb(MpegEncContext *s,                      DCTELEM block[6][64]);int h263_get_picture_format(int width, int height);void ff_mpeg4_encode_video_packet_header(MpegEncContext *s);void ff_mpeg4_clean_buffers(MpegEncContext *s);void ff_mpeg4_stuffing(PutBitContext * pbc);void ff_mpeg4_init_partitions(MpegEncContext *s);void ff_mpeg4_merge_partitions(MpegEncContext *s);void ff_clean_mpeg4_qscales(MpegEncContext *s);void ff_clean_h263_qscales(MpegEncContext *s);int ff_mpeg4_decode_partitions(MpegEncContext *s);int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);int ff_h263_resync(MpegEncContext *s);int ff_h263_get_gob_height(MpegEncContext *s);void ff_mpeg4_init_direct_mv(MpegEncContext *s);int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code);/* rv10.c */void rv10_encode_picture_header(MpegEncContext *s, int picture_number);int rv_decode_dc(MpegEncContext *s, int n);void rv20_encode_picture_header(MpegEncContext *s, int picture_number);/* msmpeg4.c */void msmpeg4_encode_picture_header(MpegEncContext * s, int picture_number);void msmpeg4_encode_ext_header(MpegEncContext * s);void msmpeg4_encode_mb(MpegEncContext * s,                       DCTELEM block[6][64],                       int motion_x, int motion_y);int msmpeg4_decode_picture_header(MpegEncContext * s);int msmpeg4_decode_ext_header(MpegEncContext * s, int buf_size);int ff_msmpeg4_decode_init(MpegEncContext *s);void ff_msmpeg4_encode_init(MpegEncContext *s);int ff_wmv2_decode_picture_header(MpegEncContext * s);int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s);void ff_wmv2_add_mb(MpegEncContext *s, DCTELEM block[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr);void ff_mspel_motion(MpegEncContext *s,                               uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr,                               uint8_t **ref_picture, op_pixels_func (*pix_op)[4],                               int motion_x, int motion_y, int h);int ff_wmv2_encode_picture_header(MpegEncContext * s, int picture_number);void ff_wmv2_encode_mb(MpegEncContext * s,                       DCTELEM block[6][64],                       int motion_x, int motion_y);#endif /* FFMPEG_MPEGVIDEO_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -