Mercurial > mplayer.hg
annotate libmpcodecs/vf_format.c @ 29641:52e00a25ab71
Hack: set DEP/NX on Windows via SetProcessDEPPolicy.
This should really be done via the NXCOMPAT PE flag, but looks like
binutils will not get support for it any time soon and not having this
security feature enabled is just ridiculous.
author | reimar |
---|---|
date | Wed, 16 Sep 2009 18:07:19 +0000 |
parents | 0f1b5b68af32 |
children | 391e683541a7 |
rev | line source |
---|---|
5539 | 1 #include <stdio.h> |
2 #include <stdlib.h> | |
3 #include <string.h> | |
4 #include <inttypes.h> | |
5 | |
17012 | 6 #include "config.h" |
7 #include "mp_msg.h" | |
18004
bcd805923554
Part2 of several printf2mp_msg changes in patch from Otvos Attila oattila AT chello DOT hu with LOTS of modifications by me
reynaldo
parents:
17012
diff
changeset
|
8 #include "help_mp.h" |
5539 | 9 |
5607 | 10 #include "img_format.h" |
11 #include "mp_image.h" | |
5539 | 12 #include "vf.h" |
13 | |
9601 | 14 #include "m_option.h" |
15 #include "m_struct.h" | |
16 | |
17 static struct vf_priv_s { | |
5539 | 18 unsigned int fmt; |
22027 | 19 } const vf_priv_dflt = { |
9601 | 20 IMGFMT_YUY2 |
5539 | 21 }; |
22 | |
23 //===========================================================================// | |
24 | |
25 static int query_format(struct vf_instance_s* vf, unsigned int fmt){ | |
26 if(fmt==vf->priv->fmt) | |
27 return vf_next_query_format(vf,fmt); | |
28 return 0; | |
29 } | |
30 | |
31 static int open(vf_instance_t *vf, char* args){ | |
32 vf->query_format=query_format; | |
6001 | 33 vf->default_caps=0; |
9601 | 34 if(!vf->priv) { |
35 vf->priv=malloc(sizeof(struct vf_priv_s)); | |
36 vf->priv->fmt=IMGFMT_YUY2; | |
37 } | |
5539 | 38 if(args){ |
6872 | 39 if(!strcasecmp(args,"444p")) vf->priv->fmt=IMGFMT_444P; else |
40 if(!strcasecmp(args,"422p")) vf->priv->fmt=IMGFMT_422P; else | |
41 if(!strcasecmp(args,"411p")) vf->priv->fmt=IMGFMT_411P; else | |
5539 | 42 if(!strcasecmp(args,"yuy2")) vf->priv->fmt=IMGFMT_YUY2; else |
43 if(!strcasecmp(args,"yv12")) vf->priv->fmt=IMGFMT_YV12; else | |
44 if(!strcasecmp(args,"i420")) vf->priv->fmt=IMGFMT_I420; else | |
6525 | 45 if(!strcasecmp(args,"yvu9")) vf->priv->fmt=IMGFMT_YVU9; else |
46 if(!strcasecmp(args,"if09")) vf->priv->fmt=IMGFMT_IF09; else | |
5539 | 47 if(!strcasecmp(args,"iyuv")) vf->priv->fmt=IMGFMT_IYUV; else |
48 if(!strcasecmp(args,"uyvy")) vf->priv->fmt=IMGFMT_UYVY; else | |
49 if(!strcasecmp(args,"bgr24")) vf->priv->fmt=IMGFMT_BGR24; else | |
50 if(!strcasecmp(args,"bgr32")) vf->priv->fmt=IMGFMT_BGR32; else | |
51 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
|
52 if(!strcasecmp(args,"bgr15")) vf->priv->fmt=IMGFMT_BGR15; else |
6525 | 53 if(!strcasecmp(args,"bgr8")) vf->priv->fmt=IMGFMT_BGR8; else |
6836 | 54 if(!strcasecmp(args,"bgr4")) vf->priv->fmt=IMGFMT_BGR4; else |
9171 | 55 if(!strcasecmp(args,"bg4b")) vf->priv->fmt=IMGFMT_BG4B; else |
6836 | 56 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
|
57 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
|
58 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
|
59 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
|
60 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
|
61 if(!strcasecmp(args,"rgb8")) vf->priv->fmt=IMGFMT_RGB8; else |
6836 | 62 if(!strcasecmp(args,"rgb4")) vf->priv->fmt=IMGFMT_RGB4; else |
9171 | 63 if(!strcasecmp(args,"rg4b")) vf->priv->fmt=IMGFMT_RG4B; else |
6836 | 64 if(!strcasecmp(args,"rgb1")) vf->priv->fmt=IMGFMT_RGB1; else |
12999 | 65 if(!strcasecmp(args,"rgba")) vf->priv->fmt=IMGFMT_RGBA; else |
66 if(!strcasecmp(args,"argb")) vf->priv->fmt=IMGFMT_ARGB; else | |
67 if(!strcasecmp(args,"bgra")) vf->priv->fmt=IMGFMT_BGRA; else | |
68 if(!strcasecmp(args,"abgr")) vf->priv->fmt=IMGFMT_ABGR; else | |
18004
bcd805923554
Part2 of several printf2mp_msg changes in patch from Otvos Attila oattila AT chello DOT hu with LOTS of modifications by me
reynaldo
parents:
17012
diff
changeset
|
69 { mp_msg(MSGT_VFILTER, MSGL_WARN, MSGTR_MPCODECS_UnknownFormatName, args);return 0;} |
9601 | 70 } |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25221
diff
changeset
|
71 |
5539 | 72 |
73 return 1; | |
74 } | |
75 | |
9601 | 76 #define ST_OFF(f) M_ST_OFF(struct vf_priv_s,f) |
77 static m_option_t vf_opts_fields[] = { | |
78 {"fmt", ST_OFF(fmt), CONF_TYPE_IMGFMT, 0,0 ,0, NULL}, | |
79 { NULL, NULL, 0, 0, 0, 0, NULL } | |
80 }; | |
81 | |
82 static m_struct_t vf_opts = { | |
83 "format", | |
84 sizeof(struct vf_priv_s), | |
85 &vf_priv_dflt, | |
86 vf_opts_fields | |
87 }; | |
88 | |
25221 | 89 const vf_info_t vf_info_format = { |
5539 | 90 "force output format", |
91 "format", | |
92 "A'rpi", | |
5565
0b301fec999a
capabilities support -> automatic insertion of scale, expand, pp
arpi
parents:
5539
diff
changeset
|
93 "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
|
94 open, |
9601 | 95 &vf_opts |
5539 | 96 }; |
97 | |
98 //===========================================================================// |