X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fsnowenc.c;h=7b1046c88c15898541c8b6c4bbdc0280b8734c89;hb=5889bc16a4f62cd1d548acafbd446e87401cd5f8;hp=90b64394e20e054cbbcaedf94d6ef5f3c13252b9;hpb=577e0132a2b5ca9fc4c286fee4e7908a4fc9cd4a;p=ffmpeg diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index 90b64394e20..7b1046c88c1 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -19,6 +19,7 @@ */ #include "libavutil/intmath.h" +#include "libavutil/libm.h" #include "libavutil/log.h" #include "libavutil/opt.h" #include "avcodec.h" @@ -291,7 +292,7 @@ static int encode_q_branch(SnowContext *s, int level, int x, int y){ c->penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_cmp); c->sub_penalty_factor= get_penalty_factor(s->lambda, s->lambda2, c->avctx->me_sub_cmp); c->mb_penalty_factor = get_penalty_factor(s->lambda, s->lambda2, c->avctx->mb_cmp); - c->current_mv_penalty= c->mv_penalty[s->m.f_code=1] + MAX_MV; + c->current_mv_penalty= c->mv_penalty[s->m.f_code=1] + MAX_DMV; c->xmin = - x*block_w - 16+3; c->ymin = - y*block_w - 16+3; @@ -1470,7 +1471,7 @@ static void update_last_header_values(SnowContext *s){ } static int qscale2qlog(int qscale){ - return rint(QROOT*log2(qscale / (float)FF_QP2LAMBDA)) + return lrint(QROOT*log2(qscale / (float)FF_QP2LAMBDA)) + 61*QROOT/8; ///< 64 > 60 } @@ -1573,12 +1574,12 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, for(i=0; i < s->nb_planes; i++){ int hshift= i ? s->chroma_h_shift : 0; int vshift= i ? s->chroma_v_shift : 0; - for(y=0; yinput_picture->data[i][y * s->input_picture->linesize[i]], &pict->data[i][y * pict->linesize[i]], - FF_CEIL_RSHIFT(width, hshift)); + AV_CEIL_RSHIFT(width, hshift)); s->mpvencdsp.draw_edges(s->input_picture->data[i], s->input_picture->linesize[i], - FF_CEIL_RSHIFT(width, hshift), FF_CEIL_RSHIFT(height, vshift), + AV_CEIL_RSHIFT(width, hshift), AV_CEIL_RSHIFT(height, vshift), EDGE_WIDTH >> hshift, EDGE_WIDTH >> vshift, EDGE_TOP | EDGE_BOTTOM);