annotate libmpcodecs/vf_lavcdeint.c @ 22995:70d7c6206f33

skip MMX code in rgb32to15 if the size of the input is smaller than the size of the units the MMX code processes
author ivo
date Wed, 18 Apr 2007 09:24:49 +0000
parents 20aca9baf5d8
children f8d4f8eff72b
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
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 9593
diff changeset
14 //#include "libvo/fastmemcpy.h"
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
15
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
16 #ifdef USE_LIBAVCODEC_SO
7004
8eff71f38685 dynamic libavcodec.so support updated by
arpi
parents: 6860
diff changeset
17 #include <ffmpeg/avcodec.h>
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
18 #else
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
19 #include "libavcodec/avcodec.h"
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
20 #endif
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 extern int avcodec_inited;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
23
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
24 struct vf_priv_s
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 int width, height;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
27 int pix_fmt;
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 /* Support for avcodec's built-in deinterlacer.
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
31 * Based on vf_lavc.c
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
32 */
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 //===========================================================================//
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
35
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
36
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
37 /* Convert mplayer's IMGFMT_* to avcodec's PIX_FMT_* for the supported
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
38 * IMGFMT's, and return -1 if the deinterlacer doesn't support
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
39 * that format (-1 because 0 is a valid PIX_FMT).
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
40 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
41 /* 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
42 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
43 imgfmt_to_pixfmt (int imgfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
44 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
45 switch(imgfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
46 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
47 /* I hope I got all the supported formats */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
48
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
49 /* 4:2:0 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
50 case IMGFMT_YV12:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
51 case IMGFMT_I420:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
52 case IMGFMT_IYUV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
53 return PIX_FMT_YUV420P;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
54 break;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
55
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
56 #if 0
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
57 /* 4:2:2 */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
58 case IMGFMT_UYVY:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
59 case IMGFMT_UYNV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
60 case IMGFMT_Y422:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
61 case IMGFMT_YUY2:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
62 case IMGFMT_YUNV:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
63 case IMGFMT_YVYU:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
64 case IMGFMT_Y42T:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
65 case IMGFMT_V422:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
66 case IMGFMT_V655:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
67 return PIX_FMT_YUV422P;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
68 break;
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
69 #endif
6859
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 /* Are there any _planar_ YUV 4:4:4 formats? */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
72
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
73 default:
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
74 return -1;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
75 }
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
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 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
80 config (struct vf_instance_s* vf,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
81 int width, int height, int d_width, int d_height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
82 unsigned int flags, unsigned int outfmt)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
83 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
84 struct vf_priv_s *priv = vf->priv;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
85
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
86 priv->pix_fmt = imgfmt_to_pixfmt(outfmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
87 if(priv->pix_fmt == -1)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
88 return 0;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
89
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
90 /* The deinterlacer will fail if this is false */
8787
e280692c0878 Found another 10l :-), but the filter is still broken :-(
filon
parents: 8427
diff changeset
91 if ((width & 3) != 0 || (height & 3) != 0)
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
92 return 0;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
93
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
94 /* If we get here, the deinterlacer is guaranteed not to fail */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
95
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
96 priv->width = width;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
97 priv->height = height;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
98
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
99 return vf_next_config(vf,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
100 width, height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
101 d_width, d_height,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
102 flags, outfmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
103 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
104
7368
a894e99c1e51 changing return type of put_image void->int
arpi
parents: 7004
diff changeset
105 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
106 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
107 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
108 struct vf_priv_s *priv = vf->priv;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
109 mp_image_t* dmpi;
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
110 AVPicture pic;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
111 AVPicture lavc_picture;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
112
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
113 lavc_picture.data[0] = mpi->planes[0];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
114 lavc_picture.data[1] = mpi->planes[1];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
115 lavc_picture.data[2] = mpi->planes[2];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
116 lavc_picture.linesize[0] = mpi->stride[0];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
117 lavc_picture.linesize[1] = mpi->stride[1];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
118 lavc_picture.linesize[2] = mpi->stride[2];
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
119
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
120 dmpi = vf_get_image(vf->next, mpi->imgfmt,
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
121 MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
122 priv->width, priv->height);
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 pic.data[0] = dmpi->planes[0];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
125 pic.data[1] = dmpi->planes[1];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
126 pic.data[2] = dmpi->planes[2];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
127 pic.linesize[0] = dmpi->stride[0];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
128 pic.linesize[1] = dmpi->stride[1];
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
129 pic.linesize[2] = dmpi->stride[2];
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
130
6860
e575f4ee82f1 - yuv422 disabled (no IMGFMT for _planar_ 422)
arpi
parents: 6859
diff changeset
131 if (avpicture_deinterlace(&pic, &lavc_picture,
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
132 priv->pix_fmt, priv->width, priv->height) < 0)
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 /* This should not happen -- see config() */
7368
a894e99c1e51 changing return type of put_image void->int
arpi
parents: 7004
diff changeset
135 return 0;
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
136 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
137
17906
20aca9baf5d8 passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents: 17523
diff changeset
138 return vf_next_put_image(vf, dmpi, pts);
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
139 }
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
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
142 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
143 query_format (struct vf_instance_s* vf, unsigned int fmt)
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 if(imgfmt_to_pixfmt(fmt) == -1)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
146 return 0;
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 return vf_next_query_format(vf,fmt);
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
149 }
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
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
152 static int
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
153 open (vf_instance_t *vf, char* args)
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
154 {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
155 /* We don't have any args */
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
156 (void) args;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
157
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
158 vf->config = config;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
159 vf->put_image = put_image;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
160 vf->query_format = query_format;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
161 vf->priv = malloc(sizeof(struct vf_priv_s));
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
162 memset(vf->priv,0,sizeof(struct vf_priv_s));
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
163
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
164 /* This may not technically be necessary just for a deinterlace,
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
165 * but it seems like a good idea.
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 if(!avcodec_inited)
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 avcodec_init();
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
170 avcodec_register_all();
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
171 avcodec_inited=1;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
172 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
173
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
174 return 1;
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
175 }
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
176
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
177
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
178 vf_info_t vf_info_lavcdeint = {
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
179 "libavcodec's deinterlacing filter",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
180 "lavcdeint",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
181 "Joe Rabinoff",
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
182 "libavcodec's internal deinterlacer, in case you don't like "
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
183 "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
184 open,
e9a2af584986 Add the new -vf option wich is the same as vop in reverse order.
albeu
parents: 8787
diff changeset
185 NULL
6859
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
186 };
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
187
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
188
ed26b2d781e9 new filter to use libavcodec's deinterlacer
arpi
parents:
diff changeset
189 //===========================================================================//