xine-lib 1.2.11
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
29extern "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
80typedef void (*deinterlace_interp_scanline_t)( uint8_t *output,
82 int width );
95typedef 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
114typedef 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
159void filter_deinterlace_methods( deinterlace_methods_t *, int accel, int fieldsavailable );
160
162
163#ifdef __cplusplus
164};
165#endif
166#endif /* DEINTERLACE_H_INCLUDED */
void filter_deinterlace_methods(deinterlace_methods_t *, int accel, int fieldsavailable)
Definition: deinterlace.c:103
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
struct methodlist_item_s * deinterlace_methods_t
Definition: deinterlace.h:139
void register_deinterlace_method(deinterlace_methods_t *, const deinterlace_method_t *method)
Definition: deinterlace.c:56
void free_deinterlace_methods(deinterlace_methods_t *)
Definition: deinterlace.c:43
void(* deinterlace_copy_scanline_t)(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: deinterlace.h:95
int get_num_deinterlace_methods(deinterlace_methods_t)
Definition: deinterlace.c:79
const deinterlace_method_t * get_deinterlace_method(deinterlace_methods_t, int i)
Definition: deinterlace.c:90
void(* deinterlace_interp_scanline_t)(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: deinterlace.h:80
unsigned int height
Definition: gfontrle.c:5
unsigned int width
Definition: gfontrle.c:4
Definition: deinterlace.h:104
uint8_t * f3
Definition: deinterlace.h:108
uint8_t * f2
Definition: deinterlace.h:107
uint8_t * f1
Definition: deinterlace.h:106
uint8_t * f0
Definition: deinterlace.h:105
Definition: deinterlace.h:124
deinterlace_copy_scanline_t copy_scanline
Definition: deinterlace.h:132
int scanlinemode
Definition: deinterlace.h:130
const char * short_name
Definition: deinterlace.h:126
deinterlace_frame_t deinterlace_frame
Definition: deinterlace.h:133
int fields_required
Definition: deinterlace.h:127
int doscalerbob
Definition: deinterlace.h:129
const char * description
Definition: deinterlace.h:135
int accelrequired
Definition: deinterlace.h:128
const char * name
Definition: deinterlace.h:125
int delaysfield
Definition: deinterlace.h:134
deinterlace_interp_scanline_t interpolate_scanline
Definition: deinterlace.h:131
Definition: deinterlace.h:55
uint8_t * b0
Definition: deinterlace.h:56
uint8_t * b1
Definition: deinterlace.h:57
uint8_t * tt1
Definition: deinterlace.h:57
uint8_t * tt0
Definition: deinterlace.h:56
int bottom_field
Definition: deinterlace.h:60
uint8_t * m3
Definition: deinterlace.h:59
uint8_t * tt2
Definition: deinterlace.h:58
int bytes_left
Definition: deinterlace.h:62
uint8_t * bb1
Definition: deinterlace.h:57
uint8_t * b2
Definition: deinterlace.h:58
uint8_t * b3
Definition: deinterlace.h:59
uint8_t * bb0
Definition: deinterlace.h:56
uint8_t * t0
Definition: deinterlace.h:56
uint8_t * m2
Definition: deinterlace.h:58
uint8_t * tt3
Definition: deinterlace.h:59
uint8_t * t1
Definition: deinterlace.h:57
uint8_t * t2
Definition: deinterlace.h:58
uint8_t * t3
Definition: deinterlace.h:59
uint8_t * bb3
Definition: deinterlace.h:59
uint8_t * m0
Definition: deinterlace.h:56
uint8_t * bb2
Definition: deinterlace.h:58
uint8_t * m1
Definition: deinterlace.h:57
Definition: deinterlace.c:38
const deinterlace_method_t * method
Definition: deinterlace.c:39