What does HRESULT 0xC00D36DF (MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS) mean?

 
Previous Next
MF_E_UNRECOVERABLE_ERROR_OCCURRED MF_E_SAMPLE_NOT_WRITABLE

MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS

MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS is a sample-layout problem. An IMFSample owns an ordered list of IMFMediaBuffer objects, and AddBuffer appends another buffer to that list. The failing component has rejected the resulting buffer count.

Inspect the sample before handing it off

  • Call GetBufferCount and log the count immediately before the failing API.
  • Trace where each buffer was added; accidental reuse of a sample without RemoveAllBuffers can accumulate buffers across iterations.
  • When the consumer needs one linear buffer, use ConvertToContiguousBuffer. It replaces a multi-buffer list with a single buffer containing copied data.

Do not blindly delete buffers, because buffer boundaries can be meaningful to the producer. First verify the receiving API's sample contract and preserve the complete byte sequence. Microsoft notes that most samples normally contain a single buffer; the Wine interface definition independently exposes the same buffer-list operations.

Microsoft: IMFSample::AddBuffer · Microsoft: ConvertToContiguousBuffer · Wine: IMFSample buffer-list contract


Looking for a different code? Search another status or error code.