summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/vf_scale.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-07 23:30:59 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-04-07 23:30:59 +0000
commitdd031af91c11e94f5b67780c175b644ab48d63b1 (patch)
treeb42e63dbd7a02fb07e640299065cf44f0ab79eab /libmpcodecs/vf_scale.c
parentf8e40dfce6660dda86a4a8e34e962bd1e0f45e89 (diff)
downloadmpv-dd031af91c11e94f5b67780c175b644ab48d63b1.tar.bz2
mpv-dd031af91c11e94f5b67780c175b644ab48d63b1.tar.xz
free old context, really use query_format
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5527 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/vf_scale.c')
-rw-r--r--libmpcodecs/vf_scale.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libmpcodecs/vf_scale.c b/libmpcodecs/vf_scale.c
index 1539a2c9ce..8e1b35e0f1 100644
--- a/libmpcodecs/vf_scale.c
+++ b/libmpcodecs/vf_scale.c
@@ -37,6 +37,7 @@ static int config(struct vf_instance_s* vf,
unsigned int flags, unsigned int outfmt){
unsigned int* p=outfmt_list;
unsigned int best=0;
+
// find the best outfmt:
while(*p){
int ret=vf_next_query_format(vf,*p);
@@ -57,6 +58,9 @@ static int config(struct vf_instance_s* vf,
printf("SwScale scaling %dx%d %s to %dx%d %s \n",
width,height,vo_format_name(outfmt),
vf->priv->w,vf->priv->h,vo_format_name(best));
+
+ // free old ctx:
+ if(vf->priv->ctx) freeSwsContext(vf->priv->ctx);
// new swscaler:
vf->priv->ctx=getSwsContextFromCmdLine(width,height,outfmt,
@@ -108,6 +112,7 @@ static int query_format(struct vf_instance_s* vf, unsigned int fmt){
static int open(vf_instance_t *vf, char* args){
vf->config=config;
vf->put_image=put_image;
+ vf->query_format=query_format;
vf->priv=malloc(sizeof(struct vf_priv_s));
// TODO: parse args ->
vf->priv->ctx=NULL;