diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-02-23 22:05:55 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-02-23 22:05:55 +0000 |
commit | 41b847f6a8af2013338a63c1b7311f804b2bf5b7 (patch) | |
tree | d4dfb5b969edcaf963f4ca68030a3e16650b2589 /libmpcodecs | |
parent | 4bd87c35eb568740b2ae8e6c636d4e63622aa067 (diff) | |
download | mpv-41b847f6a8af2013338a63c1b7311f804b2bf5b7.tar.bz2 mpv-41b847f6a8af2013338a63c1b7311f804b2bf5b7.tar.xz |
sws_ prefix, more seperation between internal & external swscaler API
sws_scale() returns the number of outputed lines
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9495 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r-- | libmpcodecs/vf_sab.c | 21 | ||||
-rw-r--r-- | libmpcodecs/vf_scale.c | 12 | ||||
-rw-r--r-- | libmpcodecs/vf_smartblur.c | 14 |
3 files changed, 24 insertions, 23 deletions
diff --git a/libmpcodecs/vf_sab.c b/libmpcodecs/vf_sab.c index 8ae1751a57..d4b6d5b419 100644 --- a/libmpcodecs/vf_sab.c +++ b/libmpcodecs/vf_sab.c @@ -43,7 +43,7 @@ typedef struct FilterParam{ float preFilterRadius; float strength; float quality; - SwsContext *preFilterContext; + struct SwsContext *preFilterContext; uint8_t *preFilterBuf; int preFilterStride; int distWidth; @@ -95,14 +95,14 @@ static int allocStuff(FilterParam *f, int width, int height){ f->preFilterBuf= (uint8_t*)memalign(8, stride*height); f->preFilterStride= stride; - vec = getGaussianVec(f->preFilterRadius, f->quality); + vec = sws_getGaussianVec(f->preFilterRadius, f->quality); swsF.lumH= swsF.lumV= vec; swsF.chrH= swsF.chrV= NULL; - f->preFilterContext= getSwsContext( + f->preFilterContext= sws_getContext( width, height, IMGFMT_Y8, width, height, IMGFMT_Y8, 0, &swsF, NULL); - freeVec(vec); - vec = getGaussianVec(f->strength, 5.0); + sws_freeVec(vec); + vec = sws_getGaussianVec(f->strength, 5.0); for(i=0; i<512; i++){ double d; int index= i-256 + vec->length/2; @@ -112,8 +112,8 @@ static int allocStuff(FilterParam *f, int width, int height){ f->colorDiffCoeff[i]= (int)(d/vec->coeff[vec->length/2]*(1<<12) + 0.5); } - freeVec(vec); - vec = getGaussianVec(f->radius, f->quality); + sws_freeVec(vec); + vec = sws_getGaussianVec(f->radius, f->quality); f->distWidth= vec->length; f->distStride= (vec->length+7)&~7; f->distCoeff= (int32_t*)memalign(8, f->distWidth*f->distStride*sizeof(int32_t)); @@ -127,7 +127,7 @@ static int allocStuff(FilterParam *f, int width, int height){ // printf("%6d ", f->distCoeff[x + y*f->distStride]); } } - freeVec(vec); + sws_freeVec(vec); return 0; } @@ -147,7 +147,7 @@ static int config(struct vf_instance_s* vf, } static void freeBuffers(FilterParam *f){ - if(f->preFilterContext) freeSwsContext(f->preFilterContext); + if(f->preFilterContext) sws_freeContext(f->preFilterContext); f->preFilterContext=NULL; if(f->preFilterBuf) free(f->preFilterBuf); @@ -176,7 +176,8 @@ static inline void blur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStrideArray[3]= {srcStride, 0, 0}; int dstStrideArray[3]= {f.preFilterStride, 0, 0}; - f.preFilterContext->swScale(f.preFilterContext, srcArray, srcStrideArray, 0, h, dstArray, dstStrideArray); +// f.preFilterContext->swScale(f.preFilterContext, srcArray, srcStrideArray, 0, h, dstArray, dstStrideArray); + sws_scale(f.preFilterContext, srcArray, srcStrideArray, 0, h, dstArray, dstStrideArray); for(y=0; y<h; y++){ for(x=0; x<w; x++){ diff --git a/libmpcodecs/vf_scale.c b/libmpcodecs/vf_scale.c index 2435121619..fd8a1f061b 100644 --- a/libmpcodecs/vf_scale.c +++ b/libmpcodecs/vf_scale.c @@ -18,7 +18,7 @@ struct vf_priv_s { int v_chr_drop; int param; unsigned int fmt; - SwsContext *ctx; + struct SwsContext *ctx; unsigned char* palette; mp_image_t *dmpi; }; @@ -148,13 +148,13 @@ static int config(struct vf_instance_s* vf, vf->priv->w,vf->priv->h,vo_format_name(best)); // free old ctx: - if(vf->priv->ctx) freeSwsContext(vf->priv->ctx); + if(vf->priv->ctx) sws_freeContext(vf->priv->ctx); // new swscaler: - swsGetFlagsAndFilterFromCmdLine(&int_sws_flags, &srcFilter, &dstFilter); + sws_getFlagsAndFilterFromCmdLine(&int_sws_flags, &srcFilter, &dstFilter); int_sws_flags|= vf->priv->v_chr_drop << SWS_SRC_V_CHR_DROP_SHIFT; int_sws_flags|= vf->priv->param << SWS_PARAM_SHIFT; - vf->priv->ctx=getSwsContext(width,height, + vf->priv->ctx=sws_getContext(width,height, (outfmt==IMGFMT_I420 || outfmt==IMGFMT_IYUV)?IMGFMT_YV12:outfmt, vf->priv->w,vf->priv->h, (best==IMGFMT_I420 || best==IMGFMT_IYUV)?IMGFMT_YV12:best, @@ -218,7 +218,7 @@ static void draw_slice(struct vf_instance_s* vf, return; } // printf("vf_scale::draw_slice() y=%d h=%d\n",y,h); - vf->priv->ctx->swScale(vf->priv->ctx,src,stride,y,h,dmpi->planes,dmpi->stride); + sws_scale(vf->priv->ctx,src,stride,y,h,dmpi->planes,dmpi->stride); } static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ @@ -233,7 +233,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ dmpi=vf_get_image(vf->next,vf->priv->fmt, MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_PREFER_ALIGNED_STRIDE, vf->priv->w, vf->priv->h); - vf->priv->ctx->swScale(vf->priv->ctx,mpi->planes,mpi->stride,0,mpi->h,dmpi->planes,dmpi->stride); + sws_scale(vf->priv->ctx,mpi->planes,mpi->stride,0,mpi->h,dmpi->planes,dmpi->stride); } diff --git a/libmpcodecs/vf_smartblur.c b/libmpcodecs/vf_smartblur.c index 01c7886a99..006a3f3471 100644 --- a/libmpcodecs/vf_smartblur.c +++ b/libmpcodecs/vf_smartblur.c @@ -46,7 +46,7 @@ typedef struct FilterParam{ float strength; int threshold; float quality; - SwsContext *filterContext; + struct SwsContext *filterContext; }FilterParam; struct vf_priv_s { @@ -88,15 +88,15 @@ static int allocStuff(FilterParam *f, int width, int height){ SwsVector *vec; SwsFilter swsF; - vec = getGaussianVec(f->radius, f->quality); - scaleVec(vec, f->strength); + vec = sws_getGaussianVec(f->radius, f->quality); + sws_scaleVec(vec, f->strength); vec->coeff[vec->length/2]+= 1.0 - f->strength; swsF.lumH= swsF.lumV= vec; swsF.chrH= swsF.chrV= NULL; - f->filterContext= getSwsContext( + f->filterContext= sws_getContext( width, height, IMGFMT_Y8, width, height, IMGFMT_Y8, 0, &swsF, NULL); - freeVec(vec); + sws_freeVec(vec); return 0; } @@ -116,7 +116,7 @@ static int config(struct vf_instance_s* vf, } static void freeBuffers(FilterParam *f){ - if(f->filterContext) freeSwsContext(f->filterContext); + if(f->filterContext) sws_freeContext(f->filterContext); f->filterContext=NULL; } @@ -138,7 +138,7 @@ static inline void blur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStrideArray[3]= {srcStride, 0, 0}; int dstStrideArray[3]= {dstStride, 0, 0}; - f.filterContext->swScale(f.filterContext, srcArray, srcStrideArray, 0, h, dstArray, dstStrideArray); + sws_scale(f.filterContext, srcArray, srcStrideArray, 0, h, dstArray, dstStrideArray); if(f.threshold > 0){ for(y=0; y<h; y++){ |