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; }
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; } }