
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 ASM_SSE2 | ( | cpu, | |||
| op | ) |
Referenced by Copy2d(), CopyFromNv12(), CopyFromUswc(), CopyFromYv12(), CopyPlane(), SplitPlanes(), and SplitUV().
| #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().
| 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 CopyCleanCache | ( | copy_cache_t * | cache | ) |
References copy_cache_t::base, copy_cache_t::buffer, and copy_cache_t::size.
| void CopyFromNv12 | ( | picture_t * | dst, | |
| uint8_t * | src[2], | |||
| size_t | src_pitch[2], | |||
| unsigned | width, | |||
| unsigned | height, | |||
| copy_cache_t * | cache | |||
| ) |
References ASM_SSE2, copy_cache_t::buffer, CopyPlane(), plane_t::i_pitch, picture_t::p, plane_t::p_pixels, copy_cache_t::size, SplitPlanes(), and vlc_CPU().
| 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] |
References ASM_SSE2, COPY64, CPU_CAPABILITY_SSE2, and CPU_CAPABILITY_SSE4_1.
Referenced by CopyPlane(), and SplitPlanes().
| void CopyFromYv12 | ( | picture_t * | dst, | |
| uint8_t * | src[3], | |||
| size_t | src_pitch[3], | |||
| unsigned | width, | |||
| unsigned | height, | |||
| copy_cache_t * | cache | |||
| ) |
References ASM_SSE2, copy_cache_t::buffer, CopyPlane(), plane_t::i_pitch, picture_t::p, plane_t::p_pixels, copy_cache_t::size, and vlc_CPU().
| int CopyInitCache | ( | copy_cache_t * | cache, | |
| unsigned | width | |||
| ) |
References __MAX, copy_cache_t::base, copy_cache_t::buffer, copy_cache_t::size, VLC_EGENERIC, vlc_memalign(), and VLC_SUCCESS.
| 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] |
| 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] |
References ASM_SSE2, CPU_CAPABILITY_SSE2, CPU_CAPABILITY_SSSE3, LOAD64, and STORE2X32.
Referenced by SplitPlanes().
1.5.6