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

📄 mpegvideo.h

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 H
📖 第 1 页 / 共 3 页
字号:
    int mjpeg_data_only_frames; ///< frames only with SOI, SOS and EOI markers     /* MSMPEG4 specific */    int mv_table_index;    int rl_table_index;    int rl_chroma_table_index;    int dc_table_index;    int use_skip_mb_code;    int slice_height;      ///< in macroblocks     int first_slice_line;  ///< used in mpeg4 too to handle resync markers     int flipflop_rounding;    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 fake_picture_number; ///< picture number at the bitstream frame rate     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        /* 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 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 */    /* These are explained on avcodec.h */    int rtp_mode;    int rtp_payload_size;    void (*rtp_callback)(void *data, int size, int packet_number);    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)[6][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)(struct MpegEncContext *s,                            DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_mpeg2)(struct MpegEncContext *s,                            DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize_h263)(struct MpegEncContext *s,                            DCTELEM *block/*align 16*/, int n, int qscale);    void (*dct_unquantize)(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);} MpegEncContext;int DCT_common_init(MpegEncContext *s);int MPV_common_init(MpegEncContext *s);void MPV_common_end(MpegEncContext *s);void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][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);#ifdef HAVE_MMXvoid MPV_common_init_mmx(MpegEncContext *s);#endif#ifdef ARCH_ALPHAvoid MPV_common_init_axp(MpegEncContext *s);#endif#ifdef HAVE_MLIBvoid MPV_common_init_mlib(MpegEncContext *s);#endif#ifdef HAVE_MMIvoid MPV_common_init_mmi(MpegEncContext *s);#endif#ifdef ARCH_ARMV4Lvoid MPV_common_init_armv4l(MpegEncContext *s);#endif#ifdef ARCH_POWERPCvoid MPV_common_init_ppc(MpegEncContext *s);#endifextern void (*draw_edges)(uint8_t *buf, int wrap, int width, int height, int w);void ff_copy_bits(PutBitContext *pb, uint8_t *src, int length);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);#define END_NOT_FOUND -100int ff_combine_frame( MpegEncContext *s, int next, uint8_t **buf, int *buf_size);void ff_mpeg_flush(AVCodecContext *avctx);void ff_print_debug_info(MpegEncContext *s, Picture *pict);void ff_write_quant_matrix(PutBitContext *pb, int16_t *matrix);int ff_find_unused_picture(MpegEncContext *s, int shared);void ff_denoise_dct(MpegEncContext *s, DCTELEM *block);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);extern enum PixelFormat ff_yuv420p_list[2];void ff_init_block_index(MpegEncContext *s);static inline void ff_update_block_index(MpegEncContext *s){    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]+= 16;    s->dest[1]+= 8;    s->dest[2]+= 8;}static inline int get_bits_diff(MpegEncContext *s){    const int bits= get_bit_count(&s->pb);    const int last= s->last_bits;    s->last_bits = bits;    return bits - last;}/* 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_b_mvs(MpegEncContext * s, int16_t (*mv_table)[2], int f_code, int type);void ff_init_me(MpegEncContext *s);int ff_pre_estimate_p_frame_motion(MpegEncContext * s, int mb_x, int mb_y);/* mpeg12.c */extern const int16_t ff_mpeg1_default_intra_matrix[64];extern const int16_t ff_mpeg1_default_non_intra_matrix[64];extern uint8_t ff_mpeg1_dc_scale_table[128];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);/** RLTable. */typedef struct RLTable {    int n;                         ///< number of entries of table_vlc minus 1     int last;                      ///< number of values for last = 0     const uint16_t (*table_vlc)[2];    const int8_t *table_run;    const int8_t *table_level;    uint8_t *index_run[2];         ///< encoding only     int8_t *max_level[2];          ///< encoding & decoding     int8_t *max_run[2];            ///< encoding & decoding     VLC vlc;                       ///< decoding only deprected FIXME remove    RL_VLC_ELEM *rl_vlc[32];       ///< decoding only } RLTable;void init_rl(RLTable *rl);void init_vlc_rl(RLTable *rl);static inline int get_rl_index(const RLTable *rl, int last, int run, int level){    int index;    index = rl->index_run[last][run];    if (index >= rl->n)        return rl->n;    if (level > rl->max_level[last][run])        return rl->n;    return index + level - 1;}extern uint8_t ff_mpeg4_y_dc_scale_table[32];extern uint8_t ff_mpeg4_c_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];int ff_h263_decode_init(AVCodecContext *avctx);int ff_h263_decode_frame(AVCodecContext *avctx,                              void *data, int *data_size,                             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);int h263_encode_gob_header(MpegEncContext * s, int mb_line);int16_t *h263_pred_motion(MpegEncContext * s, int block,                         int *px, int *py);void mpeg4_pred_ac(MpegEncContext * s, DCTELEM *block, int n,                    int dir);void ff_set_mpeg4_time(MpegEncContext * s, int picture_number);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);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 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);int ff_mpeg4_set_direct_mv(MpegEncContext *s, int mx, int my);inline int ff_h263_round_chroma(int x);/* rv10.c */void rv10_encode_picture_header(MpegEncContext *s, int picture_number);int rv_decode_dc(MpegEncContext *s, int n);/* 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);/* mjpeg.c */int mjpeg_init(MpegEncContext *s);void mjpeg_close(MpegEncContext *s);void mjpeg_encode_mb(MpegEncContext *s,                      DCTELEM block[6][64]);void mjpeg_picture_header(MpegEncContext *s);void mjpeg_picture_trailer(MpegEncContext *s);/* rate control */int ff_rate_control_init(MpegEncContext *s);float ff_rate_estimate_qscale(MpegEncContext *s);void ff_write_pass1_stats(MpegEncContext *s);void ff_rate_control_uninit(MpegEncContext *s);double ff_eval(char *s, double *const_value, const char **const_name,               double (**func1)(void *, double), const char **func1_name,               double (**func2)(void *, double, double), char **func2_name,               void *opaque);#endif /* AVCODEC_MPEGVIDEO_H */

⌨️ 快捷键说明

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