10 #include "img_format.h"
17 static struct vf_priv_s
{
19 } const vf_priv_dflt
= {
23 //===========================================================================//
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
);
31 static int open(vf_instance_t
*vf
, char* args
){
32 vf
->query_format
=query_format
;
35 vf
->priv
=malloc(sizeof(struct vf_priv_s
));
36 vf
->priv
->fmt
=IMGFMT_YV12
;
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
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
45 if(!strcasecmp(args
,"yvu9")) vf
->priv
->fmt
=IMGFMT_YVU9
; else
46 if(!strcasecmp(args
,"if09")) vf
->priv
->fmt
=IMGFMT_IF09
; else
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
52 if(!strcasecmp(args
,"bgr15")) vf
->priv
->fmt
=IMGFMT_BGR15
; else
53 if(!strcasecmp(args
,"bgr8")) vf
->priv
->fmt
=IMGFMT_BGR8
; else
54 if(!strcasecmp(args
,"bgr4")) vf
->priv
->fmt
=IMGFMT_BGR4
; else
55 if(!strcasecmp(args
,"bg4b")) vf
->priv
->fmt
=IMGFMT_BG4B
; else
56 if(!strcasecmp(args
,"bgr1")) vf
->priv
->fmt
=IMGFMT_BGR1
; else
57 if(!strcasecmp(args
,"rgb24")) vf
->priv
->fmt
=IMGFMT_RGB24
; else
58 if(!strcasecmp(args
,"rgb32")) vf
->priv
->fmt
=IMGFMT_RGB32
; else
59 if(!strcasecmp(args
,"rgb16")) vf
->priv
->fmt
=IMGFMT_RGB16
; else
60 if(!strcasecmp(args
,"rgb15")) vf
->priv
->fmt
=IMGFMT_RGB15
; else
61 if(!strcasecmp(args
,"rgb8")) vf
->priv
->fmt
=IMGFMT_RGB8
; else
62 if(!strcasecmp(args
,"rgb4")) vf
->priv
->fmt
=IMGFMT_RGB4
; else
63 if(!strcasecmp(args
,"rg4b")) vf
->priv
->fmt
=IMGFMT_RG4B
; else
64 if(!strcasecmp(args
,"rgb1")) vf
->priv
->fmt
=IMGFMT_RGB1
; else
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
69 { mp_msg(MSGT_VFILTER
, MSGL_WARN
, MSGTR_MPCODECS_UnknownFormatName
, args
);return 0;}
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
}
82 static m_struct_t vf_opts
= {
84 sizeof(struct vf_priv_s
),
89 const vf_info_t vf_info_noformat
= {
90 "disallow one output format",
98 //===========================================================================//