27 { 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4 },
28 { 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4 },
32 int row = s->
row, col = s->
col;
50 row << 3, col << 3, &b->
mv[0][0], 8, 4, w1, h1, 0);
52 s->
dst[0] + 4 * ls_y, ls_y,
54 (row << 3) + 4, col << 3, &b->
mv[2][0], 8, 4, w1, h1, 0);
58 ref2->data[0], ref2->linesize[0], tref2,
59 row << 3, col << 3, &b->
mv[0][1], 8, 4, w2, h2, 1);
61 s->
dst[0] + 4 * ls_y, ls_y,
62 ref2->data[0], ref2->linesize[0], tref2,
63 (row << 3) + 4, col << 3, &b->
mv[2][1], 8, 4, w2, h2, 1);
68 row << 3, col << 3, &b->
mv[0][0], 4, 8, w1, h1, 0);
71 row << 3, (col << 3) + 4, &b->
mv[1][0], 4, 8, w1, h1, 0);
75 ref2->data[0], ref2->linesize[0], tref2,
76 row << 3, col << 3, &b->
mv[0][1], 4, 8, w2, h2, 1);
78 ref2->data[0], ref2->linesize[0], tref2,
79 row << 3, (col << 3) + 4, &b->
mv[1][1], 4, 8, w2, h2, 1);
88 row << 3, col << 3, &b->
mv[0][0], 4, 4, w1, h1, 0);
91 row << 3, (col << 3) + 4, &b->
mv[1][0], 4, 4, w1, h1, 0);
93 s->
dst[0] + 4 * ls_y, ls_y,
95 (row << 3) + 4, col << 3, &b->
mv[2][0], 4, 4, w1, h1, 0);
97 s->
dst[0] + 4 * ls_y + 4, ls_y,
99 (row << 3) + 4, (col << 3) + 4, &b->
mv[3][0], 4, 4, w1, h1, 0);
103 ref2->data[0], ref2->linesize[0], tref2,
104 row << 3, col << 3, &b->
mv[0][1], 4, 4, w2, h2, 1);
106 ref2->data[0], ref2->linesize[0], tref2,
107 row << 3, (col << 3) + 4, &b->
mv[1][1], 4, 4, w2, h2, 1);
109 s->
dst[0] + 4 * ls_y, ls_y,
110 ref2->data[0], ref2->linesize[0], tref2,
111 (row << 3) + 4, col << 3, &b->
mv[2][1], 4, 4, w2, h2, 1);
113 s->
dst[0] + 4 * ls_y + 4, ls_y,
114 ref2->data[0], ref2->linesize[0], tref2,
115 (row << 3) + 4, (col << 3) + 4, &b->
mv[3][1], 4, 4, w2, h2, 1);
119 int bwl = bwlog_tab[0][b->
bs];
124 row << 3, col << 3, &b->
mv[0][0],bw, bh, w1, h1, 0);
128 ref2->data[0], ref2->linesize[0], tref2,
129 row << 3, col << 3, &b->
mv[0][1], bw, bh, w2, h2, 1);
134 int bwl = bwlog_tab[1][b->
bs];
152 s->
dst[1], s->
dst[2], ls_uv,
155 row << 2, col << 2, &mvuv, bw, bh, w1, h1, 0);
165 s->
dst[1], s->
dst[2], ls_uv,
166 ref2->data[1], ref2->linesize[1],
167 ref2->data[2], ref2->linesize[2], tref2,
168 row << 2, col << 2, &mvuv, bw, bh, w2, h2, 1);
This structure describes decoded (raw) audio or video data.
static void FN() inter_pred(AVCodecContext *ctx)
#define mc_chroma_dir(s, mc, dstu, dstv, dst_ls, srcu, srcu_ls, srcv, srcv_ls, tref, row, col, mv, bw, bh, w, h, i)
#define av_assert2(cond)
assert() equivalent, that does lie in speed critical code.
#define ROUNDED_DIV(a, b)
int width
width and height of the video frame
#define mc_luma_dir(s, mc, dst, dst_ls, src, src_ls, tref, row, col, mv, bw, bh, w, h, i)
static const uint8_t bwh_tab[2][N_BS_SIZES][2]
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.