xine-lib: xine-lib-1.2.13/src/xine-utils/memcpy.c File Reference

xine-lib 1.2.13-20230125hg15249

Macros | Functions | Variables
memcpy.c File Reference
`#include <time.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <xine/xine_internal.h>`
`#include "../xine-engine/xine_private.h"`

## Macros
#define | ARCH_WARN
#define | LOG_MODULE "memcpy"
#define | LOG_VERBOSE
#define | BUFSIZE 1024*1024

## Functions
static uint64_t | rdtsc (int config_flags)
static int | xine_probe_fast_memcpy_int (xine_t *xine)
static void | update_fast_memcpy (void *user_data, xine_cfg_entry_t *entry)
void | xine_probe_fast_memcpy (xine_t *xine)
| Benchmark available memcpy methods.

## Variables
void *(* | xine_fast_memcpy )(void *to, const void *from, size_t len) = NULL
struct { |
const char name [16] |
void *(*const function )(void *to, const void *from, size_t len) |
uint32_t cpu_require |
} | memcpy_method [] |
static uint64_t | memcpy_timing [sizeof(memcpy_method)/sizeof(memcpy_method[0])] = { 0, }

## Macro Definition Documentation

## ◆ ARCH_WARN

#define ARCH_WARN

## ◆ BUFSIZE

#define BUFSIZE 1024*1024

Referenced by xine_probe_fast_memcpy_int().

## ◆ LOG_MODULE

#define LOG_MODULE "memcpy"

## ◆ LOG_VERBOSE

#define LOG_VERBOSE

## Function Documentation

## ◆ rdtsc()

static uint64_t rdtsc | ( | int | config_flags | ) |
| static

Referenced by xine_probe_fast_memcpy_int(), xine_profiler_print_results(), xine_profiler_start_count(), and xine_profiler_stop_count().

## ◆ update_fast_memcpy()

static void update_fast_memcpy | ( | void * | user_data,
|  | xine_cfg_entry_t * | entry )
| static

References xine_s::config, cpu_require, memcpy_method, name, xine_cfg_entry_s::num_value, config_values_s::update_num, user_data(), xine_fast_memcpy, xine_mm_accel(), xine_probe_fast_memcpy_int(), XINE_VERBOSITY_DEBUG, and xprintf.

Referenced by xine_probe_fast_memcpy().

## ◆ xine_probe_fast_memcpy()

void xine_probe_fast_memcpy | ( | xine_t * | xine | ) |

Benchmark available memcpy methods.

References _, xine_s::config, NULL, config_values_s::register_enum, update_fast_memcpy(), config_values_s::update_num, and xine_fast_memcpy.

Referenced by xine_init().

## ◆ xine_probe_fast_memcpy_int()

static int xine_probe_fast_memcpy_int | ( | xine_t * | xine | ) |
| static

References _, BUFSIZE, cpu_require, memcpy_method, memcpy_timing, name, NULL, rdtsc(), xine_mm_accel(), XINE_VERBOSITY_LOG, and xprintf.

Referenced by update_fast_memcpy().

## Variable Documentation

## ◆ cpu_require

uint32_t cpu_require

Referenced by update_fast_memcpy(), and xine_probe_fast_memcpy_int().

## ◆ function

void *(*const function) (void *to, const void *from, size_t len) | ( | void * | to,
|  | const void * | from,
|  | size_t | len )

Referenced by error_callback(), and gsl_enternamespace().

## ◆ [struct]

const struct { ... } memcpy_method[]

Initial value:
=
{
{ "", NULL, 0 },
{ "libc", memcpy, 0 },
{ "", NULL, 0 }
}
NULL
NULL
Definition xine_plugin.c:78

Referenced by update_fast_memcpy(), and xine_probe_fast_memcpy_int().

## ◆ memcpy_timing

uint64_t memcpy_timing[sizeof(memcpy_method)/sizeof(memcpy_method[0])] = { 0, }
| static

Referenced by xine_probe_fast_memcpy_int().

## ◆ name

const char name[16]

Referenced by update_fast_memcpy(), and xine_probe_fast_memcpy_int().

## ◆ xine_fast_memcpy

void *(* xine_fast_memcpy) (void *to, const void *from, size_t len) | ( | void * | to,
|  | const void * | from,
|  | size_t | len ) = NULL

Referenced by _aom_decode_data(), _copy_plane(), _copy_plane(), _dav1d_decode_data(), _upload_texture(), _x_demux_send_data(), _x_va_frame_duplicate_frame_data(), _x_yv12_to_nv12(), _xine_buffer_copyin(), ao_coreaudio_render_proc(), ao_coreaudio_write(), ao_resend_store(), asf_send_buffer_defrag(), audio_fill(), bitplane_decode_data(), cache_plugin_read(), collect_data(), copy_chunk(), copy_slice(), DeinterlaceGreedy2Frame_MMX(), DeinterlaceGreedy2Frame_SSE2(), demux_real_send_chunk(), demux_str_send_chunk(), demux_vc1_es_send_headers(), demux_wv_send_chunk(), draw_fftgraph(), dvaudio_decode_data(), dxr3_spudec_decode_data(), dxr3_spudec_update_nav(), eq2_draw(), eq_draw(), fb_display_frame(), ff_audio_decode_data(), ff_convert_frame(), ff_handle_buffer(), ff_handle_header_buffer(), ff_handle_header_buffer(), flac_decode_data(), flac_read_callback(), fooaudio_decode_data(), foovideo_decode_data(), frame_copy_content(), gnutls_tcp_pull(), goom_update(), gsm610_decode_data(), handle_realvideo(), handle_sub_utf8(), handle_vobsub(), hevc_decode_data(), init_codec_real(), init_codec_video(), init_codec_vobsub(), init_codec_xiph(), macosx_display_frame(), mad_decode_data(), mms_read(), mmsh_read(), mpc_decode_data(), mpc_reader_read(), nsf_decode_data(), open_dts_file(), open_plugin(), parse_block(), parse_frame(), post_intercept_video_frame(), pvr_plugin_read_block(), qtv_decode_data(), readin_op(), realdec_decode_data(), rgb_decode_data(), scale_line_1_1(), spudec_decode_data(), spudec_process(), stdin_plugin_read(), test_plugin_read(), unsharp(), update_fast_memcpy(), v4l2_input_dequeue_video_buffer(), v4l_plugin_read_block(), vaapi_overlay_end(), vaapi_ovl_associate(), vdpau_h264_alter_frame_render(), vdpau_mpeg12_decode_data(), vdpau_mpeg4_decode_data(), vdpau_vc1_decode_data(), vdr_execute_rpc_command(), vorbis_decode_data(), vpx_decode_data(), w32a_decode_audio(), w32v_decode_data(), wavpack_decode_data(), win32_display_frame(), write_frame_YUV420P2(), xine_buffer_copyout(), xine_buffer_dup(), xine_buffer_read_bytes(), xine_config_save(), xine_memdup(), xine_memdup0(), xine_probe_fast_memcpy(), xine_realloc_aligned(), xxmc_do_update_frame(), yuv2frame(), yuv2rgb_c_16(), yuv2rgb_c_24_bgr(), yuv2rgb_c_24_rgb(), yuv2rgb_c_32(), yuv2rgb_c_8(), yuv2rgb_c_gray(), yuv2rgb_c_palette(), yuv411_to_yv12_c(), yuv9_to_yv12_c(), yuv_decode_data(), yuy22rgb_c_16(), yuy22rgb_c_24_bgr(), yuy22rgb_c_24_rgb(), yuy22rgb_c_32(), yuy22rgb_c_8(), yuy22rgb_c_gray(), and yuy22rgb_c_palette().