#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
#include <math.h>
#include "config.h"
#include "mp_msg.h"
#include "cpudetect.h"
#include "img_format.h"
#include "mp_image.h"
#include "vf.h"
#include "vd_ffmpeg.h"
#include "libvo/fastmemcpy.h"
#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/mem.h"
#include "libavcodec/avcodec.h"
#include "libavcodec/dsputil.h"
Go to the source code of this file.
Data Structures | |
struct | vf_priv_s |
Stores persistant variables. More... | |
Defines | |
#define | BLOCKSZ 12 |
#define | store_slice_s store_slice_mmx |
#define | store_slice2_s store_slice2_mmx |
#define | mul_thrmat_s mul_thrmat_mmx |
#define | column_fidct_s column_fidct_mmx |
#define | row_idct_s row_idct_mmx |
#define | row_fdct_s row_fdct_mmx |
#define | DCTSIZE 8 |
#define | DCTSIZE_S "8" |
#define | FIX(x, s) ((int) ((x) * (1<<s) + 0.5)&0xffff) |
#define | C64(x) ((uint64_t)((x)|(x)<<16))<<32 | (uint64_t)(x) | (uint64_t)(x)<<16 |
#define | FIX64(x, s) C64(FIX(x,s)) |
#define | MULTIPLY16H(x, k) (((x)*(k))>>16) |
#define | THRESHOLD(r, x, t) if(((unsigned)((x)+t))>t*2) r=(x);else r=0; |
#define | DESCALE(x, n) (((x) + (1 << ((n)-1))) >> n) |
Functions | |
static void | store_slice_mmx (uint8_t *dst, int16_t *src, long dst_stride, long src_stride, long width, long height, long log2_scale) |
static void | store_slice2_mmx (uint8_t *dst, int16_t *src, long dst_stride, long src_stride, long width, long height, long log2_scale) |
static void | mul_thrmat_mmx (struct vf_priv_s *p, int q) |
static void | column_fidct_mmx (int16_t *thr_adr, DCTELEM *data, DCTELEM *output, int cnt) |
static void | row_idct_mmx (DCTELEM *workspace, int16_t *output_adr, int output_stride, int cnt) |
static void | row_fdct_mmx (DCTELEM *data, const uint8_t *pixels, int line_size, int cnt) |
static void | filter (struct vf_priv_s *p, uint8_t *dst, uint8_t *src, int dst_stride, int src_stride, int width, int height, uint8_t *qp_store, int qp_stride, int is_luma) |
static int | config (struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt) |
static void | get_image (struct vf_instance *vf, mp_image_t *mpi) |
static int | put_image (struct vf_instance *vf, mp_image_t *mpi, double pts) |
static void | uninit (struct vf_instance *vf) |
static int | query_format (struct vf_instance *vf, unsigned int fmt) |
static int | control (struct vf_instance *vf, int request, void *data) |
static int | vf_open (vf_instance_t *vf, char *args) |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_382683433) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_541196100) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_707106781) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_1_306562965) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_1_414213562_A) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_1_847759065) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_2_613125930) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_1_414213562) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_1_082392200) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_847759065) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_566454497) | |
DECLARE_ASM_CONST (8, uint64_t, MM_FIX_0_198912367) | |
DECLARE_ASM_CONST (8, uint64_t, MM_DESCALE_RND) | |
DECLARE_ASM_CONST (8, uint64_t, MM_2) | |
Variables | |
static const short | custom_threshold [64] |
static const uint8_t | dither [8][8] |
const vf_info_t | vf_info_fspp |
#define C64 | ( | x | ) | ((uint64_t)((x)|(x)<<16))<<32 | (uint64_t)(x) | (uint64_t)(x)<<16 |
#define column_fidct_s column_fidct_mmx |
#define DCTSIZE_S "8" |
Definition at line 700 of file vf_fspp.c.
Referenced by column_fidct_mmx(), row_fdct_mmx(), and row_idct_mmx().
#define mul_thrmat_s mul_thrmat_mmx |
#define store_slice2_s store_slice2_mmx |
#define store_slice_s store_slice_mmx |
static int config | ( | struct vf_instance * | vf, | |
int | width, | |||
int | height, | |||
int | d_width, | |||
int | d_height, | |||
unsigned int | flags, | |||
unsigned int | outfmt | |||
) | [static] |
static int control | ( | struct vf_instance * | vf, | |
int | request, | |||
void * | data | |||
) | [static] |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_2 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_DESCALE_RND | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_198912367 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_566454497 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_847759065 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_1_082392200 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_1_414213562 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_2_613125930 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_1_847759065 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_1_414213562_A | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_1_306562965 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_707106781 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_541196100 | ||||
) |
DECLARE_ASM_CONST | ( | 8 | , | |
uint64_t | , | |||
MM_FIX_0_382683433 | ||||
) |
static void filter | ( | struct vf_priv_s * | p, | |
uint8_t * | dst, | |||
uint8_t * | src, | |||
int | dst_stride, | |||
int | src_stride, | |||
int | width, | |||
int | height, | |||
uint8_t * | qp_store, | |||
int | qp_stride, | |||
int | is_luma | |||
) | [static] |
static void get_image | ( | struct vf_instance * | vf, | |
mp_image_t * | mpi | |||
) | [static] |
static void mul_thrmat_mmx | ( | struct vf_priv_s * | p, | |
int | q | |||
) | [static] |
static int put_image | ( | struct vf_instance * | vf, | |
mp_image_t * | mpi, | |||
double | pts | |||
) | [static] |
static int query_format | ( | struct vf_instance * | vf, | |
unsigned int | fmt | |||
) | [static] |
static void row_fdct_mmx | ( | DCTELEM * | data, | |
const uint8_t * | pixels, | |||
int | line_size, | |||
int | cnt | |||
) | [static] |
static void store_slice2_mmx | ( | uint8_t * | dst, | |
int16_t * | src, | |||
long | dst_stride, | |||
long | src_stride, | |||
long | width, | |||
long | height, | |||
long | log2_scale | |||
) | [static] |
static void store_slice_mmx | ( | uint8_t * | dst, | |
int16_t * | src, | |||
long | dst_stride, | |||
long | src_stride, | |||
long | width, | |||
long | height, | |||
long | log2_scale | |||
) | [static] |
static void uninit | ( | struct vf_instance * | vf | ) | [static] |
static int vf_open | ( | vf_instance_t * | vf, | |
char * | args | |||
) | [static] |
const short custom_threshold[64] [static] |
Initial value:
{ 71, 296, 295, 237, 71, 40, 38, 19, 245, 193, 185, 121, 102, 73, 53, 27, 158, 129, 141, 107, 97, 73, 50, 26, 102, 116, 109, 98, 82, 66, 45, 23, 71, 94, 95, 81, 70, 56, 38, 20, 56, 77, 74, 66, 56, 44, 30, 15, 38, 53, 50, 45, 38, 30, 21, 11, 20, 27, 26, 23, 20, 15, 11, 5 }
Definition at line 63 of file vf_fspp.c.
Referenced by vf_open().
const uint8_t dither[8][8] [static] |
Initial value:
{ { 0, 48, 12, 60, 3, 51, 15, 63, }, { 32, 16, 44, 28, 35, 19, 47, 31, }, { 8, 56, 4, 52, 11, 59, 7, 55, }, { 40, 24, 36, 20, 43, 27, 39, 23, }, { 2, 50, 14, 62, 1, 49, 13, 61, }, { 34, 18, 46, 30, 33, 17, 45, 29, }, { 10, 58, 6, 54, 9, 57, 5, 53, }, { 42, 26, 38, 22, 41, 25, 37, 21, }, }
Definition at line 77 of file vf_fspp.c.
Referenced by ac3_decode_transform_coeffs_ch(), filter(), render_charset(), rv40_loop_filter(), store_slice2_mmx(), store_slice_c(), store_slice_mmx(), and yuv2yuvX_TMPL().
const vf_info_t vf_info_fspp |