Main Page | Modules | Class Hierarchy | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

jp2_decode_skip_level.cpp

Simple image decoder with level skip using IMJ2Dec.

//
// jp2_decode_skip_level.cpp
//
// Simple image decoder with level skip using IMJ2Dec.
//
// Copyright Morgan-Multimedia 1990-2005.
//

#include "iMJ2Dec.h"
#include "OEM_LIC.h"

int DecodeSkip(int nInWidth, int nInHeight, PBYTE pIn, int nIn, int nInSkip,
                   PBYTE pOut, int nOut, DWORD fccOut, int nOutBits)
{
        // Create a decoder
        IMJ2Dec *pDec = new IMJ2Dec(FALSE, &OEM_LIC);
        
        if (!pDec) {return 0;}

        // Is license valid ?
        if (!pDec->IsLicenseValid())
        {
                // No
                delete pDec;
                return 0;
        }

        // Calculate divisor
        int nDiv = (1 << nInSkip);

        // Decode
        int nSize = pDec->decode(
                                NULL, 0, NULL, // jp2 = NULL, no codestream info returned
                                pIn, nIn,
                                nInWidth, nInHeight,
                                0, 0, // in_fcc, in_bits passed as unknown
                                pOut, nOut,
                                0, 0,
                                nInWidth/nDiv, nInHeight/nDiv, // level skip
                                fccOut, nOutBits);

        // Delete decoder
        if (pDec) {delete pDec;}

        // Return the number of bytes red in the input codestream
        return nSize;
}

   

© Morgan Multimedia 1990-2005