xine-lib  1.2.10
deinterlace.h
Go to the documentation of this file.
1 
19 #ifndef DEINTERLACE_H_INCLUDED
20 #define DEINTERLACE_H_INCLUDED
21 
22 #if HAVE_INTTYPES_H
23 #include <inttypes.h>
24 #else
25 #include <stdint.h>
26 #endif
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
42 
55 {
56  uint8_t *tt0, *t0, *m0, *b0, *bb0;
57  uint8_t *tt1, *t1, *m1, *b1, *bb1;
58  uint8_t *tt2, *t2, *m2, *b2, *bb2;
59  uint8_t *tt3, *t3, *m3, *b3, *bb3;
61  /* xv frame bufs may have no padding. Dont prefetch over the end. */
63 };
64 
80 typedef void (*deinterlace_interp_scanline_t)( uint8_t *output,
82  int width );
95 typedef void (*deinterlace_copy_scanline_t)( uint8_t *output,
97  int width );
98 
104 {
105  uint8_t *f0;
106  uint8_t *f1;
107  uint8_t *f2;
108  uint8_t *f3;
109 };
110 
114 typedef void (*deinterlace_frame_t)( uint8_t *output, int outstride,
116  int bottom_field, int second_field,
117  int width, int height );
118 
119 
124 {
125  const char *name;
126  const char *short_name;
134  int delaysfield; /* xine: this method delays output by one field relative to input */
135  const char *description;
136 };
137 
138 
140 
145 
150 
155 
159 void filter_deinterlace_methods( deinterlace_methods_t *, int accel, int fieldsavailable );
160 
162 
163 #ifdef __cplusplus
164 };
165 #endif
166 #endif /* DEINTERLACE_H_INCLUDED */
methodlist_item_s::method
const deinterlace_method_t * method
Definition: deinterlace.c:39
deinterlace_scanline_data_s::t1
uint8_t * t1
Definition: deinterlace.h:57
deinterlace_method_s::accelrequired
int accelrequired
Definition: deinterlace.h:128
register_deinterlace_method
void register_deinterlace_method(deinterlace_methods_t *, const deinterlace_method_t *method)
Definition: deinterlace.c:56
deinterlace_method_s::interpolate_scanline
deinterlace_interp_scanline_t interpolate_scanline
Definition: deinterlace.h:131
deinterlace_method_s::copy_scanline
deinterlace_copy_scanline_t copy_scanline
Definition: deinterlace.h:132
deinterlace_scanline_data_s::t3
uint8_t * t3
Definition: deinterlace.h:59
deinterlace_method_s::delaysfield
int delaysfield
Definition: deinterlace.h:134
deinterlace_scanline_data_s::m0
uint8_t * m0
Definition: deinterlace.h:56
deinterlace_scanline_data_s::m1
uint8_t * m1
Definition: deinterlace.h:57
filter_deinterlace_methods
void filter_deinterlace_methods(deinterlace_methods_t *methodlist, int accel, int fields_available)
Definition: deinterlace.c:103
methodlist_item_s
Definition: deinterlace.c:37
deinterlace_scanline_data_s::b1
uint8_t * b1
Definition: deinterlace.h:57
deinterlace_scanline_data_s::m3
uint8_t * m3
Definition: deinterlace.h:59
deinterlace_scanline_data_s
Definition: deinterlace.h:54
lprintf
#define lprintf(...)
Definition: xineutils.h:620
deinterlace_scanline_data_s::b2
uint8_t * b2
Definition: deinterlace.h:58
deinterlace_methods_t
struct methodlist_item_s * deinterlace_methods_t
Definition: deinterlace.h:139
NULL
NULL
Definition: xine_plugin.c:78
deinterlace_scanline_data_s::bb1
uint8_t * bb1
Definition: deinterlace.h:57
deinterlace_method_s::name
const char * name
Definition: deinterlace.h:125
width
unsigned int width
Definition: gfontrle.c:4
deinterlace_frame_t
void(* deinterlace_frame_t)(uint8_t *output, int outstride, deinterlace_frame_data_t *data, int bottom_field, int second_field, int width, int height)
Definition: deinterlace.h:114
deinterlace_interp_scanline_t
void(* deinterlace_interp_scanline_t)(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: deinterlace.h:80
deinterlace_scanline_data_s::tt3
uint8_t * tt3
Definition: deinterlace.h:59
deinterlace_scanline_data_s::t0
uint8_t * t0
Definition: deinterlace.h:56
deinterlace_scanline_data_s::bytes_left
int bytes_left
Definition: deinterlace.h:62
deinterlace_scanline_data_s::bottom_field
int bottom_field
Definition: deinterlace.h:60
deinterlace_method_s::deinterlace_frame
deinterlace_frame_t deinterlace_frame
Definition: deinterlace.h:133
free_deinterlace_methods
void free_deinterlace_methods(deinterlace_methods_t *)
Definition: deinterlace.c:43
deinterlace_scanline_data_s::b3
uint8_t * b3
Definition: deinterlace.h:59
deinterlace_scanline_data_s::tt1
uint8_t * tt1
Definition: deinterlace.h:57
deinterlace_method_s
Definition: deinterlace.h:123
methodlist_item_s::next
methodlist_item_t * next
Definition: deinterlace.c:40
deinterlace_method_s::short_name
const char * short_name
Definition: deinterlace.h:126
deinterlace_scanline_data_s::bb0
uint8_t * bb0
Definition: deinterlace.h:56
deinterlace_frame_data_s::f0
uint8_t * f0
Definition: deinterlace.h:105
deinterlace_scanline_data_s::t2
uint8_t * t2
Definition: deinterlace.h:58
free_deinterlace_methods
void free_deinterlace_methods(deinterlace_methods_t *methodlist)
Definition: deinterlace.c:43
height
unsigned int height
Definition: gfontrle.c:5
deinterlace_scanline_data_s::tt0
uint8_t * tt0
Definition: deinterlace.h:56
deinterlace_frame_data_s
Definition: deinterlace.h:103
deinterlace_frame_data_s::f2
uint8_t * f2
Definition: deinterlace.h:107
get_deinterlace_method
const deinterlace_method_t * get_deinterlace_method(deinterlace_methods_t, int i)
Definition: deinterlace.c:90
deinterlace_frame_data_s::f3
uint8_t * f3
Definition: deinterlace.h:108
register_deinterlace_method
void register_deinterlace_method(deinterlace_methods_t *methodlist, const deinterlace_method_t *method)
Definition: deinterlace.c:56
deinterlace_scanline_data_s::bb2
uint8_t * bb2
Definition: deinterlace.h:58
get_deinterlace_method
const deinterlace_method_t * get_deinterlace_method(deinterlace_methods_t methodlist, int i)
Definition: deinterlace.c:90
deinterlace_scanline_data_s::b0
uint8_t * b0
Definition: deinterlace.h:56
deinterlace_scanline_data_s::m2
uint8_t * m2
Definition: deinterlace.h:58
deinterlace_frame_data_s::f1
uint8_t * f1
Definition: deinterlace.h:106
deinterlace_method_s::fields_required
int fields_required
Definition: deinterlace.h:127
get_num_deinterlace_methods
int get_num_deinterlace_methods(deinterlace_methods_t methodlist)
Definition: deinterlace.c:79
xine_internal.h
config.h
deinterlace_method_s::doscalerbob
int doscalerbob
Definition: deinterlace.h:129
deinterlace_scanline_data_s::tt2
uint8_t * tt2
Definition: deinterlace.h:58
deinterlace_copy_scanline_t
void(* deinterlace_copy_scanline_t)(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: deinterlace.h:95
get_num_deinterlace_methods
int get_num_deinterlace_methods(deinterlace_methods_t)
Definition: deinterlace.c:79
filter_deinterlace_methods
void filter_deinterlace_methods(deinterlace_methods_t *, int accel, int fieldsavailable)
Definition: deinterlace.c:103
deinterlace_scanline_data_s::bb3
uint8_t * bb3
Definition: deinterlace.h:59
deinterlace.h
deinterlace_method_s::description
const char * description
Definition: deinterlace.h:135
deinterlace_method_s::scanlinemode
int scanlinemode
Definition: deinterlace.h:130