* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "svq3.h"
+
#undef FUNC
#undef PIXEL_SHIFT
const int is_h264 = !CONFIG_SVQ3_DECODER || SIMPLE || h->avctx->codec_id == AV_CODEC_ID_H264;
void (*idct_add)(uint8_t *dst, int16_t *block, int stride);
const int block_h = 16 >> h->chroma_y_shift;
- const int chroma422 = CHROMA422;
+ const int chroma422 = CHROMA422(h);
dest_y = h->cur_pic.f.data[0] + ((mb_x << PIXEL_SHIFT) + mb_y * h->linesize) * 16;
dest_cb = h->cur_pic.f.data[1] + (mb_x << PIXEL_SHIFT) * 8 + mb_y * h->uvlinesize * block_h;
h->list_counts[mb_xy] = h->list_count;
- if (!SIMPLE && MB_FIELD) {
+ if (!SIMPLE && MB_FIELD(h)) {
linesize = h->mb_linesize = h->linesize * 2;
uvlinesize = h->mb_uvlinesize = h->uvlinesize * 2;
block_offset = &h->block_offset[48];
dest_cb -= h->uvlinesize * (block_h - 1);
dest_cr -= h->uvlinesize * (block_h - 1);
}
- if (FRAME_MBAFF) {
+ if (FRAME_MBAFF(h)) {
int list;
for (list = 0; list < h->list_count; list++) {
if (!USES_LIST(mb_type, list))
} else if (is_h264) {
if (chroma422) {
FUNC(hl_motion_422)(h, dest_y, dest_cb, dest_cr,
- h->me.qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
- h->me.qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
+ h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
+ h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264dsp.weight_h264_pixels_tab,
h->h264dsp.biweight_h264_pixels_tab);
} else {
FUNC(hl_motion_420)(h, dest_y, dest_cb, dest_cr,
- h->me.qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
- h->me.qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
+ h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
+ h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264dsp.weight_h264_pixels_tab,
h->h264dsp.biweight_h264_pixels_tab);
}
h->mb + (16 * 16 * 2 << PIXEL_SHIFT),
uvlinesize);
} else {
- idct_add = h->h264dsp.h264_add_pixels4;
+ idct_add = h->h264dsp.h264_add_pixels4_clear;
for (j = 1; j < 3; j++) {
for (i = j * 16; i < j * 16 + 4; i++)
if (h->non_zero_count_cache[scan8[i]] ||
}
}
}
- if (h->cbp || IS_INTRA(mb_type)) {
- h->dsp.clear_blocks(h->mb);
- h->dsp.clear_blocks(h->mb + (24 * 16 << PIXEL_SHIFT));
- }
}
}
h->list_counts[mb_xy] = h->list_count;
- if (!SIMPLE && MB_FIELD) {
+ if (!SIMPLE && MB_FIELD(h)) {
linesize = h->mb_linesize = h->mb_uvlinesize = h->linesize * 2;
block_offset = &h->block_offset[48];
if (mb_y & 1) // FIXME move out of this function?
for (p = 0; p < 3; p++)
dest[p] -= h->linesize * 15;
- if (FRAME_MBAFF) {
+ if (FRAME_MBAFF(h)) {
int list;
for (list = 0; list < h->list_count; list++) {
if (!USES_LIST(mb_type, list))
linesize, 0, 1, SIMPLE, PIXEL_SHIFT);
} else {
FUNC(hl_motion_444)(h, dest[0], dest[1], dest[2],
- h->me.qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
- h->me.qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
+ h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
+ h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264dsp.weight_h264_pixels_tab,
h->h264dsp.biweight_h264_pixels_tab);
}
hl_decode_mb_idct_luma(h, mb_type, 1, SIMPLE, transform_bypass,
PIXEL_SHIFT, block_offset, linesize,
dest[p], p);
-
- if (h->cbp || IS_INTRA(mb_type)) {
- h->dsp.clear_blocks(h->mb);
- h->dsp.clear_blocks(h->mb + (24 * 16 << PIXEL_SHIFT));
- }
}
}