tvheadend/ffdecsa/fftable.h
2008-01-12 07:37:08 +00:00

56 lines
1.6 KiB
C

/* FFdecsa -- fast decsa algorithm
*
* Copyright (C) 2007 Dark Avenger
* 2003-2004 fatih89r
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef FFTABLE_H
#define FFTABLE_H
void static inline FFTABLEIN(unsigned char *tab, int g, unsigned char *data)
{
#if 0
*(((int *)tab)+2*g)=*((int *)data);
*(((int *)tab)+2*g+1)=*(((int *)data)+1);
#else
*(((long long *)tab)+g)=*((long long *)data);
#endif
}
void static inline FFTABLEOUT(unsigned char *data, unsigned char *tab, int g)
{
#if 1
*((int *)data)=*(((int *)tab)+2*g);
*(((int *)data)+1)=*(((int *)tab)+2*g+1);
#else
*((long long *)data)=*(((long long *)tab)+g);
#endif
}
void static inline FFTABLEOUTXORNBY(int n, unsigned char *data, unsigned char *tab, int g)
{
int j;
for(j=0;j<n;j++) *(data+j)^=*(tab+8*g+j);
}
#undef XOREQ_BEST_BY
static inline void XOREQ_BEST_BY(unsigned char *d, unsigned char *s)
{
XOR_BEST_BY(d, d, s);
}
#endif //FFTABLE_H