annotate libmpcodecs/vf_lavcdeint.c @ 28063:a318969a4f45

Set the base size window manager hint, otherwise some subtract the minimum size of 4x4 from the numbers displayed to the user which might be confusing. Based on patch by Bert Wesarg [bert wesarg googlemail com].
author reimar
date Fri, 05 Dec 2008 19:01:49 +0000
parents 1318e956c092
children 0f1b5b68af32
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
1 #include <stdio.h>
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
2 #include <stdlib.h>
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
3 #include <string.h>
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
4 #include <inttypes.h>
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
5
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 9593
diff changeset
6 #include "config.h"
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 9593
diff changeset
7 #include "mp_msg.h"
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 9593
diff changeset
8 #include "help_mp.h"
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
9
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
10 #include "img_format.h"
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
11 #include "mp_image.h"
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
12 #include "vf.h"
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
13 #include "libavcodec/avcodec.h"
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
14
25962
afa125da85cf typo fix: inited --> initialized
diego
parents: 25221
diff changeset
15 extern int avcodec_initialized;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
16
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
17 struct vf_priv_s
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
18 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
19 int width, height;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
20 int pix_fmt;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
21 };
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
22
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
23 /* Support for avcodec's built-in deinterlacer.
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
24 * Based on vf_lavc.c
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
25 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
26
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
27 //===========================================================================//
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
28
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
29
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
30 /* Convert mplayer's IMGFMT_* to avcodec's PIX_FMT_* for the supported
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
31 * IMGFMT's, and return -1 if the deinterlacer doesn't support
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
32 * that format (-1 because 0 is a valid PIX_FMT).
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
33 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
34 /* The deinterlacer supports planer 4:2:0, 4:2:2, and 4:4:4 YUV */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
35 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
36 imgfmt_to_pixfmt (int imgfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
37 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
38 switch(imgfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
39 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
40 /* I hope I got all the supported formats */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
41
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
42 /* 4:2:0 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
43 case IMGFMT_YV12:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
44 case IMGFMT_I420:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
45 case IMGFMT_IYUV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
46 return PIX_FMT_YUV420P;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
47 break;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
48
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
49 #if 0
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
50 /* 4:2:2 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
51 case IMGFMT_UYVY:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
52 case IMGFMT_UYNV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
53 case IMGFMT_Y422:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
54 case IMGFMT_YUY2:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
55 case IMGFMT_YUNV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
56 case IMGFMT_YVYU:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
57 case IMGFMT_Y42T:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
58 case IMGFMT_V422:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
59 case IMGFMT_V655:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
60 return PIX_FMT_YUV422P;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
61 break;
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
62 #endif
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
63
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
64 /* Are there any _planar_ YUV 4:4:4 formats? */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
65
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
66 default:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
67 return -1;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
68 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
69 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
70
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
71
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
72 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
73 config (struct vf_instance_s* vf,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
74 int width, int height, int d_width, int d_height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
75 unsigned int flags, unsigned int outfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
76 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
77 struct vf_priv_s *priv = vf->priv;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
78
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
79 priv->pix_fmt = imgfmt_to_pixfmt(outfmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
80 if(priv->pix_fmt == -1)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
81 return 0;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
82
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
83 /* The deinterlacer will fail if this is false */
8787
e280692c0878 Found another 10l :-), but the filter is still broken :-(
filon
parents: 8427
diff changeset
84 if ((width & 3) != 0 || (height & 3) != 0)
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
85 return 0;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
86
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
87 /* If we get here, the deinterlacer is guaranteed not to fail */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
88
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
89 priv->width = width;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
90 priv->height = height;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
91
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
92 return vf_next_config(vf,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
93 width, height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
94 d_width, d_height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
95 flags, outfmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
96 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
97
7368
a894e99c1e51 changing return type of put_image void->int
arpi
parents: 7004
diff changeset
98 static int
17906
20aca9baf5d8 passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents: 17523
diff changeset
99 put_image (struct vf_instance_s* vf, mp_image_t *mpi, double pts)
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
100 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
101 struct vf_priv_s *priv = vf->priv;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
102 mp_image_t* dmpi;
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
103 AVPicture pic;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
104 AVPicture lavc_picture;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
105
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
106 lavc_picture.data[0] = mpi->planes[0];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
107 lavc_picture.data[1] = mpi->planes[1];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
108 lavc_picture.data[2] = mpi->planes[2];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
109 lavc_picture.linesize[0] = mpi->stride[0];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
110 lavc_picture.linesize[1] = mpi->stride[1];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
111 lavc_picture.linesize[2] = mpi->stride[2];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
112
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
113 dmpi = vf_get_image(vf->next, mpi->imgfmt,
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
114 MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
115 priv->width, priv->height);
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
116
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
117 pic.data[0] = dmpi->planes[0];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
118 pic.data[1] = dmpi->planes[1];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
119 pic.data[2] = dmpi->planes[2];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
120 pic.linesize[0] = dmpi->stride[0];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
121 pic.linesize[1] = dmpi->stride[1];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
122 pic.linesize[2] = dmpi->stride[2];
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
123
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
124 if (avpicture_deinterlace(&pic, &lavc_picture,
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
125 priv->pix_fmt, priv->width, priv->height) < 0)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
126 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
127 /* This should not happen -- see config() */
7368
a894e99c1e51 changing return type of put_image void->int
arpi
parents: 7004
diff changeset
128 return 0;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
129 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
130
17906
20aca9baf5d8 passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents: 17523
diff changeset
131 return vf_next_put_image(vf, dmpi, pts);
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
132 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
133
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
134
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
135 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
136 query_format (struct vf_instance_s* vf, unsigned int fmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
137 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
138 if(imgfmt_to_pixfmt(fmt) == -1)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
139 return 0;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
140
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
141 return vf_next_query_format(vf,fmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
142 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
143
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
144
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
145 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
146 open (vf_instance_t *vf, char* args)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
147 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
148 /* We don't have any args */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
149 (void) args;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
150
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
151 vf->config = config;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
152 vf->put_image = put_image;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
153 vf->query_format = query_format;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
154 vf->priv = malloc(sizeof(struct vf_priv_s));
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
155 memset(vf->priv,0,sizeof(struct vf_priv_s));
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
156
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
157 /* This may not technically be necessary just for a deinterlace,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
158 * but it seems like a good idea.
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
159 */
25962
afa125da85cf typo fix: inited --> initialized
diego
parents: 25221
diff changeset
160 if(!avcodec_initialized)
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
161 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
162 avcodec_init();
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
163 avcodec_register_all();
25962
afa125da85cf typo fix: inited --> initialized
diego
parents: 25221
diff changeset
164 avcodec_initialized=1;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
165 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
166
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
167 return 1;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
168 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
169
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
170
25221
00fff9a3b735 Make all vf_info_t structs const
reimar
parents: 23373
diff changeset
171 const vf_info_t vf_info_lavcdeint = {
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
172 "libavcodec's deinterlacing filter",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
173 "lavcdeint",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
174 "Joe Rabinoff",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
175 "libavcodec's internal deinterlacer, in case you don't like "
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
176 "the builtin ones (invoked with -pp or -npp)",
9593
e9a2af584986 Add the new -vf option wich is the same as vop in reverse order.
albeu
parents: 8787
diff changeset
177 open,
e9a2af584986 Add the new -vf option wich is the same as vop in reverse order.
albeu
parents: 8787
diff changeset
178 NULL
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
179 };
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
180
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
181
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
182 //===========================================================================//