copy.c File Reference

Include dependency graph for copy.c:


Defines

#define COPY64(dstp, srcp, load, store)
#define ASM_SSE2(cpu, op)
#define LOAD64
#define STORE2X32

Functions

static void CopyFromUswc (uint8_t *dst, size_t dst_pitch, const uint8_t *src, size_t src_pitch, unsigned unaligned, unsigned width, unsigned height, unsigned cpu)
static void Copy2d (uint8_t *dst, size_t dst_pitch, const uint8_t *src, size_t src_pitch, unsigned width, unsigned height, unsigned cpu)
static void SplitUV (uint8_t *dstu, size_t dstu_pitch, uint8_t *dstv, size_t dstv_pitch, const uint8_t *src, size_t src_pitch, unsigned width, unsigned height, unsigned cpu)
static void CopyPlane (uint8_t *dst, size_t dst_pitch, const uint8_t *src, size_t src_pitch, uint8_t *cache, size_t cache_size, unsigned width, unsigned height, unsigned cpu)
static void SplitPlanes (uint8_t *dstu, size_t dstu_pitch, uint8_t *dstv, size_t dstv_pitch, const uint8_t *src, size_t src_pitch, uint8_t *cache, size_t cache_size, unsigned width, unsigned height, unsigned cpu)
int CopyInitCache (copy_cache_t *cache, unsigned width)
void CopyCleanCache (copy_cache_t *cache)
void CopyFromNv12 (picture_t *dst, uint8_t *src[2], size_t src_pitch[2], unsigned width, unsigned height, copy_cache_t *cache)
void CopyFromYv12 (picture_t *dst, uint8_t *src[3], size_t src_pitch[3], unsigned width, unsigned height, copy_cache_t *cache)

Define Documentation

#define ASM_SSE2 ( cpu,
op   ) 

#define COPY64 ( dstp,
srcp,
load,
store   ) 

Value:

asm volatile (                      \
        load "  0(%[src]), %%xmm1\n"    \
        load " 16(%[src]), %%xmm2\n"    \
        load " 32(%[src]), %%xmm3\n"    \
        load " 48(%[src]), %%xmm4\n"    \
        store " %%xmm1,    0(%[dst])\n" \
        store " %%xmm2,   16(%[dst])\n" \
        store " %%xmm3,   32(%[dst])\n" \
        store " %%xmm4,   48(%[dst])\n" \
        : : [dst]"r"(dstp), [src]"r"(srcp) : "memory")

Referenced by Copy2d(), and CopyFromUswc().

#define LOAD64

Value:

"movdqa  0(%[src]), %%xmm0\n" \
    "movdqa 16(%[src]), %%xmm1\n" \
    "movdqa 32(%[src]), %%xmm2\n" \
    "movdqa 48(%[src]), %%xmm3\n"

Referenced by SplitUV().

#define STORE2X32

Value:

"movq   %%xmm0,   0(%[dst1])\n" \
    "movq   %%xmm1,   8(%[dst1])\n" \
    "movhpd %%xmm0,   0(%[dst2])\n" \
    "movhpd %%xmm1,   8(%[dst2])\n" \
    "movq   %%xmm2,  16(%[dst1])\n" \
    "movq   %%xmm3,  24(%[dst1])\n" \
    "movhpd %%xmm2,  16(%[dst2])\n" \
    "movhpd %%xmm3,  24(%[dst2])\n"

Referenced by SplitUV().


Function Documentation

static void Copy2d ( uint8_t *  dst,
size_t  dst_pitch,
const uint8_t *  src,
size_t  src_pitch,
unsigned  width,
unsigned  height,
unsigned  cpu 
) [static]

References ASM_SSE2, COPY64, CPU_CAPABILITY_SSE2, and unaligned.

Referenced by CopyPlane().

void CopyCleanCache ( copy_cache_t cache  ) 

void CopyFromNv12 ( picture_t dst,
uint8_t *  src[2],
size_t  src_pitch[2],
unsigned  width,
unsigned  height,
copy_cache_t cache 
)

static void CopyFromUswc ( uint8_t *  dst,
size_t  dst_pitch,
const uint8_t *  src,
size_t  src_pitch,
unsigned  unaligned,
unsigned  width,
unsigned  height,
unsigned  cpu 
) [static]

void CopyFromYv12 ( picture_t dst,
uint8_t *  src[3],
size_t  src_pitch[3],
unsigned  width,
unsigned  height,
copy_cache_t cache 
)

int CopyInitCache ( copy_cache_t cache,
unsigned  width 
)

static void CopyPlane ( uint8_t *  dst,
size_t  dst_pitch,
const uint8_t *  src,
size_t  src_pitch,
uint8_t *  cache,
size_t  cache_size,
unsigned  width,
unsigned  height,
unsigned  cpu 
) [static]

References __MIN, ASM_SSE2, Copy2d(), CopyFromUswc(), and unaligned.

Referenced by CopyFromNv12(), and CopyFromYv12().

static void SplitPlanes ( uint8_t *  dstu,
size_t  dstu_pitch,
uint8_t *  dstv,
size_t  dstv_pitch,
const uint8_t *  src,
size_t  src_pitch,
uint8_t *  cache,
size_t  cache_size,
unsigned  width,
unsigned  height,
unsigned  cpu 
) [static]

References __MIN, ASM_SSE2, CopyFromUswc(), SplitUV(), and unaligned.

Referenced by CopyFromNv12().

static void SplitUV ( uint8_t *  dstu,
size_t  dstu_pitch,
uint8_t *  dstv,
size_t  dstv_pitch,
const uint8_t *  src,
size_t  src_pitch,
unsigned  width,
unsigned  height,
unsigned  cpu 
) [static]


Generated on Tue May 25 08:05:11 2010 for VLC by  doxygen 1.5.6