Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/FreeImage/PluginJXR.cpp view on Meta::CPAN
#include "../LibJXR/jxrgluelib/JXRGlue.h"
// ==========================================================
// Plugin Interface
// ==========================================================
static int s_format_id;
// ==========================================================
// FreeImageIO interface (I/O streaming functions)
// ==========================================================
/**
JXR wrapper for FreeImage I/O handle
*/
typedef struct tagFreeImageJXRIO {
FreeImageIO *io;
fi_handle handle;
} FreeImageJXRIO;
src/Source/LibJXR/image/decode/strdec.c view on Meta::CPAN
}
if(pSC->WMISCP.bfBitstreamFormat == SPATIAL){
printf("\nSpatial order bitstream\n");
}
else{
printf("\nFrequency order bitstream\n");
}
if(!pSC->m_param.bIndexTable){
printf("\nstreaming mode, no index table.\n");
}
else if(pSC->WMISCP.bfBitstreamFormat == SPATIAL){
for(j = 0; j <= pSC->WMISCP.cNumOfSliceMinus1H; j ++){
for(i = 0; i <= pSC->WMISCP.cNumOfSliceMinus1V; i ++){
size_t * p = &pSC->pIndexTable[j * (pSC->WMISCP.cNumOfSliceMinus1V + 1) + i];
if(i + j != pSC->WMISCP.cNumOfSliceMinus1H + pSC->WMISCP.cNumOfSliceMinus1V){
printf("bitstream size for tile (%d, %d): %d.\n", j, i, (int) (p[1] - p[0]));
}
else{
printf("bitstream size for tile (%d, %d): unknown.\n", j, i);
src/Source/LibJXR/image/decode/strdec.c view on Meta::CPAN
if((pII->bdBitDepth == BD_5 || pII->bdBitDepth == BD_10 || pII->bdBitDepth == BD_565) &&
(pSCP->cfColorFormat != YUV_444 && pSCP->cfColorFormat != YUV_422 && pSCP->cfColorFormat != YUV_420 && pSCP->cfColorFormat != Y_ONLY))
return ICERR_ERROR;
Cleanup:
return WMP_errSuccess == err ? ICERR_OK : ICERR_ERROR;
}
//----------------------------------------------------------------
// streaming api init/decode/term
EXTERN_C Int ImageStrDecGetInfo(
CWMImageInfo* pII,
CWMIStrCodecParam *pSCP)
{
ERR err = WMP_errSuccess;
size_t cMarker;
CCoreParameters aDummy;
// mark position of start of data
Call(pSCP->pWStream->GetPos(pSCP->pWStream, &cMarker));
Call(ReadWMIHeader(pII, pSCP, &aDummy));
src/Source/LibJXR/image/encode/strenc.c view on Meta::CPAN
}
if(pSC->WMISCP.bfBitstreamFormat == SPATIAL){
printf("\nSpatial order bitstream\n");
}
else{
printf("\nFrequency order bitstream\n");
}
if(!pSC->m_param.bIndexTable){
printf("\nstreaming mode, no index table.\n");
}
else if(pSC->WMISCP.bfBitstreamFormat == SPATIAL){
for(j = 0; j <= pSC->WMISCP.cNumOfSliceMinus1H; j ++){
for(i = 0; i <= pSC->WMISCP.cNumOfSliceMinus1V; i ++){
printf("bitstream size for tile (%d, %d): %d.\n", j, i, (int) pSC->pIndexTable[j * (pSC->WMISCP.cNumOfSliceMinus1V + 1) + i]);
}
}
}
else{
for(j = 0; j <= pSC->WMISCP.cNumOfSliceMinus1H; j ++){
src/Source/LibJXR/image/encode/strenc.c view on Meta::CPAN
PUTBITS(pIO, (U32)pCoreParam->cExtraPixelsRight, 6);
}
fillToByte(pIO); // redundant
// write image plane headers
WriteImagePlaneHeader(pSC);
return ICERR_OK;
}
// streaming codec init/term
Int StrEncInit(CWMImageStrCodec* pSC)
{
COLORFORMAT cf = pSC->m_param.cfColorFormat;
COLORFORMAT cfE = pSC->WMII.cfColorFormat;
U16 iQPIndexY = 0, iQPIndexYLP = 0, iQPIndexYHP = 0;
U16 iQPIndexU = 0, iQPIndexULP = 0, iQPIndexUHP = 0;
U16 iQPIndexV = 0, iQPIndexVLP = 0, iQPIndexVHP = 0;
size_t i;
Bool b32bit = sizeof(size_t) == 4;
src/Source/LibJXR/image/sys/strcodec.c view on Meta::CPAN
// Bit I/O functions
//================================================================
Int allocateBitIOInfo(CWMImageStrCodec* pSC)
{
U32 cNumBitIO;
SUBBAND sbSubband = pSC->WMISCP.sbSubband;
pSC->cSB = (sbSubband == SB_DC_ONLY ? 1 : (sbSubband == SB_NO_HIGHPASS ? 2 : (sbSubband == SB_NO_FLEXBITS ? 3 : 4)));
// # of additional BitIOs other than pSC->pIOHeader
if (!pSC->m_param.bIndexTable) { // pure streaming mode, no index table, no additional BitIO!
assert (pSC->WMISCP.bfBitstreamFormat == SPATIAL && pSC->WMISCP.cNumOfSliceMinus1H + pSC->WMISCP.cNumOfSliceMinus1V == 0);
cNumBitIO = 0;
}
else if(pSC->WMISCP.bfBitstreamFormat == SPATIAL)
cNumBitIO = pSC->WMISCP.cNumOfSliceMinus1V + 1;
else
cNumBitIO = (pSC->WMISCP.cNumOfSliceMinus1V + 1) * pSC->cSB;
if(cNumBitIO > MAX_TILES * 4)
return ICERR_ERROR;
src/Source/LibJXR/image/sys/strcodec.h view on Meta::CPAN
I32 iQP;
I32 iOffset;
I32 iMan;
I32 iExp;
#if defined(WMP_OPT_QT)
float f1_QP;
double d1_QP;
#endif
} CWMIQuantizer;
/* temporary bridge between old APIs and streaming APIs */
typedef struct tagCWMIMBInfo {
I32 iBlockDC[MAX_CHANNELS][16];
I32 iOrientation;
Int iCBP[MAX_CHANNELS];
Int iDiffCBP[MAX_CHANNELS];
U8 iQIndexLP; // 0 - 15
U8 iQIndexHP; // 0 - 15
} CWMIMBInfo;
struct CWMImageStrCodec;
src/Source/LibOpenJPEG/NEWS view on Meta::CPAN
OpenJPEG NEWS - user visible changes
====================================
Changes from OpenJPEG 1.5.x to OpenJPEG 2.0.0
----------------------------------------------
New Features:
* streaming capabilities
* merge JP3D
API modifications:
* Use a 64bits capable API
Misc:
* removed autotools build system
* folders hierarchies reorganisation
src/Source/LibTIFF4/tif_ojpeg.c view on Meta::CPAN
* libjpeg, with longjump stuff, are encapsulated in dedicated functions. When
* JPEG_ENCAP_EXTERNAL is defined, these encapsulating functions are declared external
* to this unit, and can be defined elsewhere to use stuff other then longjump.
* The default mode, without JPEG_ENCAP_EXTERNAL, implements the call encapsulators
* here, internally, with normal longjump.
* SETJMP, LONGJMP, JMP_BUF: On some machines/environments a longjump equivalent is
* conviniently available, but still it may be worthwhile to use _setjmp or sigsetjmp
* in place of plain setjmp. These macros will make it easier. It is useless
* to fiddle with these if you define JPEG_ENCAP_EXTERNAL.
* OJPEG_BUFFER: Define the size of the desired buffer here. Should be small enough so as to guarantee
* instant processing, optimal streaming and optimal use of processor cache, but also big
* enough so as to not result in significant call overhead. It should be at least a few
* bytes to accommodate some structures (this is verified in asserts), but it would not be
* sensible to make it this small anyway, and it should be at most 64K since it is indexed
* with uint16. We recommend 2K.
* EGYPTIANWALK: You could also define EGYPTIANWALK here, but it is not used anywhere and has
* absolutely no effect. That is why most people insist the EGYPTIANWALK is a bit silly.
*/
/* define LIBJPEG_ENCAP_EXTERNAL */
#define SETJMP(jbuf) setjmp(jbuf)
( run in 0.505 second using v1.01-cache-2.11-cpan-a5abf4f5562 )