21 #ifndef AVCODEC_MPEGUTILS_H 22 #define AVCODEC_MPEGUTILS_H 34 #define FRAME_SKIPPED 100 37 #define PICT_TOP_FIELD 1 38 #define PICT_BOTTOM_FIELD 2 45 #define DELAYED_PIC_REF 4 47 #define MAX_MB_BYTES (30 * 16 * 16 * 3 / 8 + 120) 51 #define MB_TYPE_INTRA4x4 (1 << 0) 52 #define MB_TYPE_INTRA16x16 (1 << 1) // FIXME H.264-specific 53 #define MB_TYPE_INTRA_PCM (1 << 2) // FIXME H.264-specific 54 #define MB_TYPE_16x16 (1 << 3) 55 #define MB_TYPE_16x8 (1 << 4) 56 #define MB_TYPE_8x16 (1 << 5) 57 #define MB_TYPE_8x8 (1 << 6) 58 #define MB_TYPE_INTERLACED (1 << 7) 59 #define MB_TYPE_DIRECT2 (1 << 8) // FIXME 60 #define MB_TYPE_ACPRED (1 << 9) 61 #define MB_TYPE_GMC (1 << 10) 62 #define MB_TYPE_SKIP (1 << 11) 63 #define MB_TYPE_P0L0 (1 << 12) 64 #define MB_TYPE_P1L0 (1 << 13) 65 #define MB_TYPE_P0L1 (1 << 14) 66 #define MB_TYPE_P1L1 (1 << 15) 67 #define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0) 68 #define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1) 69 #define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1) 70 #define MB_TYPE_QUANT (1 << 16) 71 #define MB_TYPE_CBP (1 << 17) 73 #define MB_TYPE_INTRA MB_TYPE_INTRA4x4 // default mb_type if there is just one type 75 #define IS_INTRA4x4(a) ((a) & MB_TYPE_INTRA4x4) 76 #define IS_INTRA16x16(a) ((a) & MB_TYPE_INTRA16x16) 77 #define IS_PCM(a) ((a) & MB_TYPE_INTRA_PCM) 78 #define IS_INTRA(a) ((a) & 7) 79 #define IS_INTER(a) ((a) & (MB_TYPE_16x16 | MB_TYPE_16x8 | \ 80 MB_TYPE_8x16 | MB_TYPE_8x8)) 81 #define IS_SKIP(a) ((a) & MB_TYPE_SKIP) 82 #define IS_INTRA_PCM(a) ((a) & MB_TYPE_INTRA_PCM) 83 #define IS_INTERLACED(a) ((a) & MB_TYPE_INTERLACED) 84 #define IS_DIRECT(a) ((a) & MB_TYPE_DIRECT2) 85 #define IS_GMC(a) ((a) & MB_TYPE_GMC) 86 #define IS_16X16(a) ((a) & MB_TYPE_16x16) 87 #define IS_16X8(a) ((a) & MB_TYPE_16x8) 88 #define IS_8X16(a) ((a) & MB_TYPE_8x16) 89 #define IS_8X8(a) ((a) & MB_TYPE_8x8) 90 #define IS_SUB_8X8(a) ((a) & MB_TYPE_16x16) // note reused 91 #define IS_SUB_8X4(a) ((a) & MB_TYPE_16x8) // note reused 92 #define IS_SUB_4X8(a) ((a) & MB_TYPE_8x16) // note reused 93 #define IS_SUB_4X4(a) ((a) & MB_TYPE_8x8) // note reused 94 #define IS_ACPRED(a) ((a) & MB_TYPE_ACPRED) 95 #define IS_QUANT(a) ((a) & MB_TYPE_QUANT) 96 #define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0 << ((part) + 2 * (list)))) 99 #define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0 | MB_TYPE_P1L0) << (2 * (list)))) 101 #define HAS_CBP(a) ((a) & MB_TYPE_CBP) 104 #define CANDIDATE_MB_TYPE_INTRA (1 << 0) 105 #define CANDIDATE_MB_TYPE_INTER (1 << 1) 106 #define CANDIDATE_MB_TYPE_INTER4V (1 << 2) 107 #define CANDIDATE_MB_TYPE_SKIPPED (1 << 3) 109 #define CANDIDATE_MB_TYPE_DIRECT (1 << 4) 110 #define CANDIDATE_MB_TYPE_FORWARD (1 << 5) 111 #define CANDIDATE_MB_TYPE_BACKWARD (1 << 6) 112 #define CANDIDATE_MB_TYPE_BIDIR (1 << 7) 114 #define CANDIDATE_MB_TYPE_INTER_I (1 << 8) 115 #define CANDIDATE_MB_TYPE_FORWARD_I (1 << 9) 116 #define CANDIDATE_MB_TYPE_BACKWARD_I (1 << 10) 117 #define CANDIDATE_MB_TYPE_BIDIR_I (1 << 11) 119 #define CANDIDATE_MB_TYPE_DIRECT0 (1 << 12) 121 #define INPLACE_OFFSET 16 144 uint32_t *mbtype_table, int8_t *
qscale_table, int16_t (*motion_val[2])[2],
146 int mb_width,
int mb_height,
int mb_stride,
int quarter_sample);
This structure describes decoded (raw) audio or video data.
attribute_deprecated int8_t * qscale_table
QP table.
static int first_field(const struct video_data *s)
Libavcodec version macros.
reference-counted frame API
Libavcodec external API header.
main external API structure.
void ff_draw_horiz_band(AVCodecContext *avctx, AVFrame *cur, AVFrame *last, int y, int h, int picture_structure, int first_field, int low_delay)
Draw a horizontal band if supported.
void ff_print_debug_info2(AVCodecContext *avctx, AVFrame *pict, uint8_t *mbskip_table, uint32_t *mbtype_table, int8_t *qscale_table, int16_t(*motion_val[2])[2], int *low_delay, int mb_width, int mb_height, int mb_stride, int quarter_sample)
Print debugging info for the given picture.