MythTV  master
Classes | Macros | Typedefs | Functions | Variables
filter_kerneldeint.c File Reference
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include "mythconfig.h"
#include <string.h>
#include <math.h>
#include <pthread.h>
#include "filter.h"
#include "mythframe.h"
#include "mythlogging.h"
#include "../mm_arch.h"
Include dependency graph for filter_kerneldeint.c:

Go to the source code of this file.

Classes

struct  DeintThread
 
struct  ThisFilter
 

Macros

#define ABS(A)   ( (A) > 0 ? (A) : -(A) )
 
#define CLAMP(A, L, U)   ((A)>(U)?(U):((A)<(L)?(L):(A)))
 
#define mmx_t   int
 

Typedefs

typedef struct ThisFilter ThisFilter
 

Functions

static void line_filter_c_fast (uint8_t *dst, int width, int start_width, uint8_t *buf, const uint8_t *src2, const uint8_t *src3, const uint8_t *src4, const uint8_t *src5)
 
static void line_filter_c (uint8_t *dst, int width, int start_width, const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, const uint8_t *src4, const uint8_t *src5)
 
static void store_ref (struct ThisFilter *p, uint8_t *src, int src_offsets[3], int src_stride[3], int width, int height)
 
static int AllocFilter (ThisFilter *filter, int width, int height)
 
static void filter_func (struct ThisFilter *p, uint8_t *dst, int dst_offsets[3], int dst_stride[3], int width, int height, int parity, int tff, int double_rate, int dirty, int this_slice, int total_slices)
 
static void * KernelThread (void *args)
 
static int KernelDeint (VideoFilter *f, VideoFrame *frame, int field)
 
static void CleanupKernelDeintFilter (VideoFilter *f)
 
static VideoFilterNewKernelDeintFilter (VideoFrameType inpixfmt, VideoFrameType outpixfmt, const int *width, const int *height, const char *options, int threads)
 

Variables

static FmtConv FmtList []
 
const FilterInfo filter_table []
 

Macro Definition Documentation

◆ ABS

#define ABS (   A)    ( (A) > 0 ? (A) : -(A) )

Definition at line 24 of file filter_kerneldeint.c.

◆ CLAMP

#define CLAMP (   A,
  L,
 
)    ((A)>(U)?(U):((A)<(L)?(L):(A)))

Definition at line 25 of file filter_kerneldeint.c.

◆ mmx_t

#define mmx_t   int

Definition at line 36 of file filter_kerneldeint.c.

Typedef Documentation

◆ ThisFilter

typedef struct ThisFilter ThisFilter

Function Documentation

◆ line_filter_c_fast()

static void line_filter_c_fast ( uint8_t *  dst,
int  width,
int  start_width,
uint8_t *  buf,
const uint8_t *  src2,
const uint8_t *  src3,
const uint8_t *  src4,
const uint8_t *  src5 
)
static

Definition at line 79 of file filter_kerneldeint.c.

Referenced by NewKernelDeintFilter().

◆ line_filter_c()

static void line_filter_c ( uint8_t *  dst,
int  width,
int  start_width,
const uint8_t *  src1,
const uint8_t *  src2,
const uint8_t *  src3,
const uint8_t *  src4,
const uint8_t *  src5 
)
static

Definition at line 94 of file filter_kerneldeint.c.

Referenced by NewKernelDeintFilter().

◆ store_ref()

static void store_ref ( struct ThisFilter p,
uint8_t *  src,
int  src_offsets[3],
int  src_stride[3],
int  width,
int  height 
)
static

Definition at line 209 of file filter_kerneldeint.c.

Referenced by KernelDeint().

◆ AllocFilter()

static int AllocFilter ( ThisFilter filter,
int  width,
int  height 
)
static

Definition at line 241 of file filter_kerneldeint.c.

Referenced by KernelDeint(), and NewKernelDeintFilter().

◆ filter_func()

static void filter_func ( struct ThisFilter p,
uint8_t *  dst,
int  dst_offsets[3],
int  dst_stride[3],
int  width,
int  height,
int  parity,
int  tff,
int  double_rate,
int  dirty,
int  this_slice,
int  total_slices 
)
static

Definition at line 268 of file filter_kerneldeint.c.

Referenced by KernelDeint(), and KernelThread().

◆ KernelThread()

static void* KernelThread ( void *  args)
static

Definition at line 418 of file filter_kerneldeint.c.

Referenced by NewKernelDeintFilter().

◆ KernelDeint()

static int KernelDeint ( VideoFilter f,
VideoFrame frame,
int  field 
)
static

Definition at line 451 of file filter_kerneldeint.c.

Referenced by NewKernelDeintFilter().

◆ CleanupKernelDeintFilter()

static void CleanupKernelDeintFilter ( VideoFilter f)
static

Definition at line 511 of file filter_kerneldeint.c.

Referenced by NewKernelDeintFilter().

◆ NewKernelDeintFilter()

static VideoFilter* NewKernelDeintFilter ( VideoFrameType  inpixfmt,
VideoFrameType  outpixfmt,
const int *  width,
const int *  height,
const char *  options,
int  threads 
)
static

Definition at line 534 of file filter_kerneldeint.c.

Variable Documentation

◆ FmtList

FmtConv FmtList[]
static
Initial value:
=
{
}
#define FMT_NULL
Definition: filter.h:20

Definition at line 655 of file filter_kerneldeint.c.

◆ filter_table

const FilterInfo filter_table[]
Initial value:
=
{
{
.filter_init= &NewKernelDeintFilter,
.name= (char*)"kerneldeint",
.descript= (char*)"combines data from several fields to deinterlace "
"with less motion blur",
.formats= FmtList,
.libname= NULL
},
{
.filter_init= &NewKernelDeintFilter,
.name= (char*)"kerneldoubleprocessdeint",
.descript= (char*)"combines data from several fields to deinterlace "
"with less motion blur",
.formats= FmtList,
.libname= NULL
},
}
static VideoFilter * NewKernelDeintFilter(VideoFrameType inpixfmt, VideoFrameType outpixfmt, const int *width, const int *height, const char *options, int threads)
#define NULL
Definition: H264Parser.h:62
static FmtConv FmtList[]
#define FILT_NULL
Definition: filter.h:47

Definition at line 661 of file filter_kerneldeint.c.