Alien-FreeImage

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

src/Source/LibWebP/LibWebP.2008.vcproj
src/Source/LibWebP/LibWebP.2013.vcxproj
src/Source/LibWebP/LibWebP.2013.vcxproj.filters
src/Source/LibWebP/NEWS
src/Source/LibWebP/PATENTS
src/Source/LibWebP/README
src/Source/LibWebP/README.mux
src/Source/LibWebP/src/dec/alphai.h
src/Source/LibWebP/src/dec/dec.alpha.c
src/Source/LibWebP/src/dec/dec.buffer.c
src/Source/LibWebP/src/dec/dec.frame.c
src/Source/LibWebP/src/dec/dec.idec.c
src/Source/LibWebP/src/dec/dec.io.c
src/Source/LibWebP/src/dec/dec.quant.c
src/Source/LibWebP/src/dec/dec.tree.c
src/Source/LibWebP/src/dec/dec.vp8.c
src/Source/LibWebP/src/dec/dec.vp8l.c
src/Source/LibWebP/src/dec/dec.webp.c
src/Source/LibWebP/src/dec/decode_vp8.h
src/Source/LibWebP/src/dec/vp8i.h
src/Source/LibWebP/src/dec/vp8li.h

MANIFEST  view on Meta::CPAN

src/Source/LibWebP/src/dsp/yuv.h
src/Source/LibWebP/src/dsp/yuv_tables_sse2.h
src/Source/LibWebP/src/enc/backward_references.h
src/Source/LibWebP/src/enc/cost.h
src/Source/LibWebP/src/enc/enc.alpha.c
src/Source/LibWebP/src/enc/enc.analysis.c
src/Source/LibWebP/src/enc/enc.backward_references.c
src/Source/LibWebP/src/enc/enc.config.c
src/Source/LibWebP/src/enc/enc.cost.c
src/Source/LibWebP/src/enc/enc.filter.c
src/Source/LibWebP/src/enc/enc.frame.c
src/Source/LibWebP/src/enc/enc.histogram.c
src/Source/LibWebP/src/enc/enc.iterator.c
src/Source/LibWebP/src/enc/enc.near_lossless.c
src/Source/LibWebP/src/enc/enc.picture.c
src/Source/LibWebP/src/enc/enc.picture_csp.c
src/Source/LibWebP/src/enc/enc.picture_psnr.c
src/Source/LibWebP/src/enc/enc.picture_rescale.c
src/Source/LibWebP/src/enc/enc.picture_tools.c
src/Source/LibWebP/src/enc/enc.quant.c
src/Source/LibWebP/src/enc/enc.syntax.c

src/Makefile.srcs  view on Meta::CPAN

VER_MAJOR = 3
VER_MINOR = 17.0
SRCS = ./Source/FreeImage/BitmapAccess.cpp ./Source/FreeImage/ColorLookup.cpp ./Source/FreeImage/FreeImage.cpp ./Source/FreeImage/FreeImageC.c ./Source/FreeImage/FreeImageIO.cpp ./Source/FreeImage/GetType.cpp ./Source/FreeImage/MemoryIO.cpp ./Source/...
INCLS = ./Examples/OpenGL/TextureManager/TextureManager.h ./Examples/Plugin/PluginCradle.h ./Examples/Generic/FIIO_Mem.h ./Source/MapIntrospector.h ./Source/FreeImage - Copie.h ./Source/CacheFile.h ./Source/LibTIFF/tiffconf.vc.h ./Source/LibTIFF/tif_...

INCLUDE = -I. -ISource -ISource/Metadata -ISource/FreeImageToolkit -ISource/LibJPEG -ISource/LibPNG -ISource/LibTIFF4 -ISource/ZLib -ISource/LibOpenJPEG -ISource/OpenEXR -ISource/OpenEXR/Half -ISource/OpenEXR/Iex -ISource/OpenEXR/IlmImf -ISource/Open...

src/README.iphone  view on Meta::CPAN

Makefile for iPhone

found on the web, see 
http://robertcarlsen.net/2009/03/16/openframeworks-iphone-586
http://robertcarlsen.net/2009/03/25/openframeworks-iphone-libs-593
http://4u.jeffcrouse.info/of/

See also : 

Makefile for XCode 4.6 and iOS SDK 6.1 
http://sourceforge.net/p/freeimage/discussion/36109/thread/1f345192/

Building the FreeImage lib for PIE and armv7
http://forum.openframeworks.cc/t/building-the-freeimage-lib-for-pie-and-armv7/13714

-----------------------------------------------------------------------------

Run "make -f Makefile.iphone". 
This should build both the iPhone and iPhone Simulator libraries into the "Dist" folder. 

src/Source/DeprecationManager/DeprecationMgr.cpp  view on Meta::CPAN


DeprecationMgr *
DeprecationMgr::GetInstance() {
	static DeprecationMgr Instance;
	return &Instance;
}

// ==========================================================

void
DeprecationMgr::AddDeprecatedFunction(const char *old_function_name, const char *new_function_name, const void *frame_ptr) {
#ifdef _WIN32
	int *preturn = (int *)frame_ptr + 1; // usual return address @ [ebp+4]
	int called_from = IsBadReadPtr(preturn, 4) ? 0 : *preturn;

	// check if this function was already listed as deprecated
	// if it wasn't, make a new entry for it
	// if it was, keep track of where it's called from.

	std::map<const char *, DeprecatedFunction>::iterator existing_function = m_functions.find(old_function_name);

	if (existing_function == m_functions.end()) {
		DeprecatedFunction function;

src/Source/DeprecationManager/DeprecationMgr.h  view on Meta::CPAN

		std::set<int> called_from;
	};

	std::map<const char *, DeprecatedFunction> m_functions;

public:
	DeprecationMgr();
	~DeprecationMgr();

	static DeprecationMgr * GetInstance ( void );
	void AddDeprecatedFunction(const char *old_function_name, const char *new_function_name, const void *frame_ptr);
};

#endif //DEPRECATIONMGR_H

src/Source/FreeImage.h  view on Meta::CPAN

#define EXR_FLOAT			0x0001	//! save data as float instead of as half (not recommended)
#define EXR_NONE			0x0002	//! save with no compression
#define EXR_ZIP				0x0004	//! save with zlib compression, in blocks of 16 scan lines
#define EXR_PIZ				0x0008	//! save with piz-based wavelet compression
#define EXR_PXR24			0x0010	//! save with lossy 24-bit float compression
#define EXR_B44				0x0020	//! save with lossy 44% float compression - goes to 22% when combined with EXR_LC
#define EXR_LC				0x0040	//! save images with one luminance and two chroma channels, rather than as RGB (lossy compression)
#define FAXG3_DEFAULT		0
#define GIF_DEFAULT			0
#define GIF_LOAD256			1		//! load the image as a 256 color image with ununsed palette entries, if it's 16 or 2 color
#define GIF_PLAYBACK		2		//! 'Play' the GIF to generate each frame (as 32bpp) instead of returning raw frame data when loading
#define HDR_DEFAULT			0
#define ICO_DEFAULT         0
#define ICO_MAKEALPHA		1		//! convert to 32bpp and create an alpha channel from the AND-mask when loading
#define IFF_DEFAULT         0
#define J2K_DEFAULT			0		//! save with a 16:1 rate
#define JP2_DEFAULT			0		//! save with a 16:1 rate
#define JPEG_DEFAULT        0		//! loading (see JPEG_FAST); saving (see JPEG_QUALITYGOOD|JPEG_SUBSAMPLING_420)
#define JPEG_FAST           0x0001	//! load the file as fast as possible, sacrificing some quality
#define JPEG_ACCURATE       0x0002	//! load the file with the best quality, sacrificing some speed
#define JPEG_CMYK			0x0004	//! load separated CMYK "as is" (use | to combine with other load flags)

src/Source/FreeImage/MNGHelper.cpp  view on Meta::CPAN

	DWORD jng_height = 0;
	BYTE jng_color_type = 0;
	BYTE jng_image_sample_depth = 0;
	BYTE jng_image_compression_method = 0;

	BYTE jng_alpha_sample_depth = 0;
	BYTE jng_alpha_compression_method = 0;
	BYTE jng_alpha_filter_method = 0;
	BYTE jng_alpha_interlace_method = 0;

	DWORD mng_frame_width = 0;
	DWORD mng_frame_height = 0;
	DWORD mng_ticks_per_second = 0;
	DWORD mng_nominal_layer_count = 0;
	DWORD mng_nominal_frame_count = 0;
	DWORD mng_nominal_play_time = 0;
	DWORD mng_simplicity_profile = 0;


	DWORD res_x = 2835;	// 72 dpi
	DWORD res_y = 2835;	// 72 dpi
	RGBQUAD rgbBkColor = {0, 0, 0, 0};
	WORD bk_red, bk_green, bk_blue;
	BOOL hasBkColor = FALSE;
	BOOL mHasIDAT = FALSE;

src/Source/FreeImage/MNGHelper.cpp  view on Meta::CPAN

			if(crc_check != crc_file) {
				FreeImage_OutputMessageProc(format_id, "Error while parsing %s chunk: bad CRC", mChunkName);
				throw (const char*)NULL;
			}		

			switch( mng_GetChunckType(mChunkName) ) {
				case MHDR:
					// The MHDR chunk is always first in all MNG datastreams except for those 
					// that consist of a single PNG or JNG datastream with a PNG or JNG signature. 
					if(mLength == 28) {
						memcpy(&mng_frame_width, &mChunk[0], 4);
						memcpy(&mng_frame_height, &mChunk[4], 4);
						memcpy(&mng_ticks_per_second, &mChunk[8], 4);
						memcpy(&mng_nominal_layer_count, &mChunk[12], 4);
						memcpy(&mng_nominal_frame_count, &mChunk[16], 4);
						memcpy(&mng_nominal_play_time, &mChunk[20], 4);
						memcpy(&mng_simplicity_profile, &mChunk[24], 4);

						mng_SwapLong(&mng_frame_width);
						mng_SwapLong(&mng_frame_height);
						mng_SwapLong(&mng_ticks_per_second);
						mng_SwapLong(&mng_nominal_layer_count);
						mng_SwapLong(&mng_nominal_frame_count);
						mng_SwapLong(&mng_nominal_play_time);
						mng_SwapLong(&mng_simplicity_profile);

					} else {
						FreeImage_OutputMessageProc(format_id, "Error while parsing %s chunk: size is %d instead of 28", mChunkName, mLength);
					}
					break;

				case MEND:
					mEnd = TRUE;

src/Source/FreeImage/PluginEXR.cpp  view on Meta::CPAN

					// next line
					scanline += pitch;
				}
				// next chunk
				dw.min.y += chunk_size;
			}

		} else {
			// use the low level interface

			// build a frame buffer (i.e. what we want on output)
			Imf::FrameBuffer frameBuffer;

			// allow dataWindow with minimal bounds different form zero
			size_t offset = - dataWindow.min.x * bytespp - dataWindow.min.y * pitch;

			if(components == 1) {
				frameBuffer.insert ("Y",	// name
					Imf::Slice (pixelType,	// type
					(char*)(bits + offset), // base
					bytespp,				// xStride
					pitch,					// yStride
					1, 1,					// x/y sampling
					0.0));					// fillValue
			} else if((components == 3) || (components == 4)) {
				const char *channel_name[4] = { "R", "G", "B", "A" };

				for(int c = 0; c < components; c++) {
					frameBuffer.insert (
						channel_name[c],					// name
						Imf::Slice (pixelType,				// type
						(char*)(bits + c * sizeof(float) + offset), // base
						bytespp,							// xStride
						pitch,								// yStride
						1, 1,								// x/y sampling
						0.0));								// fillValue
				}
			}

			// read the file
			file.setFrameBuffer(frameBuffer);
			file.readPixels(dataWindow.min.y, dataWindow.max.y);
		}

		// lastly, flip dib lines
		FreeImage_FlipVertical(dib);

	}
	catch(Iex::BaseExc & e) {
		if(dib != NULL) {
			FreeImage_Unload(dib);

src/Source/FreeImage/PluginEXR.cpp  view on Meta::CPAN

				components = 4;
				for(int c = 0; c < components; c++) {
					// insert R, G, B and A channels
					header.channels().insert (channel_name[c], Imf::Channel(pixelType));
				}
				break;
			default:
				THROW (Iex::ArgExc, "Cannot save: invalid data type.\nConvert the image to float before saving as OpenEXR.");
		}

		// build a frame buffer (i.e. what we have on input)
		Imf::FrameBuffer frameBuffer;

		BYTE *bits = NULL;	// pointer to our pixel buffer
		size_t bytespp = 0;	// size of our pixel in bytes
		size_t bytespc = 0;	// size of our pixel component in bytes
		unsigned pitch = 0;	// size of our yStride in bytes


		if(pixelType == Imf::HALF) {
			// convert from float to half
			halfData = new(std::nothrow) half[width * height * components];

src/Source/FreeImage/PluginEXR.cpp  view on Meta::CPAN

			// invert dib scanlines
			bIsFlipped = FreeImage_FlipVertical(dib);
		
			bits = FreeImage_GetBits(dib);
			bytespc = sizeof(float);
			bytespp = sizeof(float) * components;
			pitch = FreeImage_GetPitch(dib);
		}

		if(image_type == FIT_FLOAT) {
			frameBuffer.insert ("Y",	// name
				Imf::Slice (pixelType,	// type
				(char*)(bits),			// base
				bytespp,				// xStride
				pitch));				// yStride
		} else if((image_type == FIT_RGBF) || (image_type == FIT_RGBAF)) {			
			for(int c = 0; c < components; c++) {
				char *channel_base = (char*)(bits) + c*bytespc;
				frameBuffer.insert (channel_name[c],// name
					Imf::Slice (pixelType,			// type
					channel_base,					// base
					bytespp,	// xStride
					pitch));	// yStride
			}
		}

		// write the data
		Imf::OutputFile file (ostream, header);
		file.setFrameBuffer (frameBuffer);
		file.writePixels (height);

		if(halfData != NULL) {
			delete[] halfData;
		}
		if(bIsFlipped) {
			// invert dib scanlines
			FreeImage_FlipVertical(dib);
		}

src/Source/FreeImage/PluginGIF.cpp  view on Meta::CPAN

	}

	FIBITMAP *dib = NULL;
	try {
		bool have_transparent = false, no_local_palette = false, interlaced = false;
		int disposal_method = GIF_DISPOSAL_LEAVE, delay_time = 0, transparent_color = 0;
		WORD left, top, width, height;
		BYTE packed, b;
		WORD w;

		//playback pages to generate what the user would see for this frame
		if( (flags & GIF_PLAYBACK) == GIF_PLAYBACK ) {
			//Logical Screen Descriptor
			io->seek_proc(handle, 6, SEEK_SET);
			WORD logicalwidth, logicalheight;
			io->read_proc(&logicalwidth, 2, 1, handle);
			io->read_proc(&logicalheight, 2, 1, handle);
#ifdef FREEIMAGE_BIGENDIAN
			SwapShort(&logicalwidth);
			SwapShort(&logicalheight);
#endif

src/Source/FreeImage/PluginGIF.cpp  view on Meta::CPAN

						BYTE *pageline = FreeImage_GetScanLine(pagedib, info.height - y - 1);
						for( x = 0; x < info.width; x++ ) {
							if( !have_transparent || *pageline != transparent_color ) {
								*scanline = pal[*pageline];
								scanline->rgbReserved = 255;
							}
							scanline++;
							pageline++;
						}
					}
					//copy frame time
					if( page == end ) {
						FITAG *tag;
						if( FreeImage_GetMetadataEx(FIMD_ANIMATION, pagedib, "FrameTime", FIDT_LONG, &tag) ) {
							delay_time = *(LONG *)FreeImage_GetTagValue(tag);
						}
					}
					FreeImage_Unload(pagedib);
				}
			}

			//setup frame time
			FreeImage_SetMetadataEx(FIMD_ANIMATION, dib, "FrameTime", ANIMTAG_FRAMETIME, FIDT_LONG, 1, 4, &delay_time);
			return dib;
		}

		//get the actual frame image data for a single frame

		//Image Descriptor
		io->seek_proc(handle, (long)info->image_descriptor_offsets[page], SEEK_SET);
		io->read_proc(&left, 2, 1, handle);
		io->read_proc(&top, 2, 1, handle);
		io->read_proc(&width, 2, 1, handle);
		io->read_proc(&height, 2, 1, handle);
#ifdef FREEIMAGE_BIGENDIAN
		SwapShort(&left);
		SwapShort(&top);

src/Source/FreeImage/PluginPICT.cpp  view on Meta::CPAN

/* 0x26 */  res(WORD_LEN),
/* 0x27 */  res(WORD_LEN),
/* 0x28 */  { "LongText",         NA, "txLoc (point), count (0..255), text" },
/* 0x29 */  { "DHText",           NA, "dh (0..255), count (0..255), text" },
/* 0x2a */  { "DVText",           NA, "dv (0..255), count (0..255), text" },
/* 0x2b */  { "DHDVText",         NA, "dh, dv (0..255), count (0..255), text" },
/* 0x2c */  res(WORD_LEN),
/* 0x2d */  res(WORD_LEN),
/* 0x2e */  res(WORD_LEN),
/* 0x2f */  res(WORD_LEN),
/* 0x30 */  { "frameRect",         8, "rect" },
/* 0x31 */  { "paintRect",         8, "rect" },
/* 0x32 */  { "eraseRect",         8, "rect" },
/* 0x33 */  { "invertRect",        8, "rect" },
/* 0x34 */  { "fillRect",          8, "rect" },
/* 0x35 */  res(8),
/* 0x36 */  res(8),
/* 0x37 */  res(8),
/* 0x38 */  { "frameSameRect",     0, "rect" },
/* 0x39 */  { "paintSameRect",     0, "rect" },
/* 0x3a */  { "eraseSameRect",     0, "rect" },
/* 0x3b */  { "invertSameRect",    0, "rect" },
/* 0x3c */  { "fillSameRect",      0, "rect" },
/* 0x3d */  res(0),
/* 0x3e */  res(0),
/* 0x3f */  res(0),
/* 0x40 */  { "frameRRect",        8, "rect" },
/* 0x41 */  { "paintRRect",        8, "rect" },
/* 0x42 */  { "eraseRRect",        8, "rect" },
/* 0x43 */  { "invertRRect",       8, "rect" },
/* 0x44 */  { "fillRRrect",        8, "rect" },
/* 0x45 */  res(8),
/* 0x46 */  res(8),
/* 0x47 */  res(8),
/* 0x48 */  { "frameSameRRect",    0, "rect" },
/* 0x49 */  { "paintSameRRect",    0, "rect" },
/* 0x4a */  { "eraseSameRRect",    0, "rect" },
/* 0x4b */  { "invertSameRRect",   0, "rect" },
/* 0x4c */  { "fillSameRRect",     0, "rect" },
/* 0x4d */  res(0),
/* 0x4e */  res(0),
/* 0x4f */  res(0),
/* 0x50 */  { "frameOval",         8, "rect" },
/* 0x51 */  { "paintOval",         8, "rect" },
/* 0x52 */  { "eraseOval",         8, "rect" },
/* 0x53 */  { "invertOval",        8, "rect" },
/* 0x54 */  { "fillOval",          8, "rect" },
/* 0x55 */  res(8),
/* 0x56 */  res(8),
/* 0x57 */  res(8),
/* 0x58 */  { "frameSameOval",     0, "rect" },
/* 0x59 */  { "paintSameOval",     0, "rect" },
/* 0x5a */  { "eraseSameOval",     0, "rect" },
/* 0x5b */  { "invertSameOval",    0, "rect" },
/* 0x5c */  { "fillSameOval",      0, "rect" },
/* 0x5d */  res(0),
/* 0x5e */  res(0),
/* 0x5f */  res(0),
/* 0x60 */  { "frameArc",         12, "rect, startAngle, arcAngle" },
/* 0x61 */  { "paintArc",         12, "rect, startAngle, arcAngle" },
/* 0x62 */  { "eraseArc",         12, "rect, startAngle, arcAngle" },
/* 0x63 */  { "invertArc",        12, "rect, startAngle, arcAngle" },
/* 0x64 */  { "fillArc",          12, "rect, startAngle, arcAngle" },
/* 0x65 */  res(12),
/* 0x66 */  res(12),
/* 0x67 */  res(12),
/* 0x68 */  { "frameSameArc",      4, "rect, startAngle, arcAngle" },
/* 0x69 */  { "paintSameArc",      4, "rect, startAngle, arcAngle" },
/* 0x6a */  { "eraseSameArc",      4, "rect, startAngle, arcAngle" },
/* 0x6b */  { "invertSameArc",     4, "rect, startAngle, arcAngle" },
/* 0x6c */  { "fillSameArc",       4, "rect, startAngle, arcAngle" },
/* 0x6d */  res(4),
/* 0x6e */  res(4),
/* 0x6f */  res(4),
/* 0x70 */  { "framePoly",        NA, "poly" },
/* 0x71 */  { "paintPoly",        NA, "poly" },
/* 0x72 */  { "erasePoly",        NA, "poly" },
/* 0x73 */  { "invertPoly",       NA, "poly" },
/* 0x74 */  { "fillPoly",         NA, "poly" },
/* 0x75 */  res(NA),
/* 0x76 */  res(NA),
/* 0x77 */  res(NA),
/* 0x78 */  { "frameSamePoly",     0, "poly (NYI)" },
/* 0x79 */  { "paintSamePoly",     0, "poly (NYI)" },
/* 0x7a */  { "eraseSamePoly",     0, "poly (NYI)" },
/* 0x7b */  { "invertSamePoly",    0, "poly (NYI)" },
/* 0x7c */  { "fillSamePoly",      0, "poly (NYI)" },
/* 0x7d */  res(0),
/* 0x7e */  res(0),
/* 0x7f */  res(0),
/* 0x80 */  { "frameRgn",         NA, "region" },
/* 0x81 */  { "paintRgn",         NA, "region" },
/* 0x82 */  { "eraseRgn",         NA, "region" },
/* 0x83 */  { "invertRgn",        NA, "region" },
/* 0x84 */  { "fillRgn",          NA, "region" },
/* 0x85 */  res(NA),
/* 0x86 */  res(NA),
/* 0x87 */  res(NA),
/* 0x88 */  { "frameSameRgn",      0, "region (NYI)" },
/* 0x89 */  { "paintSameRgn",      0, "region (NYI)" },
/* 0x8a */  { "eraseSameRgn",      0, "region (NYI)" },
/* 0x8b */  { "invertSameRgn",     0, "region (NYI)" },
/* 0x8c */  { "fillSameRgn",       0, "region (NYI)" },
/* 0x8d */  res(0),
/* 0x8e */  res(0),
/* 0x8f */  res(0),
/* 0x90 */  { "BitsRect",         NA, "copybits, rect clipped" },
/* 0x91 */  { "BitsRgn",          NA, "copybits, rgn clipped" },
/* 0x92 */  res(WORD_LEN),

src/Source/FreeImage/PluginPICT.cpp  view on Meta::CPAN

	char outputMessage[ outputMessageSize ] = "";
	FIBITMAP* dib = NULL;
	try {		
		// Skip empty 512 byte header.
		if ( !io->seek_proc(handle, 512, SEEK_CUR) == 0 )
			return NULL;
		
		// Read PICT header
		Read16( io, handle ); // Skip version 1 picture size
		
		MacRect frame;
		ReadRect( io, handle, &frame );

		BYTE b = 0;
		while ((b = Read8(io, handle)) == 0);
		if ( b != 0x11 ) {
			throw "invalid header: version number missing.";
		}
		
		int version = Read8( io, handle );
		if ( version == 2 && Read8( io, handle ) != 0xff ) {
			throw "invalid header: illegal version number.";

src/Source/FreeImage/PluginPICT.cpp  view on Meta::CPAN

						break;
				}
			}
			else if (opcode == 0xc00) {
				// version 2 header (26 bytes)
				WORD minorVersion = Read16( io, handle );	// always FFFE (-2) for extended version 2
				Read16( io, handle );						// reserved
				hRes = Read32( io, handle );				// original horizontal resolution in pixels/inch
				vRes = Read32( io, handle );				// original horizontal resolution in pixels/inch
				MacRect dummy;
				ReadRect( io, handle, &dummy );				// frame bounds at original resolution
				Read32( io, handle );						// reserved
			}
			else if (opcode == 0x8200) {
				// jpeg
				long opLen = Read32( io, handle );
				BOOL found = FALSE;
				int i = 0;
				
				// skip to JPEG header.
				while ( !found && i < opLen ) {

src/Source/FreeImage/PluginRAW.cpp  view on Meta::CPAN


			// image output width & height
			{
				sprintf(value, "%d", sizes->iwidth);
				FreeImage_SetMetadataKeyValue(FIMD_COMMENTS, dib, "Raw.Output.Width", value);
				
				sprintf(value, "%d", sizes->iheight);
				FreeImage_SetMetadataKeyValue(FIMD_COMMENTS, dib, "Raw.Output.Height", value);
			}

			// image output frame
			{
				const unsigned f_left = sizes->left_margin;
				const unsigned f_top = sizes->top_margin;
				const unsigned f_width = sizes->width;
				const unsigned f_height = sizes->height;
				
				sprintf(value, "%d", f_left);
				FreeImage_SetMetadataKeyValue(FIMD_COMMENTS, dib, "Raw.Frame.Left", value);

				sprintf(value, "%d", f_top);

src/Source/FreeImage/PluginWebP.cpp  view on Meta::CPAN

			FreeImage_OutputMessageProc(s_format_id, text);
		}

		return NULL;
	}
}

static FIBITMAP * DLL_CALLCONV
Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
	WebPMux *mux = NULL;
	WebPMuxFrameInfo webp_frame = { 0 };	// raw image
	WebPData color_profile;	// ICC raw data
	WebPData xmp_metadata;	// XMP raw data
	WebPData exif_metadata;	// EXIF raw data
	FIBITMAP *dib = NULL;
	WebPMuxError error_status;

	if(!handle) {
		return NULL;
	}

src/Source/FreeImage/PluginWebP.cpp  view on Meta::CPAN

		}
		
		// gets the feature flags from the mux object
		uint32_t webp_flags = 0;
		error_status = WebPMuxGetFeatures(mux, &webp_flags);
		if(error_status != WEBP_MUX_OK) {
			throw (1);
		}

		// get image data
		error_status = WebPMuxGetFrame(mux, 1, &webp_frame);

		if(error_status == WEBP_MUX_OK) {
			// decode the data (can be limited to the header if flags uses FIF_LOAD_NOPIXELS)
			dib = DecodeImage(&webp_frame.bitstream, flags);
			if(!dib) {
				throw (1);
			}
			
			// get ICC profile
			if(webp_flags & ICCP_FLAG) {
				error_status = WebPMuxGetChunk(mux, "ICCP", &color_profile);
				if(error_status == WEBP_MUX_OK) {
					FreeImage_CreateICCProfile(dib, (void*)color_profile.bytes, (long)color_profile.size);
				}

src/Source/FreeImage/PluginWebP.cpp  view on Meta::CPAN

				error_status = WebPMuxGetChunk(mux, "EXIF", &exif_metadata);
				if(error_status == WEBP_MUX_OK) {
					// read the Exif raw data as a blob
					jpeg_read_exif_profile_raw(dib, exif_metadata.bytes, (unsigned)exif_metadata.size);
					// read and decode the Exif data
					jpeg_read_exif_profile(dib, exif_metadata.bytes, (unsigned)exif_metadata.size);
				}
			}
		}

		WebPDataClear(&webp_frame.bitstream);

		return dib;

	} catch(int) {
		WebPDataClear(&webp_frame.bitstream);
		return NULL;
	}
}

// --------------------------------------------------------------------------

/**
Encode a FIBITMAP to a WebP image
@param hmem Memory output stream, containing on return the encoded image
@param dib The FIBITMAP to encode

src/Source/LibJPEG/jcapistd.c  view on Meta::CPAN

    WARNMS(cinfo, JWRN_TOO_MUCH_DATA);

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_scanlines.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_scanlines.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Ignore any extra scanlines at bottom of image. */
  rows_left = cinfo->image_height - cinfo->next_scanline;
  if (num_lines > rows_left)
    num_lines = rows_left;

src/Source/LibJPEG/jcapistd.c  view on Meta::CPAN

  }

  /* Call progress monitor hook if present */
  if (cinfo->progress != NULL) {
    cinfo->progress->pass_counter = (long) cinfo->next_scanline;
    cinfo->progress->pass_limit = (long) cinfo->image_height;
    (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo);
  }

  /* Give master control module another chance if this is first call to
   * jpeg_write_raw_data.  This lets output of the frame/scan headers be
   * delayed so that application can write COM, etc, markers between
   * jpeg_start_compress and jpeg_write_raw_data.
   */
  if (cinfo->master->call_pass_startup)
    (*cinfo->master->pass_startup) (cinfo);

  /* Verify that at least one iMCU row has been passed. */
  lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_v_scaled_size;
  if (num_lines < lines_per_iMCU_row)
    ERREXIT(cinfo, JERR_BUFFER_SIZE);

src/Source/LibJPEG/jcmarker.c  view on Meta::CPAN

  default:
    emit_byte(cinfo, 0);	/* Color transform = 0 */
    break;
  }
}


/*
 * These routines allow writing an arbitrary marker with parameters.
 * The only intended use is to emit COM or APPn markers after calling
 * write_file_header and before calling write_frame_header.
 * Other uses are not guaranteed to produce desirable results.
 * Counting the parameter bytes properly is the caller's responsibility.
 */

METHODDEF(void)
write_marker_header (j_compress_ptr cinfo, int marker, unsigned int datalen)
/* Emit an arbitrary marker header */
{
  if (datalen > (unsigned int) 65533)		/* safety check */
    ERREXIT(cinfo, JERR_BAD_LENGTH);

src/Source/LibJPEG/jcmarker.c  view on Meta::CPAN

  marker->last_restart_interval = 0;

  if (cinfo->write_JFIF_header)	/* next an optional JFIF APP0 */
    emit_jfif_app0(cinfo);
  if (cinfo->write_Adobe_marker) /* next an optional Adobe APP14 */
    emit_adobe_app14(cinfo);
}


/*
 * Write frame header.
 * This consists of DQT and SOFn markers,
 * a conditional LSE marker and a conditional pseudo SOS marker.
 * Note that we do not emit the SOF until we have emitted the DQT(s).
 * This avoids compatibility problems with incorrect implementations that
 * try to error-check the quant table numbers as soon as they see the SOF.
 */

METHODDEF(void)
write_frame_header (j_compress_ptr cinfo)
{
  int ci, prec;
  boolean is_baseline;
  jpeg_component_info *compptr;
  
  /* Emit DQT for each quantization table.
   * Note that emit_dqt() suppresses any duplicate tables.
   */
  prec = 0;
  for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;

src/Source/LibJPEG/jcmarker.c  view on Meta::CPAN

{
  my_marker_ptr marker;

  /* Create the subobject */
  marker = (my_marker_ptr)
    (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
				SIZEOF(my_marker_writer));
  cinfo->marker = &marker->pub;
  /* Initialize method pointers */
  marker->pub.write_file_header = write_file_header;
  marker->pub.write_frame_header = write_frame_header;
  marker->pub.write_scan_header = write_scan_header;
  marker->pub.write_file_trailer = write_file_trailer;
  marker->pub.write_tables_only = write_tables_only;
  marker->pub.write_marker_header = write_marker_header;
  marker->pub.write_marker_byte = write_marker_byte;
  /* Initialize private state */
  marker->last_restart_interval = 0;
}

src/Source/LibJPEG/jcmaster.c  view on Meta::CPAN

      (*cinfo->downsample->start_pass) (cinfo);
      (*cinfo->prep->start_pass) (cinfo, JBUF_PASS_THRU);
    }
    (*cinfo->fdct->start_pass) (cinfo);
    (*cinfo->entropy->start_pass) (cinfo, cinfo->optimize_coding);
    (*cinfo->coef->start_pass) (cinfo,
				(master->total_passes > 1 ?
				 JBUF_SAVE_AND_PASS : JBUF_PASS_THRU));
    (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU);
    if (cinfo->optimize_coding) {
      /* No immediate data output; postpone writing frame/scan headers */
      master->pub.call_pass_startup = FALSE;
    } else {
      /* Will write frame/scan headers at first jpeg_write_scanlines call */
      master->pub.call_pass_startup = TRUE;
    }
    break;
#ifdef ENTROPY_OPT_SUPPORTED
  case huff_opt_pass:
    /* Do Huffman optimization for a scan after the first one. */
    select_scan_parameters(cinfo);
    per_scan_setup(cinfo);
    if (cinfo->Ss != 0 || cinfo->Ah == 0) {
      (*cinfo->entropy->start_pass) (cinfo, TRUE);

src/Source/LibJPEG/jcmaster.c  view on Meta::CPAN

#endif
  case output_pass:
    /* Do a data-output pass. */
    /* We need not repeat per-scan setup if prior optimization pass did it. */
    if (! cinfo->optimize_coding) {
      select_scan_parameters(cinfo);
      per_scan_setup(cinfo);
    }
    (*cinfo->entropy->start_pass) (cinfo, FALSE);
    (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST);
    /* We emit frame/scan headers now */
    if (master->scan_number == 0)
      (*cinfo->marker->write_frame_header) (cinfo);
    (*cinfo->marker->write_scan_header) (cinfo);
    master->pub.call_pass_startup = FALSE;
    break;
  default:
    ERREXIT(cinfo, JERR_NOT_COMPILED);
  }

  master->pub.is_last_pass = (master->pass_number == master->total_passes-1);

  /* Set up progress monitor's pass info if present */

src/Source/LibJPEG/jcmaster.c  view on Meta::CPAN

    cinfo->progress->completed_passes = master->pass_number;
    cinfo->progress->total_passes = master->total_passes;
  }
}


/*
 * Special start-of-pass hook.
 * This is called by jpeg_write_scanlines if call_pass_startup is TRUE.
 * In single-pass processing, we need this hook because we don't want to
 * write frame/scan headers during jpeg_start_compress; we want to let the
 * application write COM markers etc. between jpeg_start_compress and the
 * jpeg_write_scanlines loop.
 * In multi-pass processing, this routine is not used.
 */

METHODDEF(void)
pass_startup (j_compress_ptr cinfo)
{
  cinfo->master->call_pass_startup = FALSE; /* reset flag so call only once */

  (*cinfo->marker->write_frame_header) (cinfo);
  (*cinfo->marker->write_scan_header) (cinfo);
}


/*
 * Finish up at end of pass.
 */

METHODDEF(void)
finish_pass_master (j_compress_ptr cinfo)

src/Source/LibJPEG/jpegint.h  view on Meta::CPAN

/* Entropy encoding */
struct jpeg_entropy_encoder {
  JMETHOD(void, start_pass, (j_compress_ptr cinfo, boolean gather_statistics));
  JMETHOD(boolean, encode_mcu, (j_compress_ptr cinfo, JBLOCKROW *MCU_data));
  JMETHOD(void, finish_pass, (j_compress_ptr cinfo));
};

/* Marker writing */
struct jpeg_marker_writer {
  JMETHOD(void, write_file_header, (j_compress_ptr cinfo));
  JMETHOD(void, write_frame_header, (j_compress_ptr cinfo));
  JMETHOD(void, write_scan_header, (j_compress_ptr cinfo));
  JMETHOD(void, write_file_trailer, (j_compress_ptr cinfo));
  JMETHOD(void, write_tables_only, (j_compress_ptr cinfo));
  /* These routines are exported to allow insertion of extra markers */
  /* Probably only COM and APPn markers should be written this way */
  JMETHOD(void, write_marker_header, (j_compress_ptr cinfo, int marker,
				      unsigned int datalen));
  JMETHOD(void, write_marker_byte, (j_compress_ptr cinfo, int val));
};

src/Source/LibJXR/image/decode/strdec.c  view on Meta::CPAN

        }
    }

    if(allocatePredInfo(pSC) != ICERR_OK){
        return ICERR_ERROR;
    }

    if(allocateTileInfo(pSC) != ICERR_OK)
        return ICERR_ERROR;

    if((pSC->m_param.uQPMode & 1) == 0){ // DC frame uniform quantization
        if(allocateQuantizer(pSC->pTile[0].pQuantizerDC, pSC->m_param.cNumChannels, 1) != ICERR_OK)
            return ICERR_ERROR;
        setUniformQuantizer(pSC, 0);
        for(i = 0; i < pSC->m_param.cNumChannels; i ++)
            pSC->pTile[0].pQuantizerDC[i]->iIndex = pSC->m_param.uiQPIndexDC[i];
        formatQuantizer(pSC->pTile[0].pQuantizerDC, (pSC->m_param.uQPMode >> 3) & 3, pSC->m_param.cNumChannels, 0, TRUE, pSC->m_param.bScaledArith);
    }

    if(pSC->WMISCP.sbSubband != SB_DC_ONLY){
        if((pSC->m_param.uQPMode & 2) == 0){ // LP frame uniform quantization
            if(allocateQuantizer(pSC->pTile[0].pQuantizerLP, pSC->m_param.cNumChannels, 1) != ICERR_OK)
                return ICERR_ERROR;
            setUniformQuantizer(pSC, 1);
            if((pSC->m_param.uQPMode & 0x200) == 0) // use DC quantizer
                useDCQuantizer(pSC, 0);
            else{
                for(i = 0; i < pSC->m_param.cNumChannels; i ++)
                    pSC->pTile[0].pQuantizerLP[i]->iIndex = pSC->m_param.uiQPIndexLP[i];
                formatQuantizer(pSC->pTile[0].pQuantizerLP, (pSC->m_param.uQPMode >> 5) & 3, pSC->m_param.cNumChannels, 0, TRUE, pSC->m_param.bScaledArith);
            }
        }

        if(pSC->WMISCP.sbSubband != SB_NO_HIGHPASS){
            if((pSC->m_param.uQPMode & 4) == 0){ // HP frame uniform quantization
                if(allocateQuantizer(pSC->pTile[0].pQuantizerHP, pSC->m_param.cNumChannels, 1) != ICERR_OK)
                    return ICERR_ERROR;
                setUniformQuantizer(pSC, 2);

                if((pSC->m_param.uQPMode & 0x400) == 0) // use LP quantizer
                    useLPQuantizer(pSC, 1, 0);
                else{
                    for(i = 0; i < pSC->m_param.cNumChannels; i ++)
                        pSC->pTile[0].pQuantizerHP[i]->iIndex = pSC->m_param.uiQPIndexHP[i];
                    formatQuantizer(pSC->pTile[0].pQuantizerHP, (pSC->m_param.uQPMode >> 7) & 3, pSC->m_param.cNumChannels, 0, FALSE, pSC->m_param.bScaledArith);

src/Source/LibJXR/image/decode/strdec.c  view on Meta::CPAN

                pSC->uQPMode += ((pSC->uQPMode & 2) << 1) + ((pSC->uQPMode & 0x60) << 2);
        }
    }

    if(pSCP->sbSubband == SB_DC_ONLY)
        pSC->uQPMode |= 0x200;
    else if(pSCP->sbSubband == SB_NO_HIGHPASS)
        pSC->uQPMode |= 0x400;
    

    FailIf((pSC->uQPMode & 0x600) == 0, WMP_errInvalidParameter); // frame level QPs must be specified independently!

    flushToByte_SB(pSB);  // remove this later

Cleanup:
    return WMP_errSuccess == err ? ICERR_OK : ICERR_ERROR;
}

/*************************************************************************
    Read header of image, and header of FIRST PLANE only
*************************************************************************/

src/Source/LibJXR/image/encode/strenc.c  view on Meta::CPAN

            if(pSCP->nLenMantissaOrShift == 0)
                pSCP->nLenMantissaOrShift = 13;//default
            PUTBITS(pIO, pSCP->nLenMantissaOrShift, 8);//float conversion parameters
            PUTBITS(pIO, pSCP->nExpBias, 8);
            break;
        default:
            break;
    }

        // quantization
    PUTBITS(pIO, (pSC->m_param.uQPMode & 1) == 1 ? 0 : 1, 1); // DC frame uniform quantization?
    if((pSC->m_param.uQPMode & 1) == 0)
        writeQuantizer(pSC->pTile[0].pQuantizerDC, pIO, (pSC->m_param.uQPMode >> 3) & 3, pSC->m_param.cNumChannels, 0);
    if(pSC->WMISCP.sbSubband != SB_DC_ONLY){
        PUTBITS(pIO, (pSC->m_param.uQPMode & 0x200) == 0 ? 1 : 0, 1); // use DC quantization?
        if((pSC->m_param.uQPMode & 0x200) != 0){
            PUTBITS(pIO, (pSC->m_param.uQPMode & 2) == 2 ? 0 : 1, 1); // LP frame uniform quantization?
            if((pSC->m_param.uQPMode & 2) == 0)
                writeQuantizer(pSC->pTile[0].pQuantizerLP, pIO, (pSC->m_param.uQPMode >> 5) & 3,  pSC->m_param.cNumChannels, 0);
        }

        if(pSC->WMISCP.sbSubband != SB_NO_HIGHPASS){
            PUTBITS(pIO, (pSC->m_param.uQPMode & 0x400) == 0 ? 1 : 0, 1); // use LP quantization?
            if((pSC->m_param.uQPMode & 0x400) != 0){
                PUTBITS(pIO, (pSC->m_param.uQPMode & 4) == 4 ? 0 : 1, 1); // HP frame uniform quantization?
                if((pSC->m_param.uQPMode & 4) == 0)
                    writeQuantizer(pSC->pTile[0].pQuantizerHP, pIO, (pSC->m_param.uQPMode >> 7) & 3,  pSC->m_param.cNumChannels, 0);
            }
        }
    }

    fillToByte(pIO);  // remove this later
    return ICERR_OK;
}

src/Source/LibJXR/image/encode/strenc.c  view on Meta::CPAN

        if (iQPIndexUHP < 2)
            iQPIndexUHP = 0;
		if(iQPIndexV < 2)
            iQPIndexV = 0;
		if (iQPIndexVLP < 2)
            iQPIndexVLP = 0;
		if (iQPIndexVHP < 2)
            iQPIndexVHP = 0;
    }

    if((pSC->m_param.uQPMode & 1) == 0){ // DC frame uniform quantization
        if(allocateQuantizer(pSC->pTile[0].pQuantizerDC, pSC->m_param.cNumChannels, 1) != ICERR_OK)
            return ICERR_ERROR;
        setUniformQuantizer(pSC, 0);
        for(i = 0; i < pSC->m_param.cNumChannels; i ++)
            if(pSC->m_param.bTranscode)
                pSC->pTile[0].pQuantizerDC[i]->iIndex = pSC->m_param.uiQPIndexDC[i];
            else
                pSC->pTile[0].pQuantizerDC[i]->iIndex = pSC->m_param.uiQPIndexDC[i] = (U8)(((i == 0 ? iQPIndexY : (i == 1) ? iQPIndexU: iQPIndexV)) & 0xff);
        formatQuantizer(pSC->pTile[0].pQuantizerDC, (pSC->m_param.uQPMode >> 3) & 3, pSC->m_param.cNumChannels, 0, TRUE, pSC->m_param.bScaledArith);

        for(i = 0; i < pSC->m_param.cNumChannels; i ++)
            pSC->pTile[0].pQuantizerDC[i]->iOffset = (pSC->pTile[0].pQuantizerDC[i]->iQP >> 1);
    }

    if(pSC->WMISCP.sbSubband != SB_DC_ONLY){
        if((pSC->m_param.uQPMode & 2) == 0){ // LP frame uniform quantization
            if(allocateQuantizer(pSC->pTile[0].pQuantizerLP, pSC->m_param.cNumChannels, 1) != ICERR_OK)
                return ICERR_ERROR;
            setUniformQuantizer(pSC, 1);
            for(i = 0; i < pSC->m_param.cNumChannels; i ++)
                if(pSC->m_param.bTranscode)
                    pSC->pTile[0].pQuantizerLP[i]->iIndex = pSC->m_param.uiQPIndexLP[i];
                else
                    pSC->pTile[0].pQuantizerLP[i]->iIndex = pSC->m_param.uiQPIndexLP[i] = (U8)(((i == 0 ? iQPIndexYLP : (i == 1) ? iQPIndexULP: iQPIndexVLP)) & 0xff);
            formatQuantizer(pSC->pTile[0].pQuantizerLP, (pSC->m_param.uQPMode >> 5) & 3, pSC->m_param.cNumChannels, 0, TRUE, pSC->m_param.bScaledArith);
        }

        if(pSC->WMISCP.sbSubband != SB_NO_HIGHPASS){
            if((pSC->m_param.uQPMode & 4) == 0){ // HP frame uniform quantization
                if(allocateQuantizer(pSC->pTile[0].pQuantizerHP, pSC->m_param.cNumChannels, 1) != ICERR_OK)
                    return ICERR_ERROR;
                setUniformQuantizer(pSC, 2);
                for(i = 0; i < pSC->m_param.cNumChannels; i ++)
                    if(pSC->m_param.bTranscode)
                        pSC->pTile[0].pQuantizerHP[i]->iIndex = pSC->m_param.uiQPIndexHP[i];
                    else
                        pSC->pTile[0].pQuantizerHP[i]->iIndex = pSC->m_param.uiQPIndexHP[i] = (U8)(((i == 0 ? iQPIndexYHP : (i == 1) ? iQPIndexUHP: iQPIndexVHP)) & 0xff);
                formatQuantizer(pSC->pTile[0].pQuantizerHP, (pSC->m_param.uQPMode >> 7) & 3, pSC->m_param.cNumChannels, 0, FALSE, pSC->m_param.bScaledArith);
            }

src/Source/LibJXR/image/sys/windowsmediaphoto.h  view on Meta::CPAN

// Codec-specific constants
#define MB_WIDTH_PIXEL 16
#define MB_HEIGHT_PIXEL 16

#define BLK_WIDTH_PIXEL 4
#define BLK_HEIGHT_PIXEL 4

#define MB_WIDTH_BLK 4
#define MB_HEIGHT_BLK 4

// The codec operates most efficiently when the framebuffers for encoder input
// and decoder output are: 1) aligned on a particular boundary, and 2) the stride
// is also aligned to this boundary (so that each scanline is also aligned).
// This boundary is defined below.
#define FRAMEBUFFER_ALIGNMENT 128


//================================================================
#define WMP_errSuccess 0

#define WMP_errFail -1

src/Source/LibJXR/jxrgluelib/JXRGlueJxr.c  view on Meta::CPAN

        {
            pID->WMP.DecoderCurrMBRow = 0;
            pID->WMP.cLinesDecoded = 0;
            pID->WMP.cLinesCropped = 0;
            pID->WMP.fFirstNonZeroDecode = FALSE;
            FailIf(ICERR_OK != ImageStrDecTerm(pID->WMP.ctxSC), WMP_errFail);   
            Call(pID->WMP.wmiSCP.pWStream->SetPos(pID->WMP.wmiSCP.pWStream, pID->WMP.cMarker));
            FailIf(ICERR_OK != ImageStrDecInit(&pID->WMP.wmiI, &pID->WMP.wmiSCP, &pID->WMP.ctxSC), WMP_errFail);
        }

        // In "Low Memory mode", we don't have full frame buffer. We therefore cannot rotate the image.
        // We can flip H, V and HV, but no rotations.
        FailIf(pID->WMP.wmiI.oOrientation >= O_RCW, WMP_errFail);

        // In low-memory mode, the full frame buffer is unavailable. This doesn't seem to
        // matter in O_NONE and O_FLIPH, but for O_FLIPV and O_FLIPVH, outputMBRow tries to write to
        // the bottom of full-frame buffer. Adjust the buffer pointer to compensate.
        if (O_FLIPV == pID->WMP.wmiI.oOrientation || O_FLIPVH == pID->WMP.wmiI.oOrientation)
        {
            I32 iActualY2 = pRect->Y + pRect->Height;
            pbLowMemAdj = pb - (pID->WMP.wmiI.cROIHeight - (iActualY2 - pID->WMP.cLinesCropped)) * cbStride;
        }
        else
        {
            pbLowMemAdj = pb - pRect->Y * cbStride;
        }
        wmiBI.pv = pbLowMemAdj;

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN

        * New decoder information bit DECODER_HASRAWCURVE 
        * LibRaw 0.14.2-Release

2011-10-11 Alex Tutubalin <lexa@lexa.ru>
        * Imported dcraw 9.11/1.445:
          + Support for new cameras added: Fujifilm F600EXR, Nikon P7100,
            Olympus E-PL3 and E-PM1, Panasonic DMC-FZ150, Sony NEX-5N, 
            A65 and A77.
          + Changed color data for: Olympus E-P3, Panasonic G3 and GF3,
            PhaseOne H25, P40 and P65, Sony NEX-C3, NEX-5, NEX-3, A35 and A55.
          + Support for dark frame extraction on Sony cameras.

        * DCB demosaicing: reserving 6 pixels instead of 3 to suppress 
          colored image frame.
        * LibRaw 0.14.1-Release

2011-09-21 Alex Tutubalin <lexa@lexa.ru>
        * Cosmetic changes to make Visual C++/OpenMP more happy
        * Fix megapixel calculation for postprocessing_benchmark in half mode
        * Shlib version number increment
        * LibRaw 0.14.0-Release

2011-09-04 Alex Tutubalin <lexa@lexa.ru>
        * Fixed bug with Kodak thumbnail extraction

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN

	* Three patches provided by Jacques Desmis:
          - Exposure correction before demosaic (demosaic pack GPL3)
	  - OpenMP speed-up in median filters (demosaic pack GPL2)
	  - OpenMP speed-up in green equilibration (demosaic pack GPL3)
	* Merged 0.12.2-0.12.3 changes:
          - Patches for ./configure system for better LCMS2 support
	  - Patches for ./configure system
	  - math.h included before any other includes to make KDE compile
	    with Visual C++ happy
	  - Fuji FinePix S5500 size adjusted to ignore (rare?) garbage 
	    at top of frame.
        * all client code should be recompiled due to internals change.
        * LibRaw 0.13.0-Beta1

2010-12-22 Alex Tutubalin <lexa@lexa.ru>
        * Zero copy huffman buffer for LibRaw_buffer_datastream
        * Fixed memory leak in compressed NEFs handling
        * LibRaw 0.13.0-Alpha2

2010-12-20 Alex Tutubalin <lexa@lexa.ru>
        * Demosaic-pack-GPL3 changes:

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN

             + Color data changed for some cameras

           * LibRaw 0.10.0-Beta2.

2010-06-06 Alex Tutubalin <lexa@lexa.ru>
           * dcraw 9.01 (1.434) imported:
             + Separate black levels for each color channel.
             + New cameras: Canon 550D, Casio EX-Z1050, Fuji HS10/HS11,
               Kodak Z981, Panasonic G2 and G10, Phase One P65, 
               Samsung NX-10 and WB550, Sony NEX-3 and NEX-5.
             + Fixed file descriptor leak in dark frame subtraction processing

           * Fixed dcraw 9.01's bug in DNG black level processing

           * Preliminary support for Sony A450 camera.

           * New command-line switch -h in mem_image sample (half_size support)

           * Some patches by Johannes Hanika (darktable author):
              + OpenMP speedup  for PPG-interpolation
              + green_matching  - suppress of 'color maze' on cameras with

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN


2009-07-21 Alex Tutubalin <lexa@lexa.ru>
           * Imported dcraw 8.95 (1.425):
             + new huffman tree code
             + New cameras supported: AGFAPHOTO DC-833m, Casio EX-S20,
                Phase One P65, Samsung S850
             + Removed hardcoded white-balance data for many P&S cameras.
               It is recommended to set params.use_camera_wb to 1 for 
               safe WB.
           * Fixes for Nikon D5000 files: no pink stripe at 
             right side of frame
           * C-wrapper: added missed calls
               libraw_dcraw_make_mem_image
               libraw_dcraw_ make_mem_thumb
           * Minor fixes to make non-gcc compilers more happy
           * Internal structures changed, full recompilation of all client 
             code is needed.
           * LibRaw 0.8.0-Beta4
                
2009-06-08 Alex Tutubalin <lexa@lexa.ru>
           * Fixes: gamma  curve processing was not performed in 

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN

           * dcraw 8.91/1.418 imported
             + Hasselblad V96C support

           * You need to clean and recompile client code which
             uses LibRaw_*_datastream classes.

           * LibRaw 0.7.0-Alpha6

2009-01-30  Alex Tutubalin <lexa@lexa.ru>

           * New data input framework is created. It is possible now to
             easyly implement your own data input interface for LibRaw
             (e.g. for reading RAW data from network data stream)
             
           * All older programs using previous LibRaw versions are
	     compatible at source code level.

           * LibRaw can read RAW data from memory buffer via
             new LibRaw::open_buffer() API call (implemented on top of
             new input framework). 
             This call used in sample application dcraw_emu and simple_dcraw
             (with -B command-line switch) to test new API.

           * Error handling callback functions now can be called with
             NULL filename passed (if underlying data stream object
             does not know file name).
             So, client error handling callbacks should work with NULL
             filename.

           * All client code should be recompiled

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN


2009-01-10 Alex Tutubalin <lexa@lexa.ru>
           * Fixed bug in add_masked_borders: crash if output dimensions
            is already larger than raw dimensions
            * Fixed out of bounds in samples/unprocessed_raw.cpp for files
            with non-square pixels

           * LibRaw 0.7.0-Alpha2 released
           
2009-01-08 Alex Tutubalin <lexa@lexa.ru>
           * Fixed bug in  0.7.0-a0: black frame size has not reset, 
             so in batch processing there is an error in black frame
             size for files without black frame.

           * Implemented reading of black/masked pixels data for 
             near all cameras with masked pixels, exclding:
              + Canon sRAW, Leaf (MOS), Sinar 4-shot - more than one 
                color component in black frame (redesign of black frame
                data structures required).
              + Fuji SuperCCD: need to design right methods of extraction 
                (should we rotate and resize black pixels as active ones??)

            * Tested for most dSLR data formats with masked pixels: 7 of 9
              untested formats are from old P&S cameras.

           * New call LibRaw::unpack_function_name() returns unpack function name
             (useful for testers only)

           * New identify sample parameters (useful for test-suite builders
             to check test coverage):
                  -u - print unpack function name
                  -f - print masked frame size
             These parameters works only for identify run without -v parameter

           * Imported dcraw 8.89/1.411
             + changes in Panasonic FZ50 files parsing

           * LibRaw 0.7.0-Alpha1 released


2009-01-05 Alex Tutubalin <lexa@lexa.ru>
           * It is possible to turn off RAW data filtration (black level 

src/Source/LibRawLite/Changelog.txt  view on Meta::CPAN

2008-09-08 Alex Tutubalin <lexa@lexa.ru>
           * ICC-profiles support (same as in dcraw)
             + input/output profiles (specified as path to 'icc' file or 'embed' for 
               embedded input profile)
             + additional warnings
             + LCMS library used

           * support of bad pixel map (caller should specify path to bad pixel file 
              in dcraw-compatible format)

           * dark frame subtraction support (caller should supply path to 16-bit PGM 
              map). samples/simple_dcraw.cpp - -4 option added for dark frame file 
              generation

           * support of bad pixeld map (dcraw-compatible format)

           * the dcraw_emu sample supports all new features (ICC, dark frame, bad 
              pixels)

           * libraw/libraw_version.h, defines, calls and macros for version checks:
              + LibRaw::version(), LibRaw::versionNumber(), LIBRAW_CHECK_VERSION()

           * List of supported cameras:
              + LibRaw::cameraCount()
              + LibRaw::cameraList()

           * fixed error in adjust_sizes_info_only

src/Source/LibRawLite/dcraw/dcraw.1.html  view on Meta::CPAN


to get the raw pixel values.
<DT><B>-P deadpixels.txt</B>

<DD>
Read the dead pixel list from this file instead of &quot;.badpixels&quot;.
See
<B>FILES</B>

for a description of the format.
<DT><B>-K darkframe.pgm</B>

<DD>
Subtract a dark frame from the raw data.  To generate a
dark frame, shoot a raw photo with no light and do
<B>dcraw&nbsp;-D&nbsp;-4&nbsp;-j&nbsp;-t&nbsp;0</B>.

<DT><B>-k darkness</B>

<DD>
When shadows appear foggy, you need to raise the darkness level.
To measure this, apply
<B>pamsumm -mean</B>

to the dark frame generated above.
<DT><B>-S saturation</B>

<DD>
When highlights appear pink, you need to lower the saturation level.
To measure this, take a picture of something shiny and do
<B>dcraw -D -4 -j -c</B>

photo.raw
<B>| pamsumm -max</B>

src/Source/LibRawLite/dcraw/dcraw.c  view on Meta::CPAN

  do {
    fread (data, 2, 2, ifp);
    tag =  data[0] << 8 | data[1];
    len = (data[2] << 8 | data[3]) - 2;

// printf ("\n*** ljpeg_start pos= %llx tag= %x, len= %d", ftell(ifp)-4, tag, len);

    if (tag <= 0xff00) return 0;
    fread (data, 1, len, ifp);
    switch (tag) {
      case 0xffc3:        // start of frame; lossless, Huffman
	jh->sraw = ((data[7] >> 4) * (data[7] & 15) - 1) & 3;
//	printf ("\n*** %x: startraw= %d", tag, jh->sraw);
      case 0xffc0:        // start of frame; baseline jpeg
	jh->bits = data[0];
	jh->high = data[1] << 8 | data[2];
	jh->wide = data[3] << 8 | data[4];
	jh->clrs = data[5] + jh->sraw;

if (!strcmp(model, "EOS 5DS"))
{
  jh->wide = data[1] << 8 | data[2];
	jh->high = data[3] << 8 | data[4];
}

src/Source/LibRawLite/dcraw/dcraw.c  view on Meta::CPAN

  free (ppm);
}
//@end COMMON

int CLASS main (int argc, const char **argv)
{
  int arg, status=0, quality, i, c;
  int timestamp_only=0, thumbnail_only=0, identify_only=0;
  int user_qual=-1, user_black=-1, user_sat=-1, user_flip=-1;
  int use_fuji_rotate=1, write_to_stdout=0, read_from_stdin=0;
  const char *sp, *bpfile=0, *dark_frame=0, *write_ext;
  char opm, opt, *ofname, *cp;
  struct utimbuf ut;
#ifndef NO_LCMS
  const char *cam_profile=0, *out_profile=0;
#endif

#ifndef LOCALTIME
  putenv ((char *) "TZ=UTC");
#endif
#ifdef LOCALEDIR

src/Source/LibRawLite/dcraw/dcraw.c  view on Meta::CPAN

    puts(_("-i        Identify files without decoding them"));
    puts(_("-i -v     Identify files and show metadata"));
    puts(_("-z        Change file dates to camera timestamp"));
    puts(_("-w        Use camera white balance, if possible"));
    puts(_("-a        Average the whole image for white balance"));
    puts(_("-A <x y w h> Average a grey box for white balance"));
    puts(_("-r <r g b g> Set custom white balance"));
    puts(_("+M/-M     Use/don't use an embedded color matrix"));
    puts(_("-C <r b>  Correct chromatic aberration"));
    puts(_("-P <file> Fix the dead pixels listed in this file"));
    puts(_("-K <file> Subtract dark frame (16-bit raw PGM)"));
    puts(_("-k <num>  Set the darkness level"));
    puts(_("-S <num>  Set the saturation level"));
    puts(_("-n <num>  Set threshold for wavelet denoising"));
    puts(_("-H [0-9]  Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild)"));
    puts(_("-t [0-7]  Flip image (0=none, 3=180, 5=90CCW, 6=90CW)"));
    puts(_("-o [0-5]  Output colorspace (raw,sRGB,Adobe,Wide,ProPhoto,XYZ)"));
#ifndef NO_LCMS
    puts(_("-o <file> Apply output ICC profile from file"));
    puts(_("-p <file> Apply camera ICC profile from file or \"embed\""));
#endif

src/Source/LibRawLite/dcraw/dcraw.c  view on Meta::CPAN

      case 'o':
	if (isdigit(argv[arg][0]) && !argv[arg][1])
	  output_color = atoi(argv[arg++]);
#ifndef NO_LCMS
	else     out_profile = argv[arg++];
	break;
      case 'p':  cam_profile = argv[arg++];
#endif
	break;
      case 'P':  bpfile     = argv[arg++];  break;
      case 'K':  dark_frame = argv[arg++];  break;
      case 'z':  timestamp_only    = 1;  break;
      case 'e':  thumbnail_only    = 1;  break;
      case 'i':  identify_only     = 1;  break;
      case 'c':  write_to_stdout   = 1;  break;
      case 'v':  verbose           = 1;  break;
      case 'h':  half_size         = 1;  break;
      case 'f':  four_color_rgb    = 1;  break;
      case 'A':  FORC4 greybox[c]  = atoi(argv[arg++]);
      case 'a':  use_auto_wb       = 1;  break;
      case 'w':  use_camera_wb     = 1;  break;

src/Source/LibRawLite/dcraw/dcraw.c  view on Meta::CPAN

    iheight = (height + shrink) >> shrink;
    iwidth  = (width  + shrink) >> shrink;
    if (raw_image) {
      image = (ushort (*)[4]) calloc (iheight, iwidth*sizeof *image);
      merror (image, "main()");
      crop_masked_pixels();
      free (raw_image);
    }
    if (zero_is_bad) remove_zeroes();
    bad_pixels (bpfile);
    if (dark_frame) subtract (dark_frame);
    quality = 2 + !fuji_width;
    if (user_qual >= 0) quality = user_qual;
    i = cblack[3];
    FORC3 if (i > cblack[c]) i = cblack[c];
    FORC4 cblack[c] -= i;
    black += i;
    i = cblack[6];
    FORC (cblack[4] * cblack[5])
      if (i > cblack[6+c]) i = cblack[6+c];
    FORC (cblack[4] * cblack[5])

src/Source/LibRawLite/internal/dcraw_common.cpp  view on Meta::CPAN

  do {
    fread (data, 2, 2, ifp);
    tag =  data[0] << 8 | data[1];
    len = (data[2] << 8 | data[3]) - 2;

// printf ("\n*** ljpeg_start pos= %llx tag= %x, len= %d", ftell(ifp)-4, tag, len);

    if (tag <= 0xff00) return 0;
    fread (data, 1, len, ifp);
    switch (tag) {
      case 0xffc3:        // start of frame; lossless, Huffman
	jh->sraw = ((data[7] >> 4) * (data[7] & 15) - 1) & 3;
//	printf ("\n*** %x: startraw= %d", tag, jh->sraw);
      case 0xffc0:        // start of frame; baseline jpeg
	jh->bits = data[0];
	jh->high = data[1] << 8 | data[2];
	jh->wide = data[3] << 8 | data[4];
	jh->clrs = data[5] + jh->sraw;

if (!strcmp(model, "EOS 5DS"))
{
  jh->wide = data[1] << 8 | data[2];
	jh->high = data[3] << 8 | data[4];
}

src/Source/LibRawLite/libraw/libraw_types.h  view on Meta::CPAN

    int         half_size;      /* -h */
    int         four_color_rgb; /* -f */
    int         highlight;      /* -H */
    int         use_auto_wb;    /* -a */
    int         use_camera_wb;  /* -w */
    int         use_camera_matrix; /* +M/-M */
    int         output_color;   /* -o */
    char        *output_profile; /* -o */
    char        *camera_profile; /* -p */
    char        *bad_pixels;    /* -P */
    char        *dark_frame;    /* -K */
    int         output_bps;     /* -4 */
    int         output_tiff;    /* -T */
    int         user_flip;      /* -t */
    int         user_qual;      /* -q */
    int         user_black;     /* -k */
    int		user_cblack[4];
    int         user_sat;       /* -S */

    int         med_passes;     /* -m */
    float       auto_bright_thr;

src/Source/LibRawLite/src/libraw_cxx.cpp  view on Meta::CPAN

        if(decoder_info.decoder_flags &  LIBRAW_DECODER_OWNALLOC)
          {
            // x3f foveon decoder only: do nothing

          }
        else if (!(imgdata.idata.filters || P1.colors == 1))
          {
            // successfully decoded legacy image, attach image to raw_alloc
            imgdata.rawdata.raw_alloc = imgdata.image;
            imgdata.image = 0;
            // Restore saved values. Note: Foveon have masked frame
            // Other 4-color legacy data: no borders
            S.raw_width = S.width;
            S.left_margin = 0;
            S.raw_height = S.height;
            S.top_margin = 0;
          }
      }

    if(imgdata.rawdata.raw_image)
      crop_masked_pixels(); // calculate black levels

src/Source/LibRawLite/src/libraw_cxx.cpp  view on Meta::CPAN


    int no_crop = 1;

    if (~O.cropbox[2] && ~O.cropbox[3])
      no_crop=0;

    libraw_decoder_info_t di;
    get_decoder_info(&di);

    bool is_bayer = (imgdata.idata.filters || P1.colors == 1);
    int subtract_inline = !O.bad_pixels && !O.dark_frame && !O.wf_debanding && is_bayer && !IO.zero_is_bad;

    raw2image_ex(subtract_inline); // allocate imgdata.image and copy data!

    // Adjust sizes

    int save_4color = O.four_color_rgb;

    if (IO.zero_is_bad)
      {
        remove_zeroes();
        SET_PROC_FLAG(LIBRAW_PROGRESS_REMOVE_ZEROES);
      }

    if(O.bad_pixels && no_crop)
      {
        bad_pixels(O.bad_pixels);
        SET_PROC_FLAG(LIBRAW_PROGRESS_BAD_PIXELS);
      }

    if (O.dark_frame && no_crop)
      {
        subtract (O.dark_frame);
        SET_PROC_FLAG(LIBRAW_PROGRESS_DARK_FRAME);
      }

    if (O.wf_debanding)
      {
        wf_remove_banding();
      }

    quality = 2 + !IO.fuji_width;

src/Source/LibRawLite/src/libraw_cxx.cpp  view on Meta::CPAN

      return "Reading metadata";
    case LIBRAW_PROGRESS_SIZE_ADJUST:
      return "Adjusting size";
    case LIBRAW_PROGRESS_LOAD_RAW:
      return "Reading RAW data";
    case LIBRAW_PROGRESS_REMOVE_ZEROES:
      return "Clearing zero values";
    case LIBRAW_PROGRESS_BAD_PIXELS :
      return "Removing dead pixels";
    case LIBRAW_PROGRESS_DARK_FRAME:
      return "Subtracting dark frame data";
    case LIBRAW_PROGRESS_FOVEON_INTERPOLATE:
      return "Interpolating Foveon sensor data";
    case LIBRAW_PROGRESS_SCALE_COLORS:
      return "Scaling colors";
    case LIBRAW_PROGRESS_PRE_INTERPOLATE:
      return "Pre-interpolating";
    case LIBRAW_PROGRESS_INTERPOLATE:
      return "Interpolating";
    case LIBRAW_PROGRESS_MIX_GREEN :
      return "Mixing green channels";

src/Source/LibTIFF4/ChangeLog  view on Meta::CPAN

	* libtiff/tif_color.c: Better use of TIFFmin() macro to avoid side
	effects.

2005-06-23  Andrey Kiselev  <dron@ak4719.spb.edu>

	* tools/tiff2pdf.c: Print two characters per loop in the
	t2p_write_pdf_trailer(). As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=594

	* tools/tiffgt.c: Use MacOS X OpenGL framework when appropriate. As
	per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=844

	* acinclude.m4: Updated to latest OpenGL test macros versions.

	* libtiff/tiff.h: Use correct int size on Sparc 64bit/Sun compiler
	platform. As per bug

	http://bugzilla.remotesensing.org/show_bug.cgi?id=855

src/Source/LibTIFF4/tif_ojpeg.c  view on Meta::CPAN

			TIFFErrorExt(tif->tif_clientdata,module,"JPEG compressed data indicates unexpected width");
			return(0);
		}
		if ((uint32)p>sp->strile_width)
		{
			TIFFErrorExt(tif->tif_clientdata,module,"JPEG compressed data image width exceeds expected image width");
			return(0);
		}
		sp->sof_x=p;
	}
	/* Nf: Number of image components in frame */
	if (OJPEGReadByte(sp,&o)==0)
		return(0);
	if (o!=n)
	{
		if (sp->subsamplingcorrect==0)
			TIFFErrorExt(tif->tif_clientdata,module,"Corrupt SOF marker in JPEG data");
		return(0);
	}
	/* per component stuff */
	/* TODO: double-check that flow implies that n cannot be as big as to make us overflow sof_c, sof_hv and sof_tq arrays */

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

6c347bb move WebPPictureInit to picture.c
fb3acf1 fix configure message for multi-thread
40b086f configure: check for _beginthreadex
1549d62 reorder the YUVA->ARGB and ARGB->YUVA functions correctly
c6461bf Merge "extract colorspace code from picture.c into picture_csp.c"
736f2a1 extract colorspace code from picture.c into picture_csp.c
645daa0 Merge "configure: check for -Wformat-security"
abafed8 configure: check for -Wformat-security
fbadb48 split monolithic picture.c into picture_{tools,psnr,rescale}.c
c76f07e dec_neon/TransformAC3: initialize vector w/vcreate
bb4fc05 gif2webp: Allow single-frame animations
46fd44c thread: remove harmless race on status_ in End()
5a1a726 Merge "configure: check for __builtin_bswapXX()"
6781423 configure: check for __builtin_bswapXX()
6450c48 configure: fix iOS builds
6422e68 VP8LFillBitWindow: enable fast path for 32-bit builds
4f7f52b VP8LFillBitWindow: respect WEBP_FORCE_ALIGNED
e458bad endian_inl.h: implement htoleXX with BSwapXX
f2664d1 endian_inl.h: add BSwap16
6fbf534 Merge "configure: add --enable-aligned"
dc0f479 configure: add --enable-aligned

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

1582e40 Fix handling of weird GIF with canvas dimension 0x0
b8811da Merge "rename interface -> winterface"
db8b8b5 Fix logic in the GIF LOOP-detection parsing
25aaddc rename interface -> winterface
5584d9d make WebPSetWorkerInterface() check its arguments
a9ef7ef Merge "cosmetics: update thread.h comments"
c6af999 Merge "dust up the help message"
0a8b886 dust up the help message
a9cf319 cosmetics: update thread.h comments
27bfeee QuantizeBlock SSE2 Optimization:
2bc0dc3 Merge "webpmux: warn when odd frame offsets are used"
3114ebe Merge changes Id8edd3c1,Id418eb96,Ide05e3be
c072663 webpmux: warn when odd frame offsets are used
c5c6b40 Merge "add alpha dithering for lossy"
d514678 examples/Android.mk: add cwebp
ca0fa7c Android.mk: move dwebp to examples/Android.mk
73d8fca Android.mk: add ENABLE_SHARED flag
6e93317 muxread: fix out of bounds read
8b0f6a4 Makefile.vc: fix CFLAGS assignment w/HAVE_AVX2=1
bbe32df add alpha dithering for lossy
7902076 Merge "make error-code reporting consistent upon malloc failure"
77bf441 make error-code reporting consistent upon malloc failure
7a93c00 **/Makefile.am: remove unused AM_CPPFLAGS

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

2962534 Merge "gif2webp: don't use C99 %zu" into 0.4.0
3b9f9dd gif2webp: don't use C99 %zu
b5b2e3c cwebp: fix metadata output w/lossy+alpha
ad26df1 makefile.unix: clean up libgif2webp_util.a
c3b4557 update Changelog
ca84112 Merge "bump version to 0.4.0" into 0.4.0
8c524db bump version to 0.4.0
eec2398 update AUTHORS & .mailmap
b9bbf6a update NEWS for 0.4.0
c72e081 Merge "dec/webp.c: don't wait for data before reporting w/h"
5ad6531 dec/frame.c: fix formatting
f7fc4bc dec/webp.c: don't wait for data before reporting w/h
66a32af Merge "NEON speed up"
26d842e NEON speed up
f307f98 Merge "webpmux: let -- stop parameter parsing"
fe051da Merge "README: add a section on gif2webp"
6fd2bd6 Merge "manpage pedantry"
4af1900 README: add a section on gif2webp
6f36ade manpage pedantry
f9016cb README: update dwebp options
b4fa0a4 webpmux: let -- stop parameter parsing

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

4931c32 cosmetics: fix some typos
05aacf7 mux: add some missing casts
617d934 enc/vp8l: add a missing cast
46db286 idec: add some missing casts
b524e33 ErrorStatusLossless: correct return type
cb261f7 fix a descaling bug for vertical/horizontal U/V interpolation
bcb3955 Merge changes I48968468,I181bc736
73f5213 gif2webp: Add a mixed compression mode
6198715 demux: split chunk parsing from ParseVP8X
d2e3f4e demux: add a tail pointer for chunks
87cffcc demux: cosmetics: s/has_frames/is_animation/
e18e667 demux: strictly enforce the animation flag
c4f39f4 demux: cosmetics: remove a useless break
61cb884 demux: (non-exp) fail if the fragmented flag is set
ff379db few % speedup of lossless encoding
df3649a remove all disabled code related to P-frames
6d0cb3d Merge "gif2webp: kmin = 0 should suppress key-frame addition."
3655598 gif2webp: kmin = 0 should suppress key-frame addition.
7708e60 Merge "detect flatness in blocks and favor DC prediction"
06b1503 Merge "add comment about the kLevelsFromDelta[][] LUT generation"
5935259 add comment about the kLevelsFromDelta[][] LUT generation
e3312ea detect flatness in blocks and favor DC prediction
ebc9b1e Merge "VPLBitReader bugfix: Catch error if bit_pos > LBITS too."
96ad0e0 VPLBitReader bugfix: Catch error if bit_pos > LBITS too.
a014e9c tune quantization biases toward higher precision
1e89861 add helpful PrintBlockInfo() function
596a6d7 make use of 'extern' consistent in function declarations
c8d48c6 Merge "extract random utils to their own file util/random.[ch]"

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

63f9aba special-case WHT transform when there's only DC
80911ae Merge "7-8% faster decoding by rewriting GetCoeffs()"
606c430 gif2webp: Improved compression for lossy animated WebP
fb887f7 gif2webp: Different kmin/kmax defaults for lossy and lossless
2a98136 7-8% faster decoding by rewriting GetCoeffs()
92d47e4 improve VP8L signature detection by checking the version bits too
5cd43e4 Add -incremental option to dwebp
54b8e3f webpmux: DisplayInfo(): remove unnecessary error checks.
40ae352 fix memleak in WebPIDelete()
d966265 mux.h doc: WebPMuxGetFrame() can return WEBP_MUX_MEMORY_ERROR too.
0e6747f webpmux -info: display dimensions and has_alpha per frame
d78a82c Sanity check for underflow
8498f4b Merge "remove -Wshadow warnings"
e89c6fc Avoid a potential memleak
3ebe175 Merge "break down the proba 4D-array into some handy structs"
6a44550 break down the proba 4D-array into some handy structs
2f5e893 remove -Wshadow warnings
bf3a29b Merge "add proper WEBP_HAVE_GIF and WEBP_HAVE_GL flags"
2b0a759 Merge "fix some warnings from static analysis"
22dd07c mux.h: Some doc corrections
79ff034 add proper WEBP_HAVE_GIF and WEBP_HAVE_GL flags
d51f45f fix some warnings from static analysis
d134307 fix conversion warning on MSVC
d538cea gif2webp: Support a 'min' and 'max'  key frame interval
80b54e1 allow search with token buffer loop and fix PARTITION0 problem
b7d4e04 add VP8EstimateTokenSize()
10fddf5 enc/quant.c: silence a warning
399cd45 Merge "fix compile error on ARM/gcc"
9f24519 encoder: misc rate-related fixes
c663bb2 Merge "simplify VP8IteratorSaveBoundary() arg passing"
fa46b31 Demux.h: Correct a method name reference
f8398c9 fix compile error on ARM/gcc
f691f0e simplify VP8IteratorSaveBoundary() arg passing
42542be up to 6% faster encoding with clang compiler

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

35dba33 use NULL for lf_stats_ testing, not bool
733a7fa enc->Iterator memory cleanup
e81fac8 Add support for "no blend" in webpmux binary
3b80bc4 gif2webp: Separate out each step into a method
bef7e9c Add doc precision about demux object keeping pointers to data.
61405a1 dwebp: enable stdout output with WIC
6eabb88 Merge "Animated WebP: add "do no blend" option to spec"
be20dec fix compilation for BITS 24
e58cc13 Merge "dwebp: s/unsigned char/uint8_t/"
72501d4 dwebp: s/unsigned char/uint8_t/
2c9633e Merge "gif2webp: Insert independent frames at regular intervals."
f0d6a14 gif2webp: Insert independent frames at regular intervals.
b25a6fb yuv.h: fix indent
ede3602 Merge "cosmetics: fix indent"
3a65122 dwebp: fix stdout related output
388a724 cosmetics: fix indent
4c7322c Merge "dsp: msvc compatibility"
d50c7e3 Merge "5-7% faster SSE2 versions of YUV->RGB conversion functions"
b8ab784 Merge "simplify upsampler calls: only allow 'bottom' to be NULL"
df6cebf 5-7% faster SSE2 versions of YUV->RGB conversion functions
ad6ac32 simplify upsampler calls: only allow 'bottom' to be NULL
a5e8afa output to stdout if file name is "-"

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

de4d4ad VP8EncIterator clean-up
7bbe952 Merge "cosmetics: thread.c: drop a redundant comment"
da41148 cosmetics: thread.c: drop a redundant comment
feb4b6e thread.h: #ifdef when checking WEBP_USE_THREAD
8924a3a thread.c: drop WebPWorker prefix from static funcs
1aed8f2 Merge "fix indent"
4038ed1 fix indent
1693fd9 Demux: A new state WEBP_DEMUX_PARSE_ERROR
8dcae8b fix rescaling-with-alpha inaccuracy
11249ab Merge changes I9b4dc36c,I4e0eef4d
52508a1 Mux: support parsing unknown chunks within a frame/fragment.
05db057 WebPMuxSetChunk: remove unused variable
8ba1bf6 Stricter check for presence of alpha when writing lossless images
a03c351 Demux: WebPIterator now also denotes if the frame has alpha.
6df743a Decoder: handle fragments case correctly too.
faa4b07 Support for unknown chunks in mux library
7d60bbc Speed up HashChainFindCopy function.
6674014 Speedup Alpha plane encoding.
b7346a1 0.1 % speedup to decoding
c606182 webp-container-spec: Tighten language added by last
a34a502 pngdec: output error messages from libpng
e84c625 Merge "Detect canvas and image size mismatch in decoder."
f626fe2 Detect canvas and image size mismatch in decoder.
f5fbdee demux: stricter image bounds check

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

70e3971 Merge "cosmetics: remove unnecessary ';'s"
d3136ce Merge "don't forward declare enums"
b26e5ad gif2webp: Fix ICC and XMP support
46089b2 Add missing name to AUTHORS
94328d6 Demux: Fix a potential memleak
96e948d don't forward declare enums
f4f9088 prevent signed int overflow in left shift ops
0261545 cosmetics: remove unnecessary ';'s
7ebdf11 Merge "Fix few missing comparisons to NULL"
1579989 Fix few missing comparisons to NULL
ea1b21c Cleaned up VP8GetHeaders() so that it parses only frame header
b66caee dwebp: add support for BMP output
ff885bf add precision about dynamic output reallocation with IDecoder
79241d5 Merge "Makefile.vc: have 'all' target build everything"
ac1c729 Merge "Makefile.vc: flags cleanup"
118a055 Merge "Makefile.vc: drop /FD flag"
ecad010 Merge "update gitignore"
a681b4f Rename PRE_VP8 state to WEBP_HEADER
ead4d47 Add incremental support for extended format files
69d0f92 Makefile.vc: have 'all' target build everything
5296749 Makefile.vc: flags cleanup

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

b68912a pngdec: Avoid a double-free.
82abbe1 Merge "configure.ac: add AM_PROG_AR for automake >= 1.12"
e7d9548 add WebPBlendAlpha() function to blend colors against background
ed4dc71 configure.ac: add AM_PROG_AR for automake >= 1.12
df4a406 Merge branch '0.3.0'
1e0d4b8 Update ChangeLog (tag: v0.3.0-rc7, tag: v0.3.0)
d52b405 Cosmetic fixes
6cb4a61 misc style fix
68111ab add missing YUVA->ARGB automatic conversion in WebPEncode()
e9a7990 Cosmetic fixes
403bfe8 Container spec: Clarify frame disposal
2aaa423 Merge "add missing YUVA->ARGB automatic conversion in WebPEncode()"
07d87bd add missing YUVA->ARGB automatic conversion in WebPEncode()
142c462 misc style fix
3e7a13a Merge "Container spec: clarify the background color field" into 0.3.0
14af774 container doc: add a note about the 'ANMF' payload
cc635ef Container spec: clarify the background color field
e3e3394 container doc: move RIFF description to own section
4299f39 libwebp/mux: fix double free
33f9a69 Merge "demux: keep a frame tail pointer; used in AddFrame" into 0.3.0
a2a7b95 use WebPDataCopy() instead of re-coding it.
6f18f12 demux: keep a frame tail pointer; used in AddFrame
e5af49e add doc precision about WebPParseHeaders() return codes
db46daa Merge "Makefile.vc: fix dynamic builds" into 0.3.0
53c77af Merge "gif2webp: Bgcolor fix for a special case" into 0.3.0
a5ebd14 gif2webp: Bgcolor fix for a special case
6378f23 Merge "vwebp/animation: fix background dispose" into 0.3.0
3c8eb9a fix bad saturation order in QuantizeBlock
04c7a2e vwebp/animation: fix background dispose
81a5069 Makefile.vc: fix dynamic builds
5f25c39 update ChangeLog (tag: v0.3.0-rc6)
14d42af examples: don't use C99 %zu

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

627f5ca automake: add reference to libwebp for mux/demux
eef73d0 don't consolidate proba stats too often
05ec4cc libwebp{,decoder}.pc: add pthread flags
1bfcf5b add libwebpmux.pc
26ca843 add libwebpdemux.pc
69e2590 Merge "Tune Lossless compression for lower qualities."
0478b5d Tune Lossless compression for lower qualities.
39f7586 add a mention of parallel alpha encoding in the NEWS
5a21d96 Merge "1.5x-2x faster encoding for method 3 and up"
9bfbdd1 1.5x-2x faster encoding for method 3 and up
27dc741 Correct frame options order in README.mux
be2fd17 Mux: fix a scenario with bad ANMF/FRGM size
19eb012 Merge "Demux: Add option to get frame count using GetI()"
7368b8c Merge "WebPGetFeatures() out of if condition for clarity."
f604c9a Merge "fix windows build"
153f94e fix windows build
847b492 Merge "vwebp: use magenta for 'i'nfo display"
25ea46b Merge "vwebp: add keyboard shortcuts to help output"
bea7cca vwebp: use magenta for 'i'nfo display
8fab161 webpmux: correct -frame param order in help output
03cc23d vwebp: add keyboard shortcuts to help output
068eba8 Demux: Add option to get frame count using GetI()
988b8f5 WebPGetFeatures() out of if condition for clarity.
6933d91 Merge "gif2webp: Be lenient about background color index."
4d0f7c5 Merge "WebPGetFeatures() behavior change:"
fdeeb01 gif2webp: Be lenient about background color index.
ad25032 Merge "multi-threaded alpha encoding for lossy"
4e32d3e Merge "fix compilation of token.c"
f817930 multi-threaded alpha encoding for lossy
8805035 fix compilation of token.c
fc81621 code using the actual values for num_parts_, not the ones from config
7265535 Merge "move the config check from .c to .h"

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

7381254 Merge "wicdec: add ICC profile extraction"
e83ff7d wicdec: add ICC profile extraction
146c6e3 Merge "cosmetics: pngdec: normalize default label location"
a8f549d Merge "manpages: italicize option parameters"
e118db8 Merge "encode.h: note the need to free() WebPMemoryWriter"
1dfee6d cosmetics: pngdec: normalize default label location
14c3820 manpages: italicize option parameters
7defbfa encode.h: note the need to free() WebPMemoryWriter
88d382a cwebp: cleanup after memory_writer
12d6cec fix extra space in dwebp.1 man
b01681a Fix for demuxer frame iteration:
56c12aa Demuxer creation fix:
66c810b add a -yuv option to dwebp (very similar to -pgm)
841a3ba Merge "Remove -Wshadow warnings."
8fd0252 Merge "upsampling_neon.c: fix build"
6efed26 Remove -Wshadow warnings.
60904aa Merge "allow WebPINewRGB/YUVA to be passed a NULL output buffer."
b7adf37 allow WebPINewRGB/YUVA to be passed a NULL output buffer.
27f8f74 upsampling_neon.c: fix build
06b9cdf gitignore: add IOS related directories
f112221 Merge "Fix more comments for iobuild.sh"

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

6bf2087 add examples/metadata.c
207f89c Merge "configure: add libwebpdemux status to summary"
1bd287a Cleanup around jpegdec
9145567 Merge "cosmetics: use '== 0' in size checks"
d6b88b7 cosmetics: use '== 0' in size checks
d3dace2 cosmetics: jpegdec
2f69af7 configure: add libwebpdemux status to summary
1c1c564 cwebp: extract tiff decoding to its own module
6a871d6 cwebp: extract jpeg decoding to its own module
2ee228f cwebp: extract png decoding to its own module
4679db0 Merge "cwebp: add metadata framework"
63aba3a cwebp: add metadata framework
931bd51 lossless bitstream: block size bits correction
e4fc4c1 lossless bitstream: block size bits correction
d65ec67 fix build, move token.c to src/enc/
657f5c9 move token buffer to its own file (token.c)
c34a375 introduce GetLargeValue() to slim-fast GetCoeffs().
d5838cd faster non-transposing SSE2 4x4 FTransform
f76191f speed up GetResidualCost()
ba2aa0f Add support for BITS=24 case
2e7f6e8 makefile.unix: Dependency on libraries
dca8421 Merge "Separate out mux and demux code and libraries:"

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

79efa1d Add man page for gif2webp utility
2243e40 Merge "gif2webp build support with autoconf tools"
c40efca gif2webp build support with autoconf tools
6523e2d WebP Container:
4da788d Merge "simplify the fwd transform"
42c3b55 simplify the fwd transform
41a6ced user GLfloat instead of float
b542611 fix indentation
68f282f * handle offset in anim viewer 'vwebp' * fix gif2webp to handle disposal method and odd offset correctly
118cb31 Merge "add SSE2 version of Sum of Square error for 16x16, 16x8 and 8x8 case"
8a7c3cc Merge "Change the order of -frame argument to be more natural"
99e0a70 Merge "Simplify the texture evaluation Disto4x4()"
0f923c3 make the bundling work in a tmp buffer
e5c3b3f Simplify the texture evaluation Disto4x4()
4860008 Change the order of -frame argument to be more natural
35bfd4c add SSE2 version of Sum of Square error for 16x16, 16x8 and 8x8 case
a7305c2 Clarification for unknown chunks
4c4398e Refine WebP Container Spec wrt unknown chunks.
2ca642e Rectify WebPMuxGetFeatures:
7caab1d Some cosmetic/comment fixes.
60b2651 Merge "Write a GIF to WebP converter based on libgif."
c7127a4 Merge "Add NEON version of FTransformWHT"
11b2721 Write a GIF to WebP converter based on libgif.
e9a15a3 ExUtilWriteFile() to write memory segment to file
74356eb Add a simple cleanup step in mux assembly:

src/Source/LibWebP/ChangeLog  view on Meta::CPAN

e2feefa Makefile.vc: split mux into separate lib
27caa5a Merge "cwebp: add basic TIFF support"
d8921dd cwebp: name InputFileFormat members consistently
6f76d24 cwebp: add basic TIFF support
4691407 Merge changes If39ab7f5,I3658b5ae
cca7c7b Fixed nit: 10 -> 10.f
5d09a24 WebPMuxCreate() error handling:
777341c Fix a memleak in WebPMuxCreate()
61c9d16 doc: correct lossless prefix coding table & code
4c39757 Merge "mark VP8{,L}{GetInfo,CheckSignature} as WEBP_EXTERN"
e4e36cc Merge "Mux: Allow only some frames/tiles to have alpha."
ad2aad3 Merge "WebP Decoding error handling:"
97649c8 Mux: Allow only some frames/tiles to have alpha.
f864be3 Lower the quality settings for Alpha encoding.
3ba81bb WebP Decoding error handling:
fcc6992 add automatic YUVA/ARGB conversion during WebPEncode()
802e012 fix compilation in non-FANCY_UPSAMPLING mode
e012dfd make width/height coding match the spec
228d96a mark VP8{,L}{GetInfo,CheckSignature} as WEBP_EXTERN
637a314 remove the now unused *KeepA variants
d11f6fc webpmux returns error strings rather than numbers
fcec059 makefile.unix: cwebp: fix OSX link
6b811f1 Merge "doc: remove lossless pdf"
c963482 doc: remove lossless pdf
b9ae4f0 cosmetics after mux changes b74ed6e, b494ad5
b494ad5 Mux: only allow adding frame/tiles at the end.
2c341b0 Merge "Added image characteristic hint for the codec."
d373076 Added image characteristic hint for the codec.
2ed2adb Merge "msvc: add intrinsic based BitsLog2Floor"
e595e7c Merge "add demux.c to the makefiles"
da47b5b Merge "demux: add {Next,Prev}Chunk"
e5f4674 add demux.c to the makefiles
4708393 demux: add {Next,Prev}Chunk
e8a0a82 demux: quiet msvc warnings
7f8472a Update the WebP Container Spec.
31b68fe cleanup WebPPicture struct and API

src/Source/LibWebP/LibWebP.2005.vcproj  view on Meta::CPAN

				>
				<File
					RelativePath=".\src\dec\dec.alpha.c"
					>
				</File>
				<File
					RelativePath=".\src\dec\dec.buffer.c"
					>
				</File>
				<File
					RelativePath=".\src\dec\dec.frame.c"
					>
				</File>
				<File
					RelativePath=".\src\dec\dec.idec.c"
					>
				</File>
				<File
					RelativePath=".\src\dec\dec.io.c"
					>
				</File>

src/Source/LibWebP/LibWebP.2005.vcproj  view on Meta::CPAN

				</File>
				<File
					RelativePath=".\src\enc\enc.cost.c"
					>
				</File>
				<File
					RelativePath=".\src\enc\enc.filter.c"
					>
				</File>
				<File
					RelativePath=".\src\enc\enc.frame.c"
					>
				</File>
				<File
					RelativePath=".\src\enc\enc.histogram.c"
					>
				</File>
				<File
					RelativePath=".\src\enc\enc.iterator.c"
					>
				</File>



( run in 1.722 second using v1.01-cache-2.11-cpan-df04353d9ac )