annotate libmpcodecs/vf_format.c @ 9593:e9a2af584986

Add the new -vf option wich is the same as vop in reverse order. Syntax is we decided, so you can give the nomes or not with both vop and vf. vf take precedence over vop.
author albeu
date Sat, 15 Mar 2003 18:01:02 +0000
parents 898e5270a46e
children 0e265e2f3ac9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
1 #include <stdio.h>
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
2 #include <stdlib.h>
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
3 #include <string.h>
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
4 #include <inttypes.h>
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
5
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
6 #include "../config.h"
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
7 #include "../mp_msg.h"
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
8
5607
1972c3475d93 mp_image.h and img_format.h moved to libmpcodecs
arpi
parents: 5565
diff changeset
9 #include "img_format.h"
1972c3475d93 mp_image.h and img_format.h moved to libmpcodecs
arpi
parents: 5565
diff changeset
10 #include "mp_image.h"
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
11 #include "vf.h"
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
12
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
13 struct vf_priv_s {
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
14 unsigned int fmt;
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
15 };
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
16
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
17 //===========================================================================//
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
18
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
19 static int query_format(struct vf_instance_s* vf, unsigned int fmt){
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
20 if(fmt==vf->priv->fmt)
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
21 return vf_next_query_format(vf,fmt);
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
22 return 0;
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
23 }
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
24
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
25 static int open(vf_instance_t *vf, char* args){
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
26 vf->query_format=query_format;
6001
0263a3eabcd7 reset default caps
arpi
parents: 5607
diff changeset
27 vf->default_caps=0;
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
28 vf->priv=malloc(sizeof(struct vf_priv_s));
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
29
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
30 if(args){
6872
e75137e656d3 added new formats: 444p,422p, 411p
arpi
parents: 6836
diff changeset
31 if(!strcasecmp(args,"444p")) vf->priv->fmt=IMGFMT_444P; else
e75137e656d3 added new formats: 444p,422p, 411p
arpi
parents: 6836
diff changeset
32 if(!strcasecmp(args,"422p")) vf->priv->fmt=IMGFMT_422P; else
e75137e656d3 added new formats: 444p,422p, 411p
arpi
parents: 6836
diff changeset
33 if(!strcasecmp(args,"411p")) vf->priv->fmt=IMGFMT_411P; else
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
34 if(!strcasecmp(args,"yuy2")) vf->priv->fmt=IMGFMT_YUY2; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
35 if(!strcasecmp(args,"yv12")) vf->priv->fmt=IMGFMT_YV12; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
36 if(!strcasecmp(args,"i420")) vf->priv->fmt=IMGFMT_I420; else
6525
0a7be46617d8 yvu9 and if09 support
alex
parents: 6001
diff changeset
37 if(!strcasecmp(args,"yvu9")) vf->priv->fmt=IMGFMT_YVU9; else
0a7be46617d8 yvu9 and if09 support
alex
parents: 6001
diff changeset
38 if(!strcasecmp(args,"if09")) vf->priv->fmt=IMGFMT_IF09; else
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
39 if(!strcasecmp(args,"iyuv")) vf->priv->fmt=IMGFMT_IYUV; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
40 if(!strcasecmp(args,"uyvy")) vf->priv->fmt=IMGFMT_UYVY; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
41 if(!strcasecmp(args,"bgr24")) vf->priv->fmt=IMGFMT_BGR24; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
42 if(!strcasecmp(args,"bgr32")) vf->priv->fmt=IMGFMT_BGR32; else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
43 if(!strcasecmp(args,"bgr16")) vf->priv->fmt=IMGFMT_BGR16; else
5565
0b301fec999a capabilities support -> automatic insertion of scale, expand, pp
arpi
parents: 5539
diff changeset
44 if(!strcasecmp(args,"bgr15")) vf->priv->fmt=IMGFMT_BGR15; else
6525
0a7be46617d8 yvu9 and if09 support
alex
parents: 6001
diff changeset
45 if(!strcasecmp(args,"bgr8")) vf->priv->fmt=IMGFMT_BGR8; else
6836
0e6860ff93e3 added missing formats :)
rfelker
parents: 6708
diff changeset
46 if(!strcasecmp(args,"bgr4")) vf->priv->fmt=IMGFMT_BGR4; else
9171
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 6872
diff changeset
47 if(!strcasecmp(args,"bg4b")) vf->priv->fmt=IMGFMT_BG4B; else
6836
0e6860ff93e3 added missing formats :)
rfelker
parents: 6708
diff changeset
48 if(!strcasecmp(args,"bgr1")) vf->priv->fmt=IMGFMT_BGR1; else
6708
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 6525
diff changeset
49 if(!strcasecmp(args,"rgb24")) vf->priv->fmt=IMGFMT_RGB24; else
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 6525
diff changeset
50 if(!strcasecmp(args,"rgb32")) vf->priv->fmt=IMGFMT_RGB32; else
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 6525
diff changeset
51 if(!strcasecmp(args,"rgb16")) vf->priv->fmt=IMGFMT_RGB16; else
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 6525
diff changeset
52 if(!strcasecmp(args,"rgb15")) vf->priv->fmt=IMGFMT_RGB15; else
8058078f1248 support for external pp by divx4. some fixes/cosmetics?
alex
parents: 6525
diff changeset
53 if(!strcasecmp(args,"rgb8")) vf->priv->fmt=IMGFMT_RGB8; else
6836
0e6860ff93e3 added missing formats :)
rfelker
parents: 6708
diff changeset
54 if(!strcasecmp(args,"rgb4")) vf->priv->fmt=IMGFMT_RGB4; else
9171
898e5270a46e fixing rgb4 & bgr4 (2 pixels per byte)
michael
parents: 6872
diff changeset
55 if(!strcasecmp(args,"rg4b")) vf->priv->fmt=IMGFMT_RG4B; else
6836
0e6860ff93e3 added missing formats :)
rfelker
parents: 6708
diff changeset
56 if(!strcasecmp(args,"rgb1")) vf->priv->fmt=IMGFMT_RGB1; else
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
57 { printf("Unknown format name: '%s'\n",args);return 0;}
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
58 } else
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
59 vf->priv->fmt=IMGFMT_YUY2;
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
60
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
61 return 1;
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
62 }
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
63
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
64 vf_info_t vf_info_format = {
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
65 "force output format",
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
66 "format",
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
67 "A'rpi",
5565
0b301fec999a capabilities support -> automatic insertion of scale, expand, pp
arpi
parents: 5539
diff changeset
68 "FIXME! get_image()/put_image()",
9593
e9a2af584986 Add the new -vf option wich is the same as vop in reverse order.
albeu
parents: 9171
diff changeset
69 open,
e9a2af584986 Add the new -vf option wich is the same as vop in reverse order.
albeu
parents: 9171
diff changeset
70 NULL
5539
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
71 };
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
72
eefc339440bc 2 new simple filters: yuy2 and format
arpi
parents:
diff changeset
73 //===========================================================================//