MythTV  master
pullup.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) MPlayer Project license GPL v2
3 */
4 
5 
6 #define PULLUP_CPU_MMX 1
7 #define PULLUP_CPU_MMX2 2
8 #define PULLUP_CPU_3DNOW 4
9 #define PULLUP_CPU_3DNOWEXT 8
10 #define PULLUP_CPU_SSE 16
11 #define PULLUP_CPU_SSE2 32
12 
13 #define PULLUP_FMT_Y 1
14 #define PULLUP_FMT_YUY2 2
15 #define PULLUP_FMT_UYVY 3
16 #define PULLUP_FMT_RGB32 4
17 
19 {
20  int lock[2];
21  unsigned char **planes;
22 };
23 
25 {
26  int parity;
28  unsigned int flags;
29  int breaks;
30  int affinity;
31  int *diffs;
32  int *comb;
33  int *var;
34  struct pullup_field *prev, *next;
35 };
36 
38 {
39  int lock;
40  int length;
41  int parity;
42  struct pullup_buffer **ifields, *ofields[2];
44 };
45 
47 {
48  /* Public interface */
49  int format;
50  int nplanes;
51  int *bpp, *w, *h, *stride, *background;
52  unsigned int cpu;
54  int verbose;
58  /* Internal data */
59  struct pullup_field *first, *last, *head;
61  int nbuffers;
62  int (*diff)(const unsigned char *, const unsigned char *, int);
63  int (*comb)(const unsigned char *, const unsigned char *, int);
64  int (*var)(const unsigned char *, const unsigned char *, int);
67 };
68 
69 
70 struct pullup_buffer *pullup_lock_buffer(struct pullup_buffer *b, int parity);
71 void pullup_release_buffer(struct pullup_buffer *b, int parity);
72 struct pullup_buffer *pullup_get_buffer(struct pullup_context *c, int parity);
73 
74 void pullup_submit_field(struct pullup_context *c, struct pullup_buffer *b, int parity);
75 void pullup_flush_fields(struct pullup_context *c);
76 
78 void pullup_pack_frame(struct pullup_context *c, struct pullup_frame *fr);
79 void pullup_release_frame(struct pullup_frame *fr);
80 
83 void pullup_init_context(struct pullup_context *c);
84 void pullup_free_context(struct pullup_context *c);
85 
86 
int breaks
Definition: pullup.h:29
struct pullup_field * head
Definition: pullup.h:59
int metric_offset
Definition: pullup.h:65
int * background
Definition: pullup.h:51
int junk_bottom
Definition: pullup.h:53
int format
Definition: pullup.h:49
void pullup_free_context(struct pullup_context *c)
Definition: pullup.c:805
void pullup_submit_field(struct pullup_context *c, struct pullup_buffer *b, int parity)
Definition: pullup.c:408
struct pullup_buffer * pullup_lock_buffer(struct pullup_buffer *b, int parity)
Definition: pullup.c:284
int metric_h
Definition: pullup.h:65
struct pullup_buffer * buffer
Definition: pullup.h:43
struct pullup_buffer ** ifields
Definition: pullup.h:42
struct pullup_field * first
Definition: pullup.h:59
int * h
Definition: pullup.h:51
struct pullup_frame * frame
Definition: pullup.h:66
struct pullup_buffer * pullup_get_buffer(struct pullup_context *c, int parity)
Definition: pullup.c:299
int nbuffers
Definition: pullup.h:61
struct pullup_context * pullup_alloc_context(void)
Definition: pullup.c:746
int metric_plane
Definition: pullup.h:55
struct pullup_field * prev
Definition: pullup.h:34
int * var
Definition: pullup.h:33
void pullup_preinit_context(struct pullup_context *c)
Definition: pullup.c:755
int parity
Definition: pullup.h:26
unsigned char b
Definition: ParseText.cpp:329
int metric_w
Definition: pullup.h:65
int parity
Definition: pullup.h:41
unsigned char ** planes
Definition: pullup.h:21
void pullup_init_context(struct pullup_context *c)
Definition: pullup.c:764
int(* var)(const unsigned char *, const unsigned char *, int)
Definition: pullup.h:64
int metric_len
Definition: pullup.h:65
struct pullup_buffer * ofields[2]
Definition: pullup.h:42
int lock[2]
Definition: pullup.h:20
int length
Definition: pullup.h:40
int junk_top
Definition: pullup.h:53
int verbose
Definition: pullup.h:54
int * bpp
Definition: pullup.h:51
int strict_breaks
Definition: pullup.h:56
struct pullup_buffer * buffer
Definition: pullup.h:27
unsigned int cpu
Definition: pullup.h:52
int junk_left
Definition: pullup.h:53
int * diffs
Definition: pullup.h:31
int * w
Definition: pullup.h:51
int(* comb)(const unsigned char *, const unsigned char *, int)
Definition: pullup.h:63
int lock
Definition: pullup.h:39
void pullup_release_buffer(struct pullup_buffer *b, int parity)
Definition: pullup.c:292
struct pullup_frame * pullup_get_frame(struct pullup_context *c)
Definition: pullup.c:646
void pullup_pack_frame(struct pullup_context *c, struct pullup_frame *fr)
Definition: pullup.c:710
unsigned int flags
Definition: pullup.h:28
int * comb
Definition: pullup.h:32
struct pullup_field * last
Definition: pullup.h:59
int nplanes
Definition: pullup.h:50
void pullup_release_frame(struct pullup_frame *fr)
Definition: pullup.c:730
int(* diff)(const unsigned char *, const unsigned char *, int)
Definition: pullup.h:62
int * stride
Definition: pullup.h:51
struct pullup_buffer * buffers
Definition: pullup.h:60
int strict_pairs
Definition: pullup.h:57
int junk_right
Definition: pullup.h:53
void pullup_flush_fields(struct pullup_context *c)
Definition: pullup.c:435
int affinity
Definition: pullup.h:30
struct pullup_field * next
Definition: pullup.h:34