ff_MPV_common_init_x86(s);
#elif ARCH_ALPHA
ff_MPV_common_init_axp(s);
-#elif HAVE_MMI
- ff_MPV_common_init_mmi(s);
#elif ARCH_ARM
ff_MPV_common_init_arm(s);
#elif HAVE_ALTIVEC
const AVCodecContext *src)
{
int i;
+ int err;
MpegEncContext *s = dst->priv_data, *s1 = src->priv_data;
if (dst == src)
if (s1->context_initialized){
s->picture_range_start += MAX_PICTURE_COUNT;
s->picture_range_end += MAX_PICTURE_COUNT;
- ff_MPV_common_init(s);
+ if((err = ff_MPV_common_init(s)) < 0)
+ return err;
}
}
if (s->height != s1->height || s->width != s1->width || s->context_reinit) {
- int err;
s->context_reinit = 0;
s->height = s1->height;
s->width = s1->width;
*/
av_cold int ff_MPV_common_init(MpegEncContext *s)
{
- int i, err;
+ int i;
int nb_slices = (HAVE_THREADS &&
s->avctx->active_thread_type & FF_THREAD_SLICE) ?
s->avctx->thread_count : 1;
avcodec_get_frame_defaults(&s->picture[i].f);
}
- if ((err = init_context_frame(s)))
+ if (init_context_frame(s))
goto fail;
s->parse_context.state = -1;
int mb_x;
for (mb_x = 0; mb_x < s->mb_width; mb_x++) {
const int mb_index = mb_x + mb_y * s->mb_stride;
- if ((s->avctx->debug_mv) && pict->motion_val) {
+ if ((s->avctx->debug_mv) && pict->motion_val[0]) {
int type;
for (type = 0; type < 3; type++) {
int direction = 0;
}
}
}
- if ((s->avctx->debug & FF_DEBUG_VIS_QP) && pict->motion_val) {
+ if ((s->avctx->debug & FF_DEBUG_VIS_QP)) {
uint64_t c = (pict->qscale_table[mb_index] * 128 / 31) *
0x0101010101010101ULL;
int y;
}
}
if ((s->avctx->debug & FF_DEBUG_VIS_MB_TYPE) &&
- pict->motion_val) {
+ pict->motion_val[0]) {
int mb_type = pict->mb_type[mb_index];
uint64_t u,v;
int y;
if ((unsigned) src_x > FFMAX( h_edge_pos - (!!sx) - 2 * block_s, 0) ||
(unsigned) src_y > FFMAX((v_edge_pos >> field_based) - (!!sy) - h, 0)) {
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr_y,
- s->linesize, 17, 17 + field_based,
+ linesize >> field_based, 17, 17 + field_based,
src_x, src_y << field_based, h_edge_pos,
v_edge_pos);
ptr_y = s->edge_emu_buffer;
if (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY)) {
uint8_t *uvbuf = s->edge_emu_buffer + 18 * s->linesize;
- s->dsp.emulated_edge_mc(uvbuf , ptr_cb, s->uvlinesize, 9,
+ s->dsp.emulated_edge_mc(uvbuf , ptr_cb, uvlinesize >> field_based, 9,
9 + field_based,
uvsrc_x, uvsrc_y << field_based,
h_edge_pos >> 1, v_edge_pos >> 1);
- s->dsp.emulated_edge_mc(uvbuf + 16, ptr_cr, s->uvlinesize, 9,
+ s->dsp.emulated_edge_mc(uvbuf + 16, ptr_cr, uvlinesize >> field_based, 9,
9 + field_based,
uvsrc_x, uvsrc_y << field_based,
h_edge_pos >> 1, v_edge_pos >> 1);
int my_max = INT_MIN, my_min = INT_MAX, qpel_shift = !s->quarter_sample;
int my, off, i, mvs;
- if (s->picture_structure != PICT_FRAME || s->mcsel) goto unhandled;
+ if (s->picture_structure != PICT_FRAME || s->mcsel)
+ goto unhandled;
switch (s->mv_type) {
case MV_TYPE_16X16: