xine-lib 1.2.13-20230125hg15249
Functions | Variables
vfir.c File Reference
#include <stdio.h>
#include <stdint.h>
#include <xine/attributes.h>
#include <xine/xineutils.h>
#include "xine_mmx.h"
#include "speedy.h"
#include "deinterlace.h"
#include "plugins.h"

Functions

static void deinterlace_line (uint8_t *dst, uint8_t *lum_m4, uint8_t *lum_m3, uint8_t *lum_m2, uint8_t *lum_m1, uint8_t *lum, int size)
 
static void deinterlace_scanline_vfir (uint8_t *output, deinterlace_scanline_data_t *data, int width)
 
static void copy_scanline (uint8_t *output, deinterlace_scanline_data_t *data, int width)
 
const deinterlace_method_tvfir_get_method (void)
 

Variables

static const deinterlace_method_t vfirmethod
 

Function Documentation

◆ copy_scanline()

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

◆ deinterlace_line()

static void deinterlace_line ( uint8_t * dst,
uint8_t * lum_m4,
uint8_t * lum_m3,
uint8_t * lum_m2,
uint8_t * lum_m1,
uint8_t * lum,
int size )
static

This file contains code from ffmpeg, see http://ffmpeg.org/

Originated in imgconvert.c: Misc image convertion routines Copyright (c) 2001, 2002, 2003 Fabrice Bellard.

tvtime port Copyright (C) 2003 Billy Biggs vekto.nosp@m.r@du.nosp@m.mbter.nosp@m.m.ne.nosp@m.t.

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. The MPEG2 spec uses a slightly harsher filter, they specify [-1 8 2 8 -1]. ffmpeg uses a similar filter but with more of a tendancy to blur than to use the local information. The filter taps here are: [-1 4 2 4 -1].

C implementation.

References emms, movd_m2r, movd_r2m, movq_m2r, packuswb_r2r, paddw_r2r, psllw_i2r, psrlw_i2r, psubusw_r2r, punpcklbw_r2r, pxor_r2r, and mmx_t::uw.

Referenced by deinterlace_scanline_vfir().

◆ deinterlace_scanline_vfir()

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

◆ vfir_get_method()

const deinterlace_method_t * vfir_get_method ( void )

References vfirmethod.

Referenced by deinterlace_init_plugin().

Variable Documentation

◆ vfirmethod

const deinterlace_method_t vfirmethod
static
Initial value:
=
{
"Vertical Blend (ffmpeg)",
"Vertical",
1,
0,
0,
1,
0,
0,
"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"
"Vertical mode blurs favouring the most recent field for less visible "
"trails. From the deinterlacer filter in ffmpeg."
}
static void deinterlace_scanline_vfir(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition vfir.c:117
static void copy_scanline(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition vfir.c:124

Referenced by vfir_get_method().