annotate libmpcodecs/pullup.h @ 30052:fb44c9cb05fa

Do not auto-generate the C code to handle PCI vendor and device names. This part of the code does not change so there is no point in generating it.
author diego
date Sun, 20 Dec 2009 21:11:39 +0000
parents 4129c8cfa742
children bbb6ebec87a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
1 #ifndef MPLAYER_PULLUP_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
2 #define MPLAYER_PULLUP_H
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
3
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
4 #define PULLUP_CPU_MMX 1
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
5 #define PULLUP_CPU_MMX2 2
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
6 #define PULLUP_CPU_3DNOW 4
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
7 #define PULLUP_CPU_3DNOWEXT 8
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
8 #define PULLUP_CPU_SSE 16
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
9 #define PULLUP_CPU_SSE2 32
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
10
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
11 #define PULLUP_FMT_Y 1
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
12 #define PULLUP_FMT_YUY2 2
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
13 #define PULLUP_FMT_UYVY 3
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
14 #define PULLUP_FMT_RGB32 4
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
15
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
16 struct pullup_buffer
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
17 {
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
18 int lock[2];
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
19 unsigned char **planes;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
20 };
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
21
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
22 struct pullup_field
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
23 {
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
24 int parity;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
25 struct pullup_buffer *buffer;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
26 unsigned int flags;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
27 int breaks;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
28 int affinity;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
29 int *diffs;
11626
168e540bad66 allow for different combing metrics to be selected (not useful yet)
rfelker
parents: 11412
diff changeset
30 int *comb;
15721
eec6ace22741 small change to field-matching metrics which hopefully makes a big
rfelker
parents: 11641
diff changeset
31 int *var;
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
32 struct pullup_field *prev, *next;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
33 };
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
34
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
35 struct pullup_frame
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
36 {
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
37 int lock;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
38 int length;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
39 int parity;
11628
6fc547235443 simplified frame decision logic and reduced the occurrance of length=1
rfelker
parents: 11626
diff changeset
40 struct pullup_buffer **ifields, *ofields[2];
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
41 struct pullup_buffer *buffer;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
42 };
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 struct pullup_context
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
45 {
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
46 /* Public interface */
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
47 int format;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
48 int nplanes;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
49 int *bpp, *w, *h, *stride, *background;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
50 unsigned int cpu;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
51 int junk_left, junk_right, junk_top, junk_bottom;
10738
b6b68224033d tweaks and cleanup
rfelker
parents: 10664
diff changeset
52 int verbose;
10956
fdcd0d571912 support for selecting which plane to use for metrics in the pullup
rfelker
parents: 10738
diff changeset
53 int metric_plane;
11641
b7c269232edd various updates:
rfelker
parents: 11628
diff changeset
54 int strict_breaks;
b7c269232edd various updates:
rfelker
parents: 11628
diff changeset
55 int strict_pairs;
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
56 /* Internal data */
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
57 struct pullup_field *first, *last, *head;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
58 struct pullup_buffer *buffers;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
59 int nbuffers;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
60 int (*diff)(unsigned char *, unsigned char *, int);
11626
168e540bad66 allow for different combing metrics to be selected (not useful yet)
rfelker
parents: 11412
diff changeset
61 int (*comb)(unsigned char *, unsigned char *, int);
15721
eec6ace22741 small change to field-matching metrics which hopefully makes a big
rfelker
parents: 11641
diff changeset
62 int (*var)(unsigned char *, unsigned char *, int);
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
63 int metric_w, metric_h, metric_len, metric_offset;
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
64 struct pullup_frame *frame;
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
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
67
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
68 struct pullup_buffer *pullup_lock_buffer(struct pullup_buffer *b, int parity);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
69 void pullup_release_buffer(struct pullup_buffer *b, int parity);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
70 struct pullup_buffer *pullup_get_buffer(struct pullup_context *c, int parity);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
71
11412
ec3dac7d17a0 Warning fixes (approved by A'rpi).
rathann
parents: 10956
diff changeset
72 void pullup_submit_field(struct pullup_context *c, struct pullup_buffer *b, int parity);
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
73 void pullup_flush_fields(struct pullup_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 struct pullup_frame *pullup_get_frame(struct pullup_context *c);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
76 void pullup_pack_frame(struct pullup_context *c, struct pullup_frame *fr);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
77 void pullup_release_frame(struct pullup_frame *fr);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
78
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 15721
diff changeset
79 struct pullup_context *pullup_alloc_context(void);
10664
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
80 void pullup_preinit_context(struct pullup_context *c);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
81 void pullup_init_context(struct pullup_context *c);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
82 void pullup_free_context(struct pullup_context *c);
d47ca466c97b pullup -- third generation inverse telecine engine. the backend
rfelker
parents:
diff changeset
83
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25553
diff changeset
84 #endif /* MPLAYER_PULLUP_H */