Mercurial > mplayer.hg
annotate libmpcodecs/vf_softpulldown.c @ 23510:a6c619ee9d30
Teletext support for tv:// (v4l and v4l2 only)
modified patch from Otvos Attila oattila at chello dot hu
Module uses zvbi library for all low-level VBI operations (like I/O with vbi
device, converting vbi pages into usefull vbi_page stuctures, rendering them
into RGB32 images).
All teletext related stuff (except properties, slave commands and rendering
osd in text mode or RGB32 rendered teletext pages in spu mode) is implemented
in tvi_vbi.c
New properties:
teletext_page - switching between pages
teletext_mode - switch between on/off/opaque/transparent modes
teletext_format - (currently read-only) allows to get format info
(black/white,gray,text)
teletext_half_page - trivial zooming (displaying top/bottom half of teletext
page)
New slave commands:
teletext_add_dec - user interface for jumping to any page by editing page number
interactively
teletext_go_link - goes though links, specified on current page
author | voroshil |
---|---|
date | Sun, 10 Jun 2007 00:06:12 +0000 |
parents | a124f3abc1ec |
children | 5c3c7efd9b75 |
rev | line source |
---|---|
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
1 #include <stdio.h> |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
2 #include <stdlib.h> |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
3 #include <string.h> |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
4 |
17012 | 5 #include "config.h" |
6 #include "mp_msg.h" | |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
7 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
8 #include "img_format.h" |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
9 #include "mp_image.h" |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
10 #include "vf.h" |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
11 |
17012 | 12 #include "libvo/fastmemcpy.h" |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
13 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
14 struct vf_priv_s { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
15 int state; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
16 long long in; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
17 long long out; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
18 }; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
19 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
20 static inline void *my_memcpy_pic(void * dst, void * src, int bytesPerLine, int height, int dstStride, int srcStride) |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
21 { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
22 int i; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
23 void *retval=dst; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
24 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
25 for(i=0; i<height; i++) |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
26 { |
23457
a124f3abc1ec
Replace implicit use of fast_memcpy via macro by explicit use to allow
reimar
parents:
21224
diff
changeset
|
27 fast_memcpy(dst, src, bytesPerLine); |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
28 src+= srcStride; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
29 dst+= dstStride; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
30 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
31 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
32 return retval; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
33 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
34 |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
35 static int put_image(struct vf_instance_s* vf, mp_image_t *mpi, double pts) |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
36 { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
37 mp_image_t *dmpi; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
38 int ret = 0; |
10663 | 39 int flags = mpi->fields; |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
40 int state = vf->priv->state; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
41 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
42 dmpi = vf_get_image(vf->next, mpi->imgfmt, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
43 MP_IMGTYPE_STATIC, MP_IMGFLAG_ACCEPT_STRIDE | |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
44 MP_IMGFLAG_PRESERVE, mpi->width, mpi->height); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
45 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
46 vf->priv->in++; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
47 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
48 if ((state == 0 && |
10663 | 49 !(flags & MP_IMGFIELD_TOP_FIRST)) || |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
50 (state == 1 && |
10663 | 51 flags & MP_IMGFIELD_TOP_FIRST)) { |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
52 mp_msg(MSGT_VFILTER, MSGL_WARN, |
10663 | 53 "softpulldown: Unexpected field flags: state=%d top_field_first=%d repeat_first_field=%d\n", |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
54 state, |
10663 | 55 (flags & MP_IMGFIELD_TOP_FIRST) != 0, |
56 (flags & MP_IMGFIELD_REPEAT_FIRST) != 0); | |
57 state ^= 1; | |
58 } | |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
59 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
60 if (state == 0) { |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
61 ret = vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
62 vf->priv->out++; |
10663 | 63 if (flags & MP_IMGFIELD_REPEAT_FIRST) { |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
64 my_memcpy_pic(dmpi->planes[0], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
65 mpi->planes[0], mpi->w, mpi->h/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
66 dmpi->stride[0]*2, mpi->stride[0]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
67 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
68 my_memcpy_pic(dmpi->planes[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
69 mpi->planes[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
70 mpi->chroma_width, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
71 mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
72 dmpi->stride[1]*2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
73 mpi->stride[1]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
74 my_memcpy_pic(dmpi->planes[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
75 mpi->planes[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
76 mpi->chroma_width, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
77 mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
78 dmpi->stride[2]*2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
79 mpi->stride[2]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
80 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
81 state=1; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
82 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
83 } else { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
84 my_memcpy_pic(dmpi->planes[0]+dmpi->stride[0], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
85 mpi->planes[0]+mpi->stride[0], mpi->w, mpi->h/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
86 dmpi->stride[0]*2, mpi->stride[0]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
87 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
88 my_memcpy_pic(dmpi->planes[1]+dmpi->stride[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
89 mpi->planes[1]+mpi->stride[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
90 mpi->chroma_width, mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
91 dmpi->stride[1]*2, mpi->stride[1]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
92 my_memcpy_pic(dmpi->planes[2]+dmpi->stride[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
93 mpi->planes[2]+mpi->stride[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
94 mpi->chroma_width, mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
95 dmpi->stride[2]*2, mpi->stride[2]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
96 } |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
97 ret = vf_next_put_image(vf, dmpi, MP_NOPTS_VALUE); |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
98 vf->priv->out++; |
10663 | 99 if (flags & MP_IMGFIELD_REPEAT_FIRST) { |
17906
20aca9baf5d8
passing pts through the filter layer (lets see if pts or cola comes out at the end)
michael
parents:
17012
diff
changeset
|
100 ret |= vf_next_put_image(vf, mpi, MP_NOPTS_VALUE); |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
101 vf->priv->out++; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
102 state=0; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
103 } else { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
104 my_memcpy_pic(dmpi->planes[0], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
105 mpi->planes[0], mpi->w, mpi->h/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
106 dmpi->stride[0]*2, mpi->stride[0]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
107 if (mpi->flags & MP_IMGFLAG_PLANAR) { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
108 my_memcpy_pic(dmpi->planes[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
109 mpi->planes[1], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
110 mpi->chroma_width, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
111 mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
112 dmpi->stride[1]*2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
113 mpi->stride[1]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
114 my_memcpy_pic(dmpi->planes[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
115 mpi->planes[2], |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
116 mpi->chroma_width, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
117 mpi->chroma_height/2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
118 dmpi->stride[2]*2, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
119 mpi->stride[2]*2); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
120 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
121 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
122 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
123 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
124 vf->priv->state = state; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
125 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
126 return ret; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
127 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
128 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
129 static int config(struct vf_instance_s* vf, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
130 int width, int height, int d_width, int d_height, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
131 unsigned int flags, unsigned int outfmt) |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
132 { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
133 return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
134 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
135 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
136 static void uninit(struct vf_instance_s* vf) |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
137 { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
138 mp_msg(MSGT_VFILTER, MSGL_INFO, "softpulldown: %lld frames in, %lld frames out\n", vf->priv->in, vf->priv->out); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
139 free(vf->priv); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
140 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
141 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
142 static int open(vf_instance_t *vf, char* args) |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
143 { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
144 struct vf_priv_s *p; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
145 vf->config = config; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
146 vf->put_image = put_image; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
147 vf->uninit = uninit; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
148 vf->default_reqs = VFCAP_ACCEPT_STRIDE; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
149 vf->priv = p = calloc(1, sizeof(struct vf_priv_s)); |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
150 vf->priv->state = 0; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
151 return 1; |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
152 } |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
153 |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
154 vf_info_t vf_info_softpulldown = { |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
155 "mpeg2 soft 3:2 pulldown", |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
156 "softpulldown", |
15755 | 157 "Tobias Diedrich <ranma+mplayer@tdiedrich.de>", |
10510
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
158 "", |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
159 open, |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
160 NULL |
73b3e4336cd4
Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff
changeset
|
161 }; |