X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fsnowenc.c;h=e694d51a67c21ca0e6d575163d16e0f9a6b69963;hb=3b56fa85e8f50db83b54518ae31ebdb3f6b0cc39;hp=df1729a08338dc99a74ca0a744ea654fa9e13947;hpb=a2ae381b5a6f50669bcbd37001c110567a61f446;p=ffmpeg diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index df1729a0833..e694d51a67c 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -25,6 +25,7 @@ #include "libavutil/pixdesc.h" #include "avcodec.h" #include "internal.h" +#include "packet_internal.h" #include "snow_dwt.h" #include "snow.h" @@ -40,13 +41,6 @@ static av_cold int encode_init(AVCodecContext *avctx) int plane_index, ret; int i; -#if FF_API_PRIVATE_OPT -FF_DISABLE_DEPRECATION_WARNINGS - if (avctx->prediction_method) - s->pred = avctx->prediction_method; -FF_ENABLE_DEPRECATION_WARNINGS -#endif - if(s->pred == DWT_97 && (avctx->flags & AV_CODEC_FLAG_QSCALE) && avctx->global_quality == 0){ @@ -81,6 +75,7 @@ FF_ENABLE_DEPRECATION_WARNINGS s->m.bit_rate= avctx->bit_rate; s->m.lmin = avctx->mb_lmin; s->m.lmax = avctx->mb_lmax; + s->m.mb_num = (avctx->width * avctx->height + 255) / 256; // For ratecontrol s->m.me.temp = s->m.me.scratchpad= av_mallocz_array((avctx->width+64), 2*16*2*sizeof(uint8_t)); @@ -312,7 +307,7 @@ static int encode_q_branch(SnowContext *s, int level, int x, int y){ if(P_LEFT[1] > (c->ymax<ymax< (c->xmax<xmax< (c->ymax<ymax<xmin<xmin<xmin * (1<xmin * (1< (c->xmax<xmax< (c->ymax<ymax<coded_frame); - ret = av_frame_ref(avctx->coded_frame, s->current_picture); -FF_ENABLE_DEPRECATION_WARNINGS -#endif - if (ret < 0) - return ret; s->m.current_picture_ptr= &s->m.current_picture; s->m.current_picture.f = s->current_picture; @@ -1746,13 +1733,6 @@ redo_frame: } predict_plane(s, s->spatial_idwt_buffer, plane_index, 0); -#if FF_API_PRIVATE_OPT -FF_DISABLE_DEPRECATION_WARNINGS - if(s->avctx->scenechange_threshold) - s->scenechange_threshold = s->avctx->scenechange_threshold; -FF_ENABLE_DEPRECATION_WARNINGS -#endif - if( plane_index==0 && pic->pict_type == AV_PICTURE_TYPE_P && !(avctx->flags&AV_CODEC_FLAG_PASS2) @@ -1774,7 +1754,7 @@ FF_ENABLE_DEPRECATION_WARNINGS }else{ for(y=0; yspatial_dwt_buffer[y*w + x]=s->spatial_idwt_buffer[y*w + x]<spatial_dwt_buffer[y*w + x]= s->spatial_idwt_buffer[y*w + x] * (1 << ENCODER_EXTRA_BITS); } } } @@ -1877,14 +1857,6 @@ FF_ENABLE_DEPRECATION_WARNINGS if(avctx->flags&AV_CODEC_FLAG_PASS1) ff_write_pass1_stats(&s->m); s->m.last_pict_type = s->m.pict_type; -#if FF_API_STAT_BITS -FF_DISABLE_DEPRECATION_WARNINGS - avctx->frame_bits = s->m.frame_bits; - avctx->mv_bits = s->m.mv_bits; - avctx->misc_bits = s->m.misc_bits; - avctx->p_tex_bits = s->m.p_tex_bits; -FF_ENABLE_DEPRECATION_WARNINGS -#endif emms_c(); @@ -1893,12 +1865,6 @@ FF_ENABLE_DEPRECATION_WARNINGS (s->avctx->flags&AV_CODEC_FLAG_PSNR) ? 4 : 0, s->current_picture->pict_type); -#if FF_API_ERROR_FRAME -FF_DISABLE_DEPRECATION_WARNINGS - memcpy(s->current_picture->error, s->encoding_error, sizeof(s->encoding_error)); -FF_ENABLE_DEPRECATION_WARNINGS -#endif - pkt->size = ff_rac_terminate(c, 0); if (s->current_picture->key_frame) pkt->flags |= AV_PKT_FLAG_KEY; @@ -1935,6 +1901,11 @@ static const AVOption options[] = { { "pred", "Spatial decomposition type", OFFSET(pred), AV_OPT_TYPE_INT, { .i64 = 0 }, DWT_97, DWT_53, VE, "pred" }, { "dwt97", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "pred" }, { "dwt53", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "pred" }, + { "rc_eq", "Set rate control equation. When computing the expression, besides the standard functions " + "defined in the section 'Expression Evaluation', the following functions are available: " + "bits2qp(bits), qp2bits(qp). Also the following constants are available: iTex pTex tex mv " + "fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex.", + OFFSET(m.rc_eq), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, VE }, { NULL }, };