Mercurial > mplayer.hg
annotate libmpcodecs/vf_pullup.c @ 31515:823f39ab650b
Clean up #include handling in mplayer.c and mencoder.c.
All #includes are moved to the top and grouped alphabetically,
system headers before local headers.
This avoids some redundant redeclaration warnings that occurred due to some
global variables being declared and then (re)declared extern in header files.
author | diego |
---|---|
date | Mon, 28 Jun 2010 09:39:49 +0000 |
parents | a972c1a4a012 |
children | 7af3e6f901fd |
rev | line source |
---|---|
30421
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
1 /* |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
2 * This file is part of MPlayer. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
3 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
7 * (at your option) any later version. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
8 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
12 * GNU General Public License for more details. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
13 * |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
17 */ |
bbb6ebec87a0
Add missing license headers to all files in the libmpcodecs directory.
diego
parents:
29263
diff
changeset
|
18 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
19 #include <stdio.h> |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
20 #include <stdlib.h> |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
21 #include <string.h> |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
22 |
17012 | 23 #include "config.h" |
24 #include "mp_msg.h" | |
25 #include "cpudetect.h" | |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
26 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
27 #include "img_format.h" |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
28 #include "mp_image.h" |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
29 #include "vf.h" |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
30 |
17012 | 31 #include "libvo/fastmemcpy.h" |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
32 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
33 #include "pullup.h" |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
34 |
12548
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
35 #undef MAX |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
36 #define MAX(a,b) ((a)>(b)?(a):(b)) |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
37 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
38 struct vf_priv_s { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
39 struct pullup_context *ctx; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
40 int init; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
41 int fakecount; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
42 char *qbuf; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
43 }; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
44 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
45 static void init_pullup(struct vf_instance *vf, mp_image_t *mpi) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
46 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
47 struct pullup_context *c = vf->priv->ctx; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
48 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
49 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
50 c->format = PULLUP_FMT_Y; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
51 c->nplanes = 4; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
52 pullup_preinit_context(c); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
53 c->bpp[0] = c->bpp[1] = c->bpp[2] = 8; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
54 c->w[0] = mpi->w; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
55 c->h[0] = mpi->h; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
56 c->w[1] = c->w[2] = mpi->chroma_width; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
57 c->h[1] = c->h[2] = mpi->chroma_height; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
58 c->w[3] = ((mpi->w+15)/16) * ((mpi->h+15)/16); |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
59 c->h[3] = 2; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
60 c->stride[0] = mpi->width; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
61 c->stride[1] = c->stride[2] = mpi->chroma_width; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
62 c->stride[3] = c->w[3]; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
63 c->background[1] = c->background[2] = 128; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
64 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
65 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
66 if (gCpuCaps.hasMMX) c->cpu |= PULLUP_CPU_MMX; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
67 if (gCpuCaps.hasMMX2) c->cpu |= PULLUP_CPU_MMX2; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
68 if (gCpuCaps.has3DNow) c->cpu |= PULLUP_CPU_3DNOW; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
69 if (gCpuCaps.has3DNowExt) c->cpu |= PULLUP_CPU_3DNOWEXT; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
70 if (gCpuCaps.hasSSE) c->cpu |= PULLUP_CPU_SSE; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
71 if (gCpuCaps.hasSSE2) c->cpu |= PULLUP_CPU_SSE2; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
72 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
73 pullup_init_context(c); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
74 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
75 vf->priv->init = 1; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
76 vf->priv->qbuf = malloc(c->w[3]); |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
77 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
78 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
79 |
24603
4d4c5efcfdb0
Disable buggy unused function via #if 0, blessed by Rich.
diego
parents:
23666
diff
changeset
|
80 #if 0 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
81 static void get_image(struct vf_instance *vf, mp_image_t *mpi) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
82 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
83 struct pullup_context *c = vf->priv->ctx; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
84 struct pullup_buffer *b; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
85 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
86 if (mpi->type == MP_IMGTYPE_STATIC) return; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
87 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
88 if (!vf->priv->init) init_pullup(vf, mpi); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
89 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
90 b = pullup_get_buffer(c, 2); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
91 if (!b) return; /* shouldn't happen... */ |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
92 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
93 mpi->priv = b; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
94 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
95 mpi->planes[0] = b->planes[0]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
96 mpi->planes[1] = b->planes[1]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
97 mpi->planes[2] = b->planes[2]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
98 mpi->stride[0] = c->stride[0]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
99 mpi->stride[1] = c->stride[1]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
100 mpi->stride[2] = c->stride[2]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
101 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
102 mpi->flags |= MP_IMGFLAG_DIRECT; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
103 mpi->flags &= ~MP_IMGFLAG_DRAW_CALLBACK; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
104 } |
24603
4d4c5efcfdb0
Disable buggy unused function via #if 0, blessed by Rich.
diego
parents:
23666
diff
changeset
|
105 #endif |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
106 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
107 static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
108 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
109 struct pullup_context *c = vf->priv->ctx; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
110 struct pullup_buffer *b; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
111 struct pullup_frame *f; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
112 mp_image_t *dmpi; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
113 int ret; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
114 int p; |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
115 int i; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
116 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
117 if (!vf->priv->init) init_pullup(vf, mpi); |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
118 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
119 if (mpi->flags & MP_IMGFLAG_DIRECT) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
120 b = mpi->priv; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
121 mpi->priv = 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
122 } else { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
123 b = pullup_get_buffer(c, 2); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
124 if (!b) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
125 mp_msg(MSGT_VFILTER,MSGL_ERR,"Could not get buffer from pullup!\n"); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
126 f = pullup_get_frame(c); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
127 pullup_release_frame(f); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
128 return 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
129 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
130 memcpy_pic(b->planes[0], mpi->planes[0], mpi->w, mpi->h, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
131 c->stride[0], mpi->stride[0]); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
132 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
133 memcpy_pic(b->planes[1], mpi->planes[1], |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
134 mpi->chroma_width, mpi->chroma_height, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
135 c->stride[1], mpi->stride[1]); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
136 memcpy_pic(b->planes[2], mpi->planes[2], |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
137 mpi->chroma_width, mpi->chroma_height, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
138 c->stride[2], mpi->stride[2]); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
139 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
140 } |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
141 if (mpi->qscale) { |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
17906
diff
changeset
|
142 fast_memcpy(b->planes[3], mpi->qscale, c->w[3]); |
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
17906
diff
changeset
|
143 fast_memcpy(b->planes[3]+c->w[3], mpi->qscale, c->w[3]); |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
144 } |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
145 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
146 p = mpi->fields & MP_IMGFIELD_TOP_FIRST ? 0 : |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
147 (mpi->fields & MP_IMGFIELD_ORDERED ? 1 : 0); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
148 pullup_submit_field(c, b, p); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
149 pullup_submit_field(c, b, p^1); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
150 if (mpi->fields & MP_IMGFIELD_REPEAT_FIRST) |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
151 pullup_submit_field(c, b, p); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
152 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
153 pullup_release_buffer(b, 2); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
154 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
155 f = pullup_get_frame(c); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
156 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
157 /* Fake yes for first few frames (buffer depth) to keep from |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
158 * breaking A/V sync with G1's bad architecture... */ |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
159 if (!f) return vf->priv->fakecount ? (--vf->priv->fakecount,1) : 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
160 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
161 if (f->length < 2) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
162 pullup_release_frame(f); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
163 f = pullup_get_frame(c); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
164 if (!f) return 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
165 if (f->length < 2) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
166 pullup_release_frame(f); |
14954
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
167 if (!(mpi->fields & MP_IMGFIELD_REPEAT_FIRST)) |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
168 return 0; |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
169 f = pullup_get_frame(c); |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
170 if (!f) return 0; |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
171 if (f->length < 2) { |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
172 pullup_release_frame(f); |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
173 return 0; |
fe1dfcfcc3bf
1000l to me: could break a/v sync and eventually cause buffer exhaustion on soft-telecined input that's ugly
rfelker
parents:
13267
diff
changeset
|
174 } |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
175 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
176 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
177 |
12548
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
178 #if 0 |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
179 /* Average qscale tables from both frames. */ |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
180 if (mpi->qscale) { |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
181 for (i=0; i<c->w[3]; i++) { |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
182 vf->priv->qbuf[i] = (f->ofields[0]->planes[3][i] |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
183 + f->ofields[1]->planes[3][i+c->w[3]])>>1; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
184 } |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
185 } |
12548
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
186 #else |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
187 /* Take worst of qscale tables from both frames. */ |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
188 if (mpi->qscale) { |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
189 for (i=0; i<c->w[3]; i++) { |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
190 vf->priv->qbuf[i] = MAX(f->ofields[0]->planes[3][i], f->ofields[1]->planes[3][i+c->w[3]]); |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
191 } |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
192 } |
8584fdad0188
old changes in my local tree i forgot to commit - minor fixes
rfelker
parents:
11629
diff
changeset
|
193 #endif |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
194 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
195 /* If the frame isn't already exportable... */ |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
196 while (!f->buffer) { |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
197 dmpi = vf_get_image(vf->next, mpi->imgfmt, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
198 MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
199 mpi->width, mpi->height); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
200 /* FIXME: Is it ok to discard dmpi if it's not direct? */ |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
201 if (!(dmpi->flags & MP_IMGFLAG_DIRECT)) { |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
202 pullup_pack_frame(c, f); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
203 break; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
204 } |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
205 /* Direct render fields into output buffer */ |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
206 my_memcpy_pic(dmpi->planes[0], f->ofields[0]->planes[0], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
207 mpi->w, mpi->h/2, dmpi->stride[0]*2, c->stride[0]*2); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
208 my_memcpy_pic(dmpi->planes[0] + dmpi->stride[0], |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
209 f->ofields[1]->planes[0] + c->stride[0], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
210 mpi->w, mpi->h/2, dmpi->stride[0]*2, c->stride[0]*2); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
211 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
212 my_memcpy_pic(dmpi->planes[1], f->ofields[0]->planes[1], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
213 mpi->chroma_width, mpi->chroma_height/2, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
214 dmpi->stride[1]*2, c->stride[1]*2); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
215 my_memcpy_pic(dmpi->planes[1] + dmpi->stride[1], |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
216 f->ofields[1]->planes[1] + c->stride[1], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
217 mpi->chroma_width, mpi->chroma_height/2, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
218 dmpi->stride[1]*2, c->stride[1]*2); |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
219 my_memcpy_pic(dmpi->planes[2], f->ofields[0]->planes[2], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
220 mpi->chroma_width, mpi->chroma_height/2, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
221 dmpi->stride[2]*2, c->stride[2]*2); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
222 my_memcpy_pic(dmpi->planes[2] + dmpi->stride[2], |
11628
6fc547235443
simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents:
10956
diff
changeset
|
223 f->ofields[1]->planes[2] + c->stride[2], |
10773
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
224 mpi->chroma_width, mpi->chroma_height/2, |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
225 dmpi->stride[2]*2, c->stride[2]*2); |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
226 } |
012eeac10e16
direct render frames whose fields are not in a common buffer, rather
rfelker
parents:
10738
diff
changeset
|
227 pullup_release_frame(f); |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
228 if (mpi->qscale) { |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
229 dmpi->qscale = vf->priv->qbuf; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
230 dmpi->qstride = mpi->qstride; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
231 dmpi->qscale_type = mpi->qscale_type; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
232 } |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
233 return vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
234 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
235 dmpi = vf_get_image(vf->next, mpi->imgfmt, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
236 MP_IMGTYPE_EXPORT, MP_IMGFLAG_ACCEPT_STRIDE, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
237 mpi->width, mpi->height); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
238 |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
239 dmpi->planes[0] = f->buffer->planes[0]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
240 dmpi->planes[1] = f->buffer->planes[1]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
241 dmpi->planes[2] = f->buffer->planes[2]; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
242 |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
243 dmpi->stride[0] = c->stride[0]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
244 dmpi->stride[1] = c->stride[1]; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
245 dmpi->stride[2] = c->stride[2]; |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
25960
diff
changeset
|
246 |
11629
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
247 if (mpi->qscale) { |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
248 dmpi->qscale = vf->priv->qbuf; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
249 dmpi->qstride = mpi->qstride; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
250 dmpi->qscale_type = mpi->qscale_type; |
341f3c870013
pass quantizer tables through (averaging values when fields come from
rfelker
parents:
11628
diff
changeset
|
251 } |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
252 ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
253 pullup_release_frame(f); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
254 return ret; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
255 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
256 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
257 static int query_format(struct vf_instance *vf, unsigned int fmt) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
258 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
259 /* FIXME - support more formats */ |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
260 switch (fmt) { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
261 case IMGFMT_YV12: |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
262 case IMGFMT_IYUV: |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
263 case IMGFMT_I420: |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
264 return vf_next_query_format(vf, fmt); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
265 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
266 return 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
267 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
268 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
269 static int config(struct vf_instance *vf, |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
270 int width, int height, int d_width, int d_height, |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
271 unsigned int flags, unsigned int outfmt) |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
272 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
273 if (height&3) return 0; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
274 return vf_next_config(vf, width, height, d_width, d_height, flags, outfmt); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
275 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
276 |
30642
a972c1a4a012
cosmetics: Rename struct vf_instance_s --> vf_instance.
diego
parents:
30638
diff
changeset
|
277 static void uninit(struct vf_instance *vf) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
278 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
279 pullup_free_context(vf->priv->ctx); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
280 free(vf->priv); |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
281 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
282 |
30638
a7b908875c14
Rename open() vf initialization function to vf_open().
diego
parents:
30633
diff
changeset
|
283 static int vf_open(vf_instance_t *vf, char *args) |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
284 { |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
285 struct vf_priv_s *p; |
12549 | 286 struct pullup_context *c; |
14970
5d566b4628d0
direct rendering support drastically improves speed, but it's buggy. :( disabled for now...
rfelker
parents:
14954
diff
changeset
|
287 //vf->get_image = get_image; |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
288 vf->put_image = put_image; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
289 vf->config = config; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
290 vf->query_format = query_format; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
291 vf->uninit = uninit; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
292 vf->default_reqs = VFCAP_ACCEPT_STRIDE; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
293 vf->priv = p = calloc(1, sizeof(struct vf_priv_s)); |
12549 | 294 p->ctx = c = pullup_alloc_context(); |
14973 | 295 p->fakecount = 1; |
15037
dde2f0454527
1l! mplayer's verbose variable is not a flag but a signed number
rfelker
parents:
14973
diff
changeset
|
296 c->verbose = verbose>0; |
12549 | 297 c->junk_left = c->junk_right = 1; |
298 c->junk_top = c->junk_bottom = 4; | |
299 c->strict_breaks = 0; | |
13267 | 300 c->metric_plane = 0; |
12549 | 301 if (args) { |
13267 | 302 sscanf(args, "%d:%d:%d:%d:%d:%d", &c->junk_left, &c->junk_right, &c->junk_top, &c->junk_bottom, &c->strict_breaks, &c->metric_plane); |
12549 | 303 } |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
304 return 1; |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
305 } |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
306 |
25960 | 307 const vf_info_t vf_info_pullup = { |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
308 "pullup (from field sequence to frames)", |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
309 "pullup", |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
310 "Rich Felker", |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
311 "", |
30638
a7b908875c14
Rename open() vf initialization function to vf_open().
diego
parents:
30633
diff
changeset
|
312 vf_open, |
10664
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
313 NULL |
d47ca466c97b
pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff
changeset
|
314 }; |