49 register int misal = ((
unsigned long)blocks & 0x00000010);
52 ((
unsigned long*)blocks)[0] = 0L;
53 ((
unsigned long*)blocks)[1] = 0L;
54 ((
unsigned long*)blocks)[2] = 0L;
55 ((
unsigned long*)blocks)[3] = 0L;
58 for ( ; i <
sizeof(
DCTELEM)*6*64-31 ; i += 32) {
59 __asm__
volatile(
"dcbz %0,%1" : :
"b" (blocks),
"r" (i) :
"memory");
62 ((
unsigned long*)blocks)[188] = 0L;
63 ((
unsigned long*)blocks)[189] = 0L;
64 ((
unsigned long*)blocks)[190] = 0L;
65 ((
unsigned long*)blocks)[191] = 0L;
75 register int misal = ((
unsigned long)blocks & 0x0000007f);
81 memset(blocks, 0,
sizeof(
DCTELEM)*6*64);
84 for ( ; i <
sizeof(
DCTELEM)*6*64 ; i += 128) {
85 __asm__
volatile(
"dcbzl %0,%1" : :
"b" (blocks),
"r" (i) :
"memory");
91 memset(blocks, 0,
sizeof(
DCTELEM)*6*64);
103 register char *fakedata =
av_malloc(1024);
104 register char *fakedata_middle;
105 register long zero = 0;
113 fakedata_middle = (fakedata + 512);
115 memset(fakedata, 0xFF, 1024);
119 __asm__
volatile(
"dcbzl %0, %1" : :
"b" (fakedata_middle),
"r" (zero));
121 for (i = 0; i < 1024 ; i ++) {
122 if (fakedata[i] == (
char)0)
139 register const uint8_t *p = mem;
141 __asm__
volatile (
"dcbt 0,%0" : :
"r" (p));
152 if (!high_bit_depth) {
180 #endif //CONFIG_ENCODERS
#define AV_CPU_FLAG_ALTIVEC
standard
int dct_algo
DCT algorithm, see FF_DCT_* below.
static long check_dcbzl_effect(void)
void float_init_altivec(DSPContext *c, AVCodecContext *avctx)
void(* prefetch)(void *mem, int stride, int h)
void(* idct_add)(uint8_t *dest, int line_size, DCTELEM *block)
block -> idct -> add dest -> clip to unsigned 8 bit -> dest.
static void prefetch_ppc(void *mem, int stride, int h)
void 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_vp3_idct_put_altivec(uint8_t *dest, int line_size, DCTELEM *block)
int lowres
low resolution decoding, 1-> 1/2 size, 2->1/4 size
void int_init_altivec(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.
void ff_vp3_idct_altivec(DCTELEM *block)
void(* idct)(DCTELEM *block)
void dsputil_h264_init_ppc(DSPContext *c, AVCodecContext *avctx)
int idct_algo
IDCT algorithm, see FF_IDCT_* below.
void idct_add_altivec(uint8_t *dest, int line_size, int16_t *block)
void dsputil_init_ppc(DSPContext *c, AVCodecContext *avctx)
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.
void * av_malloc(size_t size)
Allocate a block of size bytes with alignment suitable for all memory accesses (including vectors if ...
void ff_vp3_idct_add_altivec(uint8_t *dest, int line_size, DCTELEM *block)
int av_get_cpu_flags(void)
Return the flags which specify extensions supported by the CPU.
void(* clear_blocks)(DCTELEM *blocks)
void(* fdct)(DCTELEM *block)
static void clear_blocks_dcbz32_ppc(DCTELEM *blocks)
void fdct_altivec(DCTELEM *block)
void dsputil_init_altivec(DSPContext *c, AVCodecContext *avctx)
void gmc1_altivec(uint8_t *dst, uint8_t *src, int stride, int h, int x16, int y16, int rounder)
#define FF_TRANSPOSE_IDCT_PERM