xine-lib: xine-lib-1.2.12/src/post/deinterlace/plugins/linearblend.c File Reference

xine-lib 1.2.12

Functions | Variables
linearblend.c File Reference
`#include <stdio.h>`
`#include <stdint.h>`
`#include <xine/attributes.h>`
`#include <xine/xineutils.h>`
`#include "xine_mmx.h"`
`#include "speedtools.h"`
`#include "speedy.h"`
`#include "deinterlace.h"`
`#include "plugins.h"`

## Functions
static void | deinterlace_scanline_linear_blend (uint8_t *output, deinterlace_scanline_data_t *data, int width)
static void | deinterlace_scanline_linear_blend2 (uint8_t *output, deinterlace_scanline_data_t *data, int width)
const deinterlace_method_t * | linearblend_get_method (void)

## Variables
static const char | linearblendmethod_help []
static const deinterlace_method_t | linearblendmethod

## Function Documentation

## ◆ deinterlace_scanline_linear_blend()

static void deinterlace_scanline_linear_blend | ( | uint8_t * | output,
|  | deinterlace_scanline_data_t * | data,
|  | int | width
| ) |  |
| static

References deinterlace_scanline_data_s::b0, emms, deinterlace_scanline_data_s::m1, movd_m2r, movd_r2m, packuswb_r2r, paddw_r2r, psllw_i2r, psrlw_i2r, punpcklbw_r2r, pxor_r2r, deinterlace_scanline_data_s::t0, and width.

## ◆ deinterlace_scanline_linear_blend2()

static void deinterlace_scanline_linear_blend2 | ( | uint8_t * | output,
|  | deinterlace_scanline_data_t * | data,
|  | int | width
| ) |  |
| static

References deinterlace_scanline_data_s::b1, emms, deinterlace_scanline_data_s::m0, movd_m2r, movd_r2m, packuswb_r2r, paddw_r2r, psllw_i2r, psrlw_i2r, punpcklbw_r2r, pxor_r2r, deinterlace_scanline_data_s::t1, and width.

## ◆ linearblend_get_method()

const deinterlace_method_t * linearblend_get_method | ( | void |  | ) |

References linearblendmethod, MM_ACCEL_X86_MMXEXT, and xine_mm_accel().

Referenced by deinterlace_init_plugin().

## Variable Documentation

## ◆ linearblendmethod

const deinterlace_method_t linearblendmethod
| static

Initial value:
=
{
.name = "Linear Blend (mplayer)",
.short_name = "LinearBlend",
.fields_required = 2,
.accelrequired = 0,
.doscalerbob = 0,
.scanlinemode = 1,
.interpolate_scanline = deinterlace_scanline_linear_blend,
.copy_scanline = deinterlace_scanline_linear_blend2,
.deinterlace_frame = 0,
.delaysfield = 0,
.description = linearblendmethod_help
}
deinterlace_scanline_linear_blend
static void deinterlace_scanline_linear_blend(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: linearblend.c:50
deinterlace_scanline_linear_blend2
static void deinterlace_scanline_linear_blend2(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: linearblend.c:114
linearblendmethod_help
static const char linearblendmethod_help[]
Definition: linearblend.c:42

Referenced by linearblend_get_method().

## ◆ linearblendmethod_help

const char linearblendmethod_help[]
| static

Initial value:
=
"Avoids flicker by blurring consecutive frames of input. Use this if "
"you want to run your monitor at an arbitrary refresh rate and not use "
"much CPU, and are willing to sacrifice detail.\n"
"\n"
"Temporal mode evenly blurs content for least flicker, but with visible "
"trails on fast motion. From the linear blend deinterlacer in mplayer."

Linear blend deinterlacing plugin. The idea for this algorithm came from the linear blend deinterlacer which originated in the mplayer sources.

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

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.