| Previous | Next |
| WINCODEC_ERR_WIN32ERROR | WINCODEC_ERR_INVALIDJPEGSCANINDEX |
WINCODEC_ERR_INVALIDPROGRESSIVELEVEL
The requested progressive pass is outside the frame's available sequence
WINCODEC_ERR_INVALIDPROGRESSIVELEVEL is returned by IWICProgressiveLevelControl::SetCurrentLevel when the requested level cannot be selected for the current frame. Progressive levels are zero-based decoding passes, but their count and visual meaning are format-specific: Windows documents seven passes for interlaced PNG, four for interlaced GIF, while a progressive JPEG determines its scan sequence from the encoded image.
For progressive JPEG, the level count is not fixed in advance. Microsoft recommends calling SetCurrentLevel with increasing indices and treating this HRESULT as the normal end-of-sequence condition; querying information that requires the complete sequence can block until all data arrives. For formats with a known level count, validate the index against that codec's reported capability. This status alone does not indicate corrupt pixels or invalid output dimensions.
Progressive decode checks
- Keep progressive state per frame; do not reuse an index range from another image or codec.
- For progressive JPEG, iterate
SetCurrentLeveluntil this HRESULT signals that no further level exists. - Call
CopyPixelsonly after the requested level becomes available;SetCurrentLevelcan wait for incoming data. - Handle
E_NOTIMPLseparately when the codec does not implement progressive-level control.
References
- Microsoft: IWICProgressiveLevelControl::SetCurrentLevel
- Microsoft: IWICProgressiveLevelControl
- Microsoft: progressive decoding overview
Looking for a different code? Search another status or error code.