What does HRESULT 0x80040261 (VFW_E_NO_TIME_FORMAT) mean?

 
Previous Next
VFW_E_NOT_IN_GRAPH VFW_E_READ_ONLY

VFW_E_NO_TIME_FORMAT

Exact result and bit fields

VFW_E_NO_TIME_FORMAT has the unsigned HRESULT value 2147746401 (0x80040261) and the signed 32-bit representation -2147220895. AllStat describes it as “Cannot get or set time related information on an object that is using a time format of TIME_FORMAT_NONE”. In the operation that produces this result, a caller requests time-based information from an object whose active seeking format is TIME_FORMAT_NONE.

The high bit is set, so this value is a failure HRESULT. Its facility field is 4 (FACILITY_ITF) and its low code is 609 (0x0261). These fields classify this result, but they do not identify which filter, thread, device, file or graph generation returned it.

Contract boundary

This result is a DirectShow contract failure whose owner must be identified from the exact interface, filter instance, graph generation and operation stage.

The practical owner to locate for it is the filter graph, device or persisted configuration that first returned the result. When handling this result, capture the native result before a wrapper replaces it with a generic exception, and keep the graph generation or object identity with the record.

Conditions that can produce it

  • Cause 1 for it: the filter intentionally exposes no seekable timeline.
  • Cause 2 for it: the graph is live and has no stable duration or position.
  • Cause 3 for it: the application selected TIME_FORMAT_NONE and still issued a time query.

Evidence worth preserving

Log the interface and method, filter CLSID and friendly name, process and thread, graph state, connected pin names, media-type summary, renderer or device identity where relevant, and the first preceding HRESULT. Record lengths and hashes instead of raw content when the incident includes media paths, device identifiers, registry values and stream metadata.

  • Evidence 1 for it: current and supported time-format GUIDs.
  • Evidence 2 for it: seek and duration capabilities.
  • Evidence 3 for it: stream type, live-source state and call sequence.

Step-by-step diagnosis

  1. Capture it at the first native return, not only at the top-level playback failure.
  2. identify the exact graph stage described here: a caller requests time-based information from an object whose active seeking format is TIME_FORMAT_NONE.
  3. compare the live object state, topology and input with the documented interface preconditions.
  4. Before changing filters, drivers, registry data or media for it, collect the code-specific evidence below.
  5. Test one evidence-backed the correction on the smallest reproducible graph.
  6. Verify that the corrected run no longer returns it and does not merely replace it with a nearby HRESULT.

Correction strategy

  • Action 1 for it: disable timeline UI for non-seekable objects.
  • Action 2 for it: select a supported non-NONE format before querying.
  • Action 3 for it: handle live streams through events or counters instead of fabricated media time.

Retry and recovery

Retry rule for it: Retry only after the object advertises and selects a real time format. A safe it retry must use a changed capability, state, object generation or input. While recovering from it, preserve cancellation and avoid replaying side effects when the original operation may have partially completed.

Example incident

A capture preview graph reports TIME_FORMAT_NONE, but the application asks for duration every second; capability-gating the query removes it. This example keeps the diagnosis at the specific the boundary instead of treating every DirectShow failure as a codec reinstall problem.

How it differs from nearby results

This result_SET means selection has not occurred; it means the object is explicitly operating with no time format. Keep those cases separate in telemetry, UI messages and retry policy because their next actions are different.

Implementation notes

Code that handles it should preserve the original HRESULT, the failed stage and an opaque correlation identifier. After it, do not infer success from partial graph construction, and do not continue using interfaces retained from a graph or device generation that has already changed.

Operational remediation for it should favor supported component installation, device configuration and documented DirectShow calls. Manual registry or driver changes are appropriate only when the collected evidence for it points to that layer and a rollback is available.

Official Microsoft references


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