52 register int misal = ((
unsigned long)blocks & 0x00000010);
55 ((
unsigned long*)blocks)[0] = 0
L;
56 ((
unsigned long*)blocks)[1] = 0
L;
57 ((
unsigned long*)blocks)[2] = 0
L;
58 ((
unsigned long*)blocks)[3] = 0
L;
61 for ( ; i <
sizeof(
DCTELEM)*6*64-31 ; i += 32) {
62 __asm__
volatile(
"dcbz %0,%1" : :
"b" (blocks),
"r" (i) :
"memory");
65 ((
unsigned long*)blocks)[188] = 0
L;
66 ((
unsigned long*)blocks)[189] = 0
L;
67 ((
unsigned long*)blocks)[190] = 0
L;
68 ((
unsigned long*)blocks)[191] = 0
L;
78 register int misal = ((
unsigned long)blocks & 0x0000007f);
84 memset(blocks, 0,
sizeof(
DCTELEM)*6*64);
87 for ( ; i <
sizeof(
DCTELEM)*6*64 ; i += 128) {
88 __asm__
volatile(
"dcbzl %0,%1" : :
"b" (blocks),
"r" (i) :
"memory");
94 memset(blocks, 0,
sizeof(
DCTELEM)*6*64);
106 register char *fakedata =
av_malloc(1024);
107 register char *fakedata_middle;
108 register long zero = 0;
116 fakedata_middle = (fakedata + 512);
118 memset(fakedata, 0xFF, 1024);
122 __asm__
volatile(
"dcbzl %0, %1" : :
"b" (fakedata_middle),
"r" (zero));
124 for (i = 0; i < 1024 ; i ++) {
125 if (fakedata[i] == (
char)0)
145 if (!high_bit_depth) {
173 #endif //CONFIG_ENCODERS
void * av_malloc(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
int dct_algo
DCT algorithm, see FF_DCT_* below.
static long check_dcbzl_effect(void)
void ff_fdct_altivec(DCTELEM *block)
memory handling functions
#define AV_CPU_FLAG_ALTIVEC
void(* idct_add)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
void ff_idct_put_altivec(uint8_t *dest, int line_size, int16_t *block)
int bits_per_raw_sample
Bits per sample/pixel of internal libavcodec pixel/sample format.
void ff_float_init_altivec(DSPContext *c, AVCodecContext *avctx)
void ff_dsputil_h264_init_ppc(DSPContext *c, AVCodecContext *avctx)
void av_free(void *ptr)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc(). ...
void(* idct_put)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> clip to unsigned 8 bit -> dest.
int idct_algo
IDCT algorithm, see FF_IDCT_* below.
int idct_permutation_type
main external API structure.
static void clear_blocks_dcbz128_ppc(DCTELEM *blocks)
void(* gmc1)(uint8_t *dst, uint8_t *src, int srcStride, int h, int x16, int y16, int rounder)
translational global motion compensation.
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
void ff_int_init_altivec(DSPContext *c, AVCodecContext *avctx)
void(* clear_blocks)(DCTELEM *blocks)
void(* fdct)(DCTELEM *block)
static void clear_blocks_dcbz32_ppc(DCTELEM *blocks)
void ff_dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx)
void ff_idct_add_altivec(uint8_t *dest, int line_size, int16_t *block)
#define FF_TRANSPOSE_IDCT_PERM
void ff_gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h, int x16, int y16, int rounder)
void ff_dsputil_init_altivec(DSPContext *c, AVCodecContext *avctx)