annotate libmpcodecs/vf_softpulldown.c @ 15978:c8dc500e078e

memcpy and memmove both copy memory, but when using memcpy the source and destination must not overlap, but here, they did overlap. Committed with the kind blessing of Richard, patch by uau
author gpoirier
date Fri, 15 Jul 2005 22:09:30 +0000
parents b1b06adc5cd3
children 6ff3379a0862
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
5 #include "../config.h"
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
6 #include "../mp_msg.h"
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
12 #include "../libvo/fastmemcpy.h"
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
13 #include "../libvo/sub.h"
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
14
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
15 struct vf_priv_s {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
16 int state;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
17 long long in;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
18 long long out;
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
21 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
22 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
23 int i;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
24 void *retval=dst;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
25
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
26 for(i=0; i<height; i++)
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
27 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
28 memcpy(dst, src, bytesPerLine);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
29 src+= srcStride;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
30 dst+= dstStride;
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
33 return retval;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
34 }
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
35
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
36 static int put_image(struct vf_instance_s* vf, mp_image_t *mpi)
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
37 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
38 mp_image_t *dmpi;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
39 int ret = 0;
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
40 int flags = mpi->fields;
10510
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
41 int state = vf->priv->state;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
42
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
43 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
44 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
45 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
46
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
47 vf->priv->in++;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
48
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
49 if ((state == 0 &&
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
50 !(flags & MP_IMGFIELD_TOP_FIRST)) ||
10510
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
51 (state == 1 &&
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
52 flags & MP_IMGFIELD_TOP_FIRST)) {
10510
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
53 mp_msg(MSGT_VFILTER, MSGL_WARN,
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
54 "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
55 state,
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
56 (flags & MP_IMGFIELD_TOP_FIRST) != 0,
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
57 (flags & MP_IMGFIELD_REPEAT_FIRST) != 0);
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
58 state ^= 1;
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
59 }
10510
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
60
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
61 if (state == 0) {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
62 ret = vf_next_put_image(vf, mpi);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
63 vf->priv->out++;
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
64 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
65 my_memcpy_pic(dmpi->planes[0],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
66 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
67 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
68 if (mpi->flags & MP_IMGFLAG_PLANAR) {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
69 my_memcpy_pic(dmpi->planes[1],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
70 mpi->planes[1],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
71 mpi->chroma_width,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
72 mpi->chroma_height/2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
73 dmpi->stride[1]*2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
74 mpi->stride[1]*2);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
75 my_memcpy_pic(dmpi->planes[2],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
76 mpi->planes[2],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
77 mpi->chroma_width,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
78 mpi->chroma_height/2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
79 dmpi->stride[2]*2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
80 mpi->stride[2]*2);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
81 }
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
82 state=1;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
83 }
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
84 } else {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
85 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
86 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
87 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
88 if (mpi->flags & MP_IMGFLAG_PLANAR) {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
89 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
90 mpi->planes[1]+mpi->stride[1],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
91 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
92 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
93 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
94 mpi->planes[2]+mpi->stride[2],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
95 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
96 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
97 }
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
98 ret = vf_next_put_image(vf, dmpi);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
99 vf->priv->out++;
10663
711159267b2d clean up field flags:
rfelker
parents: 10510
diff changeset
100 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
101 ret |= vf_next_put_image(vf, mpi);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
102 vf->priv->out++;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
103 state=0;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
104 } else {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
105 my_memcpy_pic(dmpi->planes[0],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
106 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
107 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
108 if (mpi->flags & MP_IMGFLAG_PLANAR) {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
109 my_memcpy_pic(dmpi->planes[1],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
110 mpi->planes[1],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
111 mpi->chroma_width,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
112 mpi->chroma_height/2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
113 dmpi->stride[1]*2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
114 mpi->stride[1]*2);
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
115 my_memcpy_pic(dmpi->planes[2],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
116 mpi->planes[2],
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
117 mpi->chroma_width,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
118 mpi->chroma_height/2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
119 dmpi->stride[2]*2,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
120 mpi->stride[2]*2);
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
125 vf->priv->state = state;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
126
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
127 return ret;
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
130 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
131 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
132 unsigned int flags, unsigned int outfmt)
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
133 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
134 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
135 }
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
136
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
137 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
138 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
139 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
140 free(vf->priv);
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
143 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
144 {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
145 struct vf_priv_s *p;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
146 vf->config = config;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
147 vf->put_image = put_image;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
148 vf->uninit = uninit;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
149 vf->default_reqs = VFCAP_ACCEPT_STRIDE;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
150 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
151 vf->priv->state = 0;
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
152 return 1;
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
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
155 vf_info_t vf_info_softpulldown = {
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
156 "mpeg2 soft 3:2 pulldown",
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
157 "softpulldown",
15755
b1b06adc5cd3 Fix email address
ranma
parents: 10663
diff changeset
158 "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
159 "",
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
160 open,
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
161 NULL
73b3e4336cd4 Add mpeg2_flags to mp_image_t, copy flags in vd_libmpeg2.c,
ranma
parents:
diff changeset
162 };