| Previous | Next |
| NS_E_WMP_JPG_INVALID_FORMAT | NS_E_WMP_JPG_BAD_VERSION_NUMBER |
NS_E_WMP_JPG_BAD_DCTSIZE
The exact condition behind the dialog
The symbolic result NS_E_WMP_JPG_BAD_DCTSIZE narrows 0xC00D1035 to the JPEG bad DCT size condition: the JPEG requests a DCT block or scaled-DCT mode unsupported by the embedded decoder. Keep the JPEG bad DCT size boundary visible when a later dialog reduces it to a general media error.
An additional test is to record the frame marker, component sampling and DCT scaling parameters selected by the decoder; that evidence is more useful than reinstalling the Player or changing several unrelated settings at once.
What succeeds before this failure
Two platform rules frame the diagnosis. First, a filename extension is not sufficient evidence of image format; the decoder acts on signatures, headers, markers, chunks and decoded dimensions. In this case, a file can be valid according to a modern format specification yet use a coding option that the legacy WMP skin decoder does not implement.
Representative case: A specialized encoder emits a valid-looking JPEG whose DCT setup is outside the decoder build used by the skin engine.
State worth preserving
Capture state before Player cleanup:
- What to verify: record the frame marker, component sampling and DCT scaling parameters selected by the decoder.
- Artifact: standalone decode result outside the skin package using the same bytes.
- State: archive member name, byte length, hash and file signature.
- Object identity: format header fields, dimensions, bit depth and color model.
- Underlying evidence: first invalid marker/chunk and its byte offset.
- Correlation: decoder-supported coding mode versus the file’s declared mode.
Reproduce without destroying evidence
- Find the first component that returned this result and label that event as the failure point.
- Freeze the input and object identity associated with the failing operation before WMP fallback or cleanup changes it.
- Reconstruct the immediately preceding successful state, then identify the call or event that crossed into failure.
- Perform the code-specific test: record the frame marker, component sampling and DCT scaling parameters selected by the decoder.
- Make the targeted change—encode the skin artwork with a standard JPEG DCT configuration supported by the Player—and repeat the same producing operation.
Related HRESULTs with different meanings
| Result | Different condition |
|---|---|
NS_E_WMP_JPG_BAD_VERSION_NUMBER | The JPEG version or decoder/library version field is outside the implementation’s accepted set |
NS_E_WMP_JPG_INVALID_FORMAT | The JPEG marker stream is structurally invalid before a complete frame can be decoded |
NS_E_WMP_JPG_BAD_PRECISION | The JPEG frame declares a sample precision unsupported by the WMP image decoder |
Recovery at the right layer
Resolve this result where the relevant state is produced: encode the skin artwork with a standard JPEG DCT configuration supported by the Player. After correction, reload or recreate the owning object so cached failure state is not mistaken for a successful repair.
- Avoid changing only the extension or MIME type while leaving the encoded bytes unchanged; it can destroy the artifact or state needed to explain this result.
- Avoid repeatedly recompressing the sole source image without retaining an original and a decoded pixel comparison; that can replace the original HRESULT with a secondary failure from another layer.
How to know the repair is real
Repeat the action that returned this HRESULT and verify that the same object passes the former failure point. Success means reaching the next expected load, parse, playlist, control or playback state—not merely suppressing a dialog.
Technical references
- Skin files and image resources — normative or platform material relevant to this HRESULT.
- ITU-T T.81 JPEG specification — API or format context.
- JPEG standards overview — documentation for this HRESULT.
Looking for a different code? Search another status or error code.
