Ejemplo n.º 1
0
unsigned int GenerateChecksumV8(unsigned int sym, unsigned int salt)
{
    unsigned int a=sym;
    for(int i=0; i<1000; i++)
        a=TransformBlock(a, salt, 0x80, 0x40);
    return a;
}
Ejemplo n.º 2
0
void AESCryptoKey::Decrypt(const uint8_t *pbIn,
                           uint32_t       cbIn,
                           uint8_t       *pbOut,
                           uint32_t     & cbOut,
                           const uint8_t *pbIv,
                           uint32_t       cbIv)
{
  TransformBlock(false, pbIn, cbIn, pbOut, cbOut, pbIv, cbIv);
}
Ejemplo n.º 3
0
void CPrediction::doTransformPFrame(CImage<float> * pSrc, CImage<float> * pDst, CPredictionInfoTable * pPred)
{
	for(int k=0;k<pSrc->getComponents();k++)
	{
		int scale = 16/pSrc->getScale(k);
		CSize size = (*pSrc)[k].getSize();
		for(int y=0; y < size.Height; y+=8)
		{
			for(int x=0; x < size.Width; x+=8)
			{
				prediction_info_t info = (*pPred)[y/scale][x/scale];
				TransformBlock(&(*pSrc)[k][y][x], &(*pDst)[k][y][x], CPoint(k, y, x), size, info, scale);
			}
		}
	}
}
Ejemplo n.º 4
0
void CTransform<S, D>::doTransform(CImage<S> * src, CImage<D> * dst)
{
	if(src->getFormat() != dst->getFormat())
	{
		throw utils::StringFormatException("formats does not match\n");
	}
	for(int k=0;k<src->getComponents(); k++)
	{
		CSize size((*src)[k].getHeight(), (*src)[k].getWidth());
		for(int y=0; y < (*src)[k].getHeight(); y+=8)
		{
			for(int x=0; x < (*src)[k].getWidth(); x+=8)
			{
				TransformBlock(&(*src)[k][0][0], &(*dst)[k][0][0], CPoint(k, y, x), size);
			}
		}
	}
}
Ejemplo n.º 5
0
/*****************************************************************************
*
*   time2freq_adapt
*   transform to time domain data to freq. domain.
*   Blocks composed of multiple segments (i.e. all but long) have
*     input spectrums interleaved.
*   Notice: currently verified only for certain blocktypes
*   input: see below
*   output: see below
*   local static:
*     none
*   globals: none
*
*****************************************************************************/
void time2freq_adapt(faacDecHandle hDecoder,
                     WINDOW_TYPE blockType,          /* input: blockType 0-3                     */
                     Wnd_Shape *wnd_shape,   /* input/output                             */
                     Float *timeInPtr,       /* input: time domain data              */
                     Float *ffreqOutPtr)     /* output: 1/2 block of new freq values     */
{
    Float *transBuff, *transBuffPtr;
    int i, j;
    Float *srcPtr;
    Float *destPtr;
    Float *freqOutPtr;

    transBuff = AllocMemory(2*BLOCK_LEN_LONG*sizeof(Float));
    freqOutPtr = AllocMemory(BLOCK_LEN_LONG*sizeof(Float));

    if (blockType == NORM_TYPE)
    {
        srcPtr = timeInPtr;
        destPtr = transBuff;
        for (i = 2 * BLOCK_LEN_LONG / 16 - 1; i >= 0; --i)
        {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
        }
        /* Do 1 LONG transform */
        TransformBlock (hDecoder, transBuff, LONG_BLOCK, wnd_shape);

        srcPtr = transBuff;
        destPtr = freqOutPtr;
        for (i = BLOCK_LEN_LONG/16-1; i>=0; --i)
        {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
        }
    }

    else if (blockType == SHORT_TYPE)  {
        /* Do 8 SHORT transforms */

        srcPtr = timeInPtr + (BLOCK_LEN_LONG - BLOCK_LEN_SHORT) / 2;
        destPtr = freqOutPtr;

        for (i = 0; i < 8; i++) {
            transBuffPtr = transBuff;
            for (i = 2 * BLOCK_LEN_SHORT/16-1; i>=0; --i)  {
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
                *transBuffPtr++ = *srcPtr++;
            }
            srcPtr -= BLOCK_LEN_SHORT;
            TransformBlock (hDecoder, transBuff, SHORT_BLOCK, wnd_shape);

            /* Copy data to output buffer */
            transBuffPtr = transBuff;
            for (j = BLOCK_LEN_SHORT/16-1; j>=0; --j)  {
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;
                *destPtr++ = *transBuffPtr++;

            }
        }
    }

    else if (blockType == START_TYPE)  {
        srcPtr = timeInPtr;
        destPtr = transBuff;
        for (i = 2 * BLOCK_LEN_LONG/16-1; i>=0; --i)  {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;

        }
        TransformBlock (hDecoder, transBuff, START_FLAT_BLOCK, wnd_shape);

        srcPtr = transBuff;
        destPtr = freqOutPtr;
        for (i = BLOCK_LEN_LONG/16-1; i>=0; --i)  {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
        }
        hDecoder->dolbyShortOffset_t2f = 0;
    }

    else if (blockType == STOP_TYPE)  {
        srcPtr = timeInPtr;
        destPtr = transBuff;
        for (i = 2 * BLOCK_LEN_LONG/16-1; i>=0; --i)  {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
        }
        TransformBlock (hDecoder, transBuff, STOP_FLAT_BLOCK, wnd_shape);

        srcPtr = transBuff;
        destPtr = freqOutPtr;
        for (i = BLOCK_LEN_LONG/16-1; i>=0; --i)  {
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;
            *destPtr++ = *srcPtr++;

        }
    }

    srcPtr = freqOutPtr;
    destPtr = ffreqOutPtr;
    for (i = BLOCK_LEN_LONG/16-1; i>=0; --i)  {
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
        *destPtr++ = *srcPtr++;
    }

    FreeMemory(freqOutPtr);
    FreeMemory(transBuff);
}