From: Michael Niedermayer Date: Wed, 16 Jul 2014 02:10:25 +0000 (+0200) Subject: avcodec/snowdec: remove mpegvideoencdsp dependency X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=8156e036e52777532b15d509c3962fb883dabbc9;p=ffmpeg avcodec/snowdec: remove mpegvideoencdsp dependency Signed-off-by: Michael Niedermayer --- diff --git a/configure b/configure index 4ed43a0fdde..0a6666cbfae 100755 --- a/configure +++ b/configure @@ -2157,7 +2157,7 @@ rv30_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_e rv40_decoder_select="error_resilience golomb h264chroma h264pred h264qpel mpeg_er mpegvideo videodsp" shorten_decoder_select="golomb" sipr_decoder_select="lsp" -snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder mpegvideoenc" +snow_decoder_select="dsputil dwt h264qpel hpeldsp rangecoder" snow_encoder_select="aandcttables dsputil dwt h264qpel hpeldsp mpegvideoenc rangecoder" sonic_decoder_select="golomb rangecoder" sonic_encoder_select="golomb rangecoder" diff --git a/libavcodec/snow.c b/libavcodec/snow.c index 711d1a4f080..e3518eb9eb5 100644 --- a/libavcodec/snow.c +++ b/libavcodec/snow.c @@ -433,7 +433,6 @@ av_cold int ff_snow_common_init(AVCodecContext *avctx){ ff_videodsp_init(&s->vdsp, 8); ff_dwt_init(&s->dwt); ff_h264qpel_init(&s->h264qpel, 8); - ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); #define mcf(dx,dy)\ s->qdsp.put_qpel_pixels_tab [0][dy+dx/4]=\ @@ -642,20 +641,6 @@ int ff_snow_frame_start(SnowContext *s){ int w= s->avctx->width; //FIXME round up to x16 ? int h= s->avctx->height; - if (s->current_picture->data[0] && !(s->avctx->flags&CODEC_FLAG_EMU_EDGE)) { - s->mpvencdsp.draw_edges(s->current_picture->data[0], - s->current_picture->linesize[0], w , h , - EDGE_WIDTH , EDGE_WIDTH , EDGE_TOP | EDGE_BOTTOM); - if (s->current_picture->data[2]) { - s->mpvencdsp.draw_edges(s->current_picture->data[1], - s->current_picture->linesize[1], w>>s->chroma_h_shift, h>>s->chroma_v_shift, - EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); - s->mpvencdsp.draw_edges(s->current_picture->data[2], - s->current_picture->linesize[2], w>>s->chroma_h_shift, h>>s->chroma_v_shift, - EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); - } - } - ff_snow_release_buffer(s->avctx); tmp= s->last_picture[s->max_ref_frames-1]; diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index cb8382154dd..09113927851 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -64,6 +64,8 @@ static av_cold int encode_init(AVCodecContext *avctx) ff_snow_common_end(avctx->priv_data); return ret; } + ff_mpegvideoencdsp_init(&s->mpvencdsp, avctx); + ff_snow_alloc_blocks(s); s->version=0; @@ -1602,6 +1604,23 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, s->lambda = 0; }//else keep previous frame's qlog until after motion estimation + if (s->current_picture->data[0] && !(s->avctx->flags&CODEC_FLAG_EMU_EDGE)) { + int w = s->avctx->width; + int h = s->avctx->height; + + s->mpvencdsp.draw_edges(s->current_picture->data[0], + s->current_picture->linesize[0], w , h , + EDGE_WIDTH , EDGE_WIDTH , EDGE_TOP | EDGE_BOTTOM); + if (s->current_picture->data[2]) { + s->mpvencdsp.draw_edges(s->current_picture->data[1], + s->current_picture->linesize[1], w>>s->chroma_h_shift, h>>s->chroma_v_shift, + EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); + s->mpvencdsp.draw_edges(s->current_picture->data[2], + s->current_picture->linesize[2], w>>s->chroma_h_shift, h>>s->chroma_v_shift, + EDGE_WIDTH>>s->chroma_h_shift, EDGE_WIDTH>>s->chroma_v_shift, EDGE_TOP | EDGE_BOTTOM); + } + } + ff_snow_frame_start(s); avctx->coded_frame= s->current_picture;