Example #1
0
PUBLIC JPEG_RET_E ParseHead(JPEG_DEC_INPUT_PARA_T  *jpeg_dec_input)
{
	uint32 c = 0;

	/* Expect an SOI marker first */
	while(1)/*lint !e716*/
	{
		if ((!GetNextMarker(&c)) || (c == M_EOI) )	
		{
			JPEG_TRACE("[JPEG_HWParseHead] find the SOI marker error: %x", c);
			return JPEG_FAILED;
		}

		if(c == M_SOI)
		{
			break;
		}
	}

	/* Process markers until SOF */
	c = ProcessTables(jpeg_dec_input);

	switch (c)
	{
		case M_ERROR:
			return JPEG_FAILED;
			
		case M_SOS:
			if(GetSOS() != JPEG_SUCCESS)
			{
				return JPEG_FAILED;
			}
			break;
			
		case M_EOI:
			return JPEG_FAILED;
			
		default:
			return JPEG_FAILED;
	}

	return JPEG_SUCCESS;
}
Example #2
0
bool ieJpegDecoder::ParseScanHeader()
// Read the start of a scan (everything through the SOS marker).
// Return true if find SOS, false if find EOI.
{
	// Process markers until SOS or EOI
	int c = ParseTables();
	if (c == M_ERROR) return false;

	switch (c) {
	case M_SOS:
		return GetSOS();

	case M_EOI:
		iScanNumber = 0;
		return true;

	default:
		return false;
	}
}