1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-08 07:08:12 +00:00

Use PIX_FMT_* instead of IMGFMT_* when calling sws_getContext()

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19876 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
lucabe 2006-09-17 15:02:13 +00:00
parent a9aca9d644
commit 1f88518638
4 changed files with 19 additions and 8 deletions

View File

@ -29,6 +29,7 @@
#include <malloc.h> #include <malloc.h>
#endif #endif
#include "avutil.h"
#include "img_format.h" #include "img_format.h"
#include "mp_image.h" #include "mp_image.h"
#include "vf.h" #include "vf.h"
@ -100,7 +101,7 @@ static int allocStuff(FilterParam *f, int width, int height){
swsF.lumH= swsF.lumV= vec; swsF.lumH= swsF.lumV= vec;
swsF.chrH= swsF.chrV= NULL; swsF.chrH= swsF.chrV= NULL;
f->preFilterContext= sws_getContext( f->preFilterContext= sws_getContext(
width, height, IMGFMT_Y8, width, height, IMGFMT_Y8, get_sws_cpuflags(), &swsF, NULL, NULL); width, height, PIX_FMT_GRAY8, width, height, PIX_FMT_GRAY8, get_sws_cpuflags(), &swsF, NULL, NULL);
sws_freeVec(vec); sws_freeVec(vec);
vec = sws_getGaussianVec(f->strength, 5.0); vec = sws_getGaussianVec(f->strength, 5.0);

View File

@ -10,6 +10,7 @@
#include "img_format.h" #include "img_format.h"
#include "mp_image.h" #include "mp_image.h"
#include "vf.h" #include "vf.h"
#include "fmt-conversion.h"
#include "libvo/fastmemcpy.h" #include "libvo/fastmemcpy.h"
#include "libswscale/swscale.h" #include "libswscale/swscale.h"
@ -116,11 +117,14 @@ static int config(struct vf_instance_s* vf,
int int_sws_flags=0; int int_sws_flags=0;
int round_w=0, round_h=0; int round_w=0, round_h=0;
SwsFilter *srcFilter, *dstFilter; SwsFilter *srcFilter, *dstFilter;
enum PixelFormat dfmt, sfmt;
if(!best){ if(!best){
mp_msg(MSGT_VFILTER,MSGL_WARN,"SwScale: no supported outfmt found :(\n"); mp_msg(MSGT_VFILTER,MSGL_WARN,"SwScale: no supported outfmt found :(\n");
return 0; return 0;
} }
sfmt = imgfmt2pixfmt(outfmt);
dfmt = imgfmt2pixfmt(best);
vo_flags=vf->next->query_format(vf->next,best); vo_flags=vf->next->query_format(vf->next,best);
@ -222,15 +226,15 @@ static int config(struct vf_instance_s* vf,
int_sws_flags|= vf->priv->v_chr_drop << SWS_SRC_V_CHR_DROP_SHIFT; int_sws_flags|= vf->priv->v_chr_drop << SWS_SRC_V_CHR_DROP_SHIFT;
int_sws_flags|= vf->priv->accurate_rnd * SWS_ACCURATE_RND; int_sws_flags|= vf->priv->accurate_rnd * SWS_ACCURATE_RND;
vf->priv->ctx=sws_getContext(width, height >> vf->priv->interlaced, vf->priv->ctx=sws_getContext(width, height >> vf->priv->interlaced,
outfmt, sfmt,
vf->priv->w, vf->priv->h >> vf->priv->interlaced, vf->priv->w, vf->priv->h >> vf->priv->interlaced,
best, dfmt,
int_sws_flags | get_sws_cpuflags(), srcFilter, dstFilter, vf->priv->param); int_sws_flags | get_sws_cpuflags(), srcFilter, dstFilter, vf->priv->param);
if(vf->priv->interlaced){ if(vf->priv->interlaced){
vf->priv->ctx2=sws_getContext(width, height >> 1, vf->priv->ctx2=sws_getContext(width, height >> 1,
outfmt, sfmt,
vf->priv->w, vf->priv->h >> 1, vf->priv->w, vf->priv->h >> 1,
best, dfmt,
int_sws_flags | get_sws_cpuflags(), srcFilter, dstFilter, vf->priv->param); int_sws_flags | get_sws_cpuflags(), srcFilter, dstFilter, vf->priv->param);
} }
if(!vf->priv->ctx){ if(!vf->priv->ctx){
@ -559,9 +563,13 @@ struct SwsContext *sws_getContextFromCmdLine(int srcW, int srcH, int srcFormat,
{ {
int flags; int flags;
SwsFilter *dstFilterParam, *srcFilterParam; SwsFilter *dstFilterParam, *srcFilterParam;
enum PixelFormat dfmt, sfmt;
dfmt = imgfmt2pixfmt(dstFormat);
sfmt = imgfmt2pixfmt(srcFormat);
sws_getFlagsAndFilterFromCmdLine(&flags, &srcFilterParam, &dstFilterParam); sws_getFlagsAndFilterFromCmdLine(&flags, &srcFilterParam, &dstFilterParam);
return sws_getContext(srcW, srcH, srcFormat, dstW, dstH, dstFormat, flags | get_sws_cpuflags(), srcFilterParam, dstFilterParam, NULL); return sws_getContext(srcW, srcH, sfmt, dstW, dstH, dfmt, flags | get_sws_cpuflags(), srcFilterParam, dstFilterParam, NULL);
} }
/// An example of presets usage /// An example of presets usage

View File

@ -29,6 +29,7 @@
#include <malloc.h> #include <malloc.h>
#endif #endif
#include "avutil.h"
#include "img_format.h" #include "img_format.h"
#include "mp_image.h" #include "mp_image.h"
#include "vf.h" #include "vf.h"
@ -91,7 +92,7 @@ static int allocStuff(FilterParam *f, int width, int height){
swsF.lumH= swsF.lumV= vec; swsF.lumH= swsF.lumV= vec;
swsF.chrH= swsF.chrV= NULL; swsF.chrH= swsF.chrV= NULL;
f->filterContext= sws_getContext( f->filterContext= sws_getContext(
width, height, IMGFMT_Y8, width, height, IMGFMT_Y8, get_sws_cpuflags(), &swsF, NULL, NULL); width, height, PIX_FMT_GRAY8, width, height, PIX_FMT_GRAY8, get_sws_cpuflags(), &swsF, NULL, NULL);
sws_freeVec(vec); sws_freeVec(vec);

View File

@ -23,6 +23,7 @@
#include <math.h> #include <math.h>
#include "libvo/video_out.h" #include "libvo/video_out.h"
#include "spudec.h" #include "spudec.h"
#include "avutil.h"
#include "libswscale/swscale.h" #include "libswscale/swscale.h"
#define MIN(a, b) ((a)<(b)?(a):(b)) #define MIN(a, b) ((a)<(b)?(a):(b))
@ -754,7 +755,7 @@ void sws_spu_image(unsigned char *d1, unsigned char *d2, int dw, int dh, int ds,
oldvar = spu_gaussvar; oldvar = spu_gaussvar;
} }
ctx=sws_getContext(sw, sh, IMGFMT_Y800, dw, dh, IMGFMT_Y800, SWS_GAUSS, &filter, NULL, NULL); ctx=sws_getContext(sw, sh, PIX_FMT_GRAY8, dw, dh, PIX_FMT_GRAY8, SWS_GAUSS, &filter, NULL, NULL);
sws_scale(ctx,&s1,&ss,0,sh,&d1,&ds); sws_scale(ctx,&s1,&ss,0,sh,&d1,&ds);
for (i=ss*sh-1; i>=0; i--) if (!s2[i]) s2[i] = 255; //else s2[i] = 1; for (i=ss*sh-1; i>=0; i--) if (!s2[i]) s2[i] = 255; //else s2[i] = 1;
sws_scale(ctx,&s2,&ss,0,sh,&d2,&ds); sws_scale(ctx,&s2,&ss,0,sh,&d2,&ds);