FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
checkasm.c File Reference
#include "config.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "checkasm.h"
#include "libavutil/common.h"
#include "libavutil/cpu.h"
#include "libavutil/intfloat.h"
#include "libavutil/random_seed.h"

Go to the source code of this file.

Data Structures

struct  CheckasmFuncVersion
 
struct  CheckasmFunc
 

Macros

#define COLOR_RED   1
 
#define COLOR_GREEN   2
 
#define COLOR_YELLOW   3
 
#define isatty(fd)   1
 
#define is_red(f)   ((f) && !(f)->color)
 

Functions

static int is_negative (union av_intfloat32 u)
 
int float_near_ulp (float a, float b, unsigned max_ulp)
 
int float_near_ulp_array (const float *a, const float *b, unsigned max_ulp, unsigned len)
 
int float_near_abs_eps (float a, float b, float eps)
 
int float_near_abs_eps_array (const float *a, const float *b, float eps, unsigned len)
 
int float_near_abs_eps_ulp (float a, float b, float eps, unsigned max_ulp)
 
int float_near_abs_eps_array_ulp (const float *a, const float *b, float eps, unsigned max_ulp, unsigned len)
 
int double_near_abs_eps (double a, double b, double eps)
 
int double_near_abs_eps_array (const double *a, const double *b, double eps, unsigned len)
 
static void color_printf (int color, const char *fmt,...)
 
static void destroy_func_tree (CheckasmFunc *f)
 
static voidcheckasm_malloc (size_t size)
 
static const char * cpu_suffix (int cpu)
 
static int cmp_nop (const void *a, const void *b)
 
static int measure_nop_time (void)
 
static void print_benchs (CheckasmFunc *f)
 
static int cmp_func_names (const char *a, const char *b)
 
static CheckasmFuncrotate_tree (CheckasmFunc *f, int dir)
 
static void balance_tree (CheckasmFunc **root)
 
static CheckasmFuncget_func (CheckasmFunc **root, const char *name)
 
static void check_cpu_flag (const char *name, int flag)
 
static void print_cpu_name (void)
 
static int bench_init_ffmpeg (void)
 
static int bench_init (void)
 
static void bench_uninit (void)
 
int main (int argc, char *argv[])
 
voidcheckasm_check_func (void *func, const char *name,...)
 
int checkasm_bench_func (void)
 
void checkasm_fail_func (const char *msg,...)
 
CheckasmPerfcheckasm_get_perf_context (void)
 
void checkasm_report (const char *name,...)
 

Variables

struct {
   const char *   name
 
   void(*   func )(void)
 
tests []
 
struct {
   const char *   name
 
   const char *   suffix
 
   int   flag
 
cpus []
 
struct {
   CheckasmFunc *   funcs
 
   CheckasmFunc *   current_func
 
   CheckasmFuncVersion *   current_func_ver
 
   const char *   current_test_name
 
   const char *   bench_pattern
 
   int   bench_pattern_len
 
   int   num_checked
 
   int   num_failed
 
   int   nop_time
 
   int   sysfd
 
   int   cpu_flag
 
   const char *   cpu_flag_name
 
   const char *   test_name
 
state
 
AVLFG checkasm_lfg
 

Macro Definition Documentation

#define COLOR_RED   1

Definition at line 51 of file checkasm.c.

Referenced by checkasm_report().

#define COLOR_GREEN   2

Definition at line 52 of file checkasm.c.

Referenced by checkasm_report().

#define COLOR_YELLOW   3

Definition at line 53 of file checkasm.c.

Referenced by print_cpu_name().

#define isatty (   fd)    1

Definition at line 61 of file checkasm.c.

Referenced by av_log_default_callback(), check_color_terminal(), and color_printf().

#define is_red (   f)    ((f) && !(f)->color)

Definition at line 514 of file checkasm.c.

Referenced by balance_tree().

Function Documentation

static int is_negative ( union av_intfloat32  u)
static

Definition at line 262 of file checkasm.c.

Referenced by float_near_ulp().

int float_near_ulp ( float  a,
float  b,
unsigned  max_ulp 
)

Definition at line 267 of file checkasm.c.

Referenced by float_near_abs_eps_ulp(), and float_near_ulp_array().

int float_near_ulp_array ( const float *  a,
const float *  b,
unsigned  max_ulp,
unsigned  len 
)

Definition at line 285 of file checkasm.c.

Referenced by checkasm_check_audiodsp(), and checkasm_check_fmtconvert().

int float_near_abs_eps ( float  a,
float  b,
float  eps 
)
int float_near_abs_eps_array ( const float *  a,
const float *  b,
float  eps,
unsigned  len 
)
int float_near_abs_eps_ulp ( float  a,
float  b,
float  eps,
unsigned  max_ulp 
)

Definition at line 320 of file checkasm.c.

Referenced by checkasm_check_synth_filter(), and float_near_abs_eps_array_ulp().

int float_near_abs_eps_array_ulp ( const float *  a,
const float *  b,
float  eps,
unsigned  max_ulp,
unsigned  len 
)

Definition at line 325 of file checkasm.c.

int double_near_abs_eps ( double  a,
double  b,
double  eps 
)
int double_near_abs_eps_array ( const double *  a,
const double *  b,
double  eps,
unsigned  len 
)

Definition at line 344 of file checkasm.c.

static void color_printf ( int  color,
const char *  fmt,
  ... 
)
static

Definition at line 357 of file checkasm.c.

Referenced by checkasm_report(), and print_cpu_name().

static void destroy_func_tree ( CheckasmFunc f)
static

Definition at line 400 of file checkasm.c.

Referenced by checkasm_malloc(), and main().

static void* checkasm_malloc ( size_t  size)
static

Definition at line 417 of file checkasm.c.

Referenced by checkasm_check_func(), and get_func().

static const char* cpu_suffix ( int  cpu)
static

Definition at line 429 of file checkasm.c.

Referenced by checkasm_fail_func(), and print_benchs().

static int cmp_nop ( const void a,
const void b 
)
static

Definition at line 440 of file checkasm.c.

Referenced by measure_nop_time().

static int measure_nop_time ( void  )
static

Definition at line 446 of file checkasm.c.

Referenced by bench_init().

static void print_benchs ( CheckasmFunc f)
static

Definition at line 467 of file checkasm.c.

Referenced by main().

static int cmp_func_names ( const char *  a,
const char *  b 
)
static

Definition at line 489 of file checkasm.c.

Referenced by get_func().

static CheckasmFunc* rotate_tree ( CheckasmFunc f,
int  dir 
)
static

Definition at line 504 of file checkasm.c.

Referenced by balance_tree().

static void balance_tree ( CheckasmFunc **  root)
static

Definition at line 517 of file checkasm.c.

Referenced by get_func().

static CheckasmFunc* get_func ( CheckasmFunc **  root,
const char *  name 
)
static

Definition at line 533 of file checkasm.c.

Referenced by checkasm_check_func().

static void check_cpu_flag ( const char *  name,
int  flag 
)
static

Definition at line 558 of file checkasm.c.

Referenced by main().

static void print_cpu_name ( void  )
static

Definition at line 581 of file checkasm.c.

Referenced by checkasm_fail_func(), and checkasm_report().

static int bench_init_ffmpeg ( void  )
static

Definition at line 612 of file checkasm.c.

Referenced by bench_init().

static int bench_init ( void  )
static

Definition at line 623 of file checkasm.c.

Referenced by main().

static void bench_uninit ( void  )
static

Definition at line 638 of file checkasm.c.

Referenced by main().

int main ( int  argc,
char *  argv[] 
)

Definition at line 646 of file checkasm.c.

void* checkasm_check_func ( void func,
const char *  name,
  ... 
)

Definition at line 705 of file checkasm.c.

int checkasm_bench_func ( void  )

Definition at line 752 of file checkasm.c.

void checkasm_fail_func ( const char *  msg,
  ... 
)

Definition at line 759 of file checkasm.c.

CheckasmPerf* checkasm_get_perf_context ( void  )

Definition at line 777 of file checkasm.c.

void checkasm_report ( const char *  name,
  ... 
)

Definition at line 786 of file checkasm.c.

Variable Documentation

const char* name

Definition at line 72 of file checkasm.c.

Referenced by check_cpu_flag().

void(* func)(void)

Definition at line 73 of file checkasm.c.

Referenced by checkasm_check_func(), and main().

const { ... } tests[]

Referenced by check_cpu_flag(), and main().

const char* suffix
int flag

Definition at line 183 of file checkasm.c.

Referenced by cpu_suffix(), and main().

const { ... } cpus[]

Referenced by cpu_suffix(), and main().

CheckasmFunc* funcs

Definition at line 240 of file checkasm.c.

Referenced by filter_frame(), init_axis_color(), and init_volume().

CheckasmFunc* current_func

Definition at line 241 of file checkasm.c.

CheckasmFuncVersion* current_func_ver

Definition at line 242 of file checkasm.c.

const char* current_test_name

Definition at line 243 of file checkasm.c.

const char* bench_pattern

Definition at line 244 of file checkasm.c.

int bench_pattern_len

Definition at line 245 of file checkasm.c.

int num_checked

Definition at line 246 of file checkasm.c.

int num_failed

Definition at line 247 of file checkasm.c.

int nop_time

Definition at line 250 of file checkasm.c.

int sysfd

Definition at line 251 of file checkasm.c.

Referenced by measure_nop_time().

int cpu_flag

Definition at line 253 of file checkasm.c.

Referenced by main().

const char* cpu_flag_name

Definition at line 254 of file checkasm.c.

const char* test_name

Definition at line 255 of file checkasm.c.

struct { ... } state

Referenced by adts_aac_read_header(), adx_parse(), apng_probe(), av_assert0_fpu(), av_lzo1x_decode(), av_rc4_crypt(), av_rc4_init(), avi_read_packet(), avpriv_fits_header_init(), avs2_find_frame_end(), avs2_probe(), bench_init(), bench_uninit(), bfi_read_packet(), bmp_parse(), cavs_find_frame_end(), check_cpu_flag(), checkasm_bench_func(), checkasm_check_func(), checkasm_fail_func(), checkasm_get_perf_context(), checkasm_malloc(), checkasm_report(), convert_samples(), dca_find_frame_end(), decode_cabac_intra_mb_type(), decode_line_TMPL(), decode_slice_header(), delta_decode(), dnxhd_find_frame_end(), dpx_parse(), draw_scope(), dts_probe(), dv_probe(), dv_read_header(), dxv_decompress_cgo(), dxv_decompress_dxt1(), dxv_decompress_dxt5(), dxv_decompress_yo(), encode_frame(), encode_line_TMPL(), encode_picture_ls(), encode_slice_header(), extract_extradata_mpeg12(), extract_extradata_mpeg4(), extract_extradata_vc1(), ff_dither_alloc(), ff_h263_find_frame_end(), ff_jpegls_decode_picture(), ff_mpeg1_find_frame_end(), ff_mpeg4_find_frame_end(), ff_mpeg4video_split(), ff_rtp_send_h263_rfc2190(), ff_spdif_probe(), ff_spdif_read_packet(), filter_frame(), find_any_startcode(), find_frame_end(), find_group3_syncmarker(), find_next_start_code(), find_start_code(), get_cabac_inline(), get_rac(), h261_find_frame_end(), h264_find_frame_end(), h264_split(), hevc_split(), iterative_me(), jpeg_probe(), latm_find_frame_end(), libAVFilter_GetState(), libAVFilter_Pause(), libAVFilter_Run(), libAVFilter_Stop(), libgsm_encode_frame(), main(), measure_nop_time(), mlp_filter_channel(), mpegaudio_parse(), mpegts_write_packet_internal(), mpegvideo_split(), mxf_parse_h264_frame(), nc_read_packet(), opus_find_frame_end(), parse_adaptation_sets(), parse_nal_units(), parse_presentation_segment(), print_benchs(), print_cpu_name(), pulse_context_wait(), pulse_read_header(), pulse_stream_wait(), put_cabac(), put_rac(), read_extra_header(), read_header(), read_high_coeffs(), read_low_coeffs(), read_quant_table(), rm_sync(), s337m_probe(), s337m_read_packet(), svc_decode_frame(), uninit(), vc1_split(), write_extradata(), write_header(), and write_quant_table().

AVLFG checkasm_lfg

Definition at line 259 of file checkasm.c.