mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-25 04:30:02 +00:00
simple_idct: remove code for DCTELEM != int16
DCTELEM can never be changed to anything else, too much code depends on it. Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
3f5dcde7e6
commit
dbb5ee8ea7
@ -59,39 +59,24 @@ static inline void idctRowCondDC (DCTELEM * row)
|
||||
#else
|
||||
#define ROW0_MASK 0xffffLL
|
||||
#endif
|
||||
if(sizeof(DCTELEM)==2){
|
||||
if ( ((((uint64_t *)row)[0] & ~ROW0_MASK) |
|
||||
((uint64_t *)row)[1]) == 0) {
|
||||
temp = (row[0] << 3) & 0xffff;
|
||||
temp += temp << 16;
|
||||
temp += temp << 32;
|
||||
((uint64_t *)row)[0] = temp;
|
||||
((uint64_t *)row)[1] = temp;
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
if (!(row[1]|row[2]|row[3]|row[4]|row[5]|row[6]|row[7])) {
|
||||
row[0]=row[1]=row[2]=row[3]=row[4]=row[5]=row[6]=row[7]= row[0] << 3;
|
||||
return;
|
||||
}
|
||||
if (((((uint64_t *)row)[0] & ~ROW0_MASK) | ((uint64_t *)row)[1]) == 0) {
|
||||
temp = (row[0] << 3) & 0xffff;
|
||||
temp += temp << 16;
|
||||
temp += temp << 32;
|
||||
((uint64_t *)row)[0] = temp;
|
||||
((uint64_t *)row)[1] = temp;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
if(sizeof(DCTELEM)==2){
|
||||
if (!(((uint32_t*)row)[1] |
|
||||
((uint32_t*)row)[2] |
|
||||
((uint32_t*)row)[3] |
|
||||
row[1])) {
|
||||
temp = (row[0] << 3) & 0xffff;
|
||||
temp += temp << 16;
|
||||
((uint32_t*)row)[0]=((uint32_t*)row)[1] =
|
||||
if (!(((uint32_t*)row)[1] |
|
||||
((uint32_t*)row)[2] |
|
||||
((uint32_t*)row)[3] |
|
||||
row[1])) {
|
||||
temp = (row[0] << 3) & 0xffff;
|
||||
temp += temp << 16;
|
||||
((uint32_t*)row)[0]=((uint32_t*)row)[1] =
|
||||
((uint32_t*)row)[2]=((uint32_t*)row)[3] = temp;
|
||||
return;
|
||||
}
|
||||
}else{
|
||||
if (!(row[1]|row[2]|row[3]|row[4]|row[5]|row[6]|row[7])) {
|
||||
row[0]=row[1]=row[2]=row[3]=row[4]=row[5]=row[6]=row[7]= row[0] << 3;
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user