xine-lib 1.2.11
Data Structures | Typedefs | Functions
deinterlace.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  deinterlace_scanline_data_s
 
struct  deinterlace_frame_data_s
 
struct  deinterlace_method_s
 

Typedefs

typedef struct deinterlace_method_s deinterlace_method_t
 
typedef struct deinterlace_scanline_data_s deinterlace_scanline_data_t
 
typedef struct deinterlace_frame_data_s deinterlace_frame_data_t
 
typedef void(* deinterlace_interp_scanline_t) (uint8_t *output, deinterlace_scanline_data_t *data, int width)
 
typedef void(* deinterlace_copy_scanline_t) (uint8_t *output, deinterlace_scanline_data_t *data, int width)
 
typedef void(* deinterlace_frame_t) (uint8_t *output, int outstride, deinterlace_frame_data_t *data, int bottom_field, int second_field, int width, int height)
 
typedef struct methodlist_item_sdeinterlace_methods_t
 

Functions

void register_deinterlace_method (deinterlace_methods_t *, const deinterlace_method_t *method)
 
int get_num_deinterlace_methods (deinterlace_methods_t)
 
const deinterlace_method_tget_deinterlace_method (deinterlace_methods_t, int i)
 
void filter_deinterlace_methods (deinterlace_methods_t *, int accel, int fieldsavailable)
 
void free_deinterlace_methods (deinterlace_methods_t *)
 

Typedef Documentation

◆ deinterlace_copy_scanline_t

typedef void(* deinterlace_copy_scanline_t) (uint8_t *output, deinterlace_scanline_data_t *data, int width)

For the copy scanline, the API is basically the same, except that we're given a scanline to 'copy'.

| t-3 t-2 t-1 t | Field 3 | Field 2 | Field 1 | Field 0 | | | TT2 | | TT0 | | T3 | | T1 | | | | M2 | | M0 | | B3 | | B1 | | | | BB2 | | BB0 |

◆ deinterlace_frame_data_t

◆ deinterlace_frame_t

typedef void(* deinterlace_frame_t) (uint8_t *output, int outstride, deinterlace_frame_data_t *data, int bottom_field, int second_field, int width, int height)

Note: second_field is used in xine. For tvtime it should be the same as bottom_field.

◆ deinterlace_interp_scanline_t

typedef void(* deinterlace_interp_scanline_t) (uint8_t *output, deinterlace_scanline_data_t *data, int width)

| t-3 t-2 t-1 t | Field 3 | Field 2 | Field 1 | Field 0 | | TT3 | | TT1 | | | | T2 | | T0 | | M3 | | M1 | | | | B2 | | B0 | | BB3 | | BB1 | |

While all pointers are passed in, each plugin is only guarenteed for the ones it indicates it requires (in the fields_required parameter) to be available.

Pointers are always to scanlines in the standard packed 4:2:2 format.

◆ deinterlace_method_t

Copyright (C) 2002, 2005 Billy Biggs vekto.nosp@m.r@du.nosp@m.mbter.nosp@m.m.ne.nosp@m.t.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA. Our deinterlacer plugin API is modeled after DScaler's. This module represents the API that all deinterlacer plugins must export, and also provides a registration mechanism for the application to be able to iterate through available plugins and select an appropriate one.

◆ deinterlace_methods_t

◆ deinterlace_scanline_data_t

Function Documentation

◆ filter_deinterlace_methods()

void filter_deinterlace_methods ( deinterlace_methods_t methodlist,
int  accel,
int  fieldsavailable 
)

◆ free_deinterlace_methods()

void free_deinterlace_methods ( deinterlace_methods_t methodlist)

References methodlist_item_s::next, and NULL.

Referenced by deinterlace_class_dispose().

◆ get_deinterlace_method()

const deinterlace_method_t * get_deinterlace_method ( deinterlace_methods_t  methodlist,
int  i 
)

Returns the specified method in the list.

References methodlist_item_s::method, and methodlist_item_s::next.

Referenced by deinterlace_draw(), and deinterlace_init_plugin().

◆ get_num_deinterlace_methods()

int get_num_deinterlace_methods ( deinterlace_methods_t  methodlist)

Returns how many deinterlacing methods are available.

References methodlist_item_s::next.

Referenced by deinterlace_init_plugin().

◆ register_deinterlace_method()

void register_deinterlace_method ( deinterlace_methods_t methodlist,
const deinterlace_method_t method 
)

Registers a new deinterlace method.

References methodlist_item_s::method, and methodlist_item_s::next.

Referenced by deinterlace_init_plugin().