Mercurial > mplayer.hg
annotate libmpcodecs/vf_format.c @ 27815:f92271dc5f17
Remove X11 backing store: this is now a useless flag.
Also, it is mandatory for Xserver 1.5.x (part of Xorg 7.4, shipped on all
Linux distributions starting from Oct. 08) and will be removed
from Xserver 1.6 anyhow ...
Patch by Stephane Marchesin (marchesin at icps dot u dash strasbg dot fr).
For more info, see long flame thread at:
http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2008-August/058323.html
author | ben |
---|---|
date | Wed, 29 Oct 2008 22:03:36 +0000 |
parents | 00fff9a3b735 |
children | 0f1b5b68af32 |
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 } |
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 //===========================================================================// |