| Предыдущий | Следующий |
| MF_E_UNSUPPORTED_RATE_TRANSITION | MF_E_NOT_FOUND |
MF_E_RATE_CHANGE_PREEMPTED
Как диагностировать MF_E_RATE_CHANGE_PREEMPTED
MF_E_RATE_CHANGE_PREEMPTED — HRESULT, относящийся к области Media Foundation. Ожидающее изменение скорости воспроизведения заменено более новым запросом и применено не будет.
Применительно к MF_E_RATE_CHANGE_PREEMPTED статус связан с медиаконвейером Windows. Применительно к MF_E_RATE_CHANGE_PREEMPTED он может возникать до декодирования — на этапе сети, разбора control data или создания presentation descriptor.
Практический вывод для MF_E_RATE_CHANGE_PREEMPTED: этот HRESULT фиксирует описанное условие, но сам по себе не показывает, какой участник операции первым нарушил контракт. Для MF_E_RATE_CHANGE_PREEMPTED найдите первый вызов, вернувший статус, и только после этого меняйте конфигурацию подсистемы Media Foundation.
Как читать имя MF_E_RATE_CHANGE_PREEMPTED
Имя MF_E_RATE_CHANGE_PREEMPTED помогает сузить поиск: RATE — скорость воспроизведения; CHANGE — технический маркер «change»; PREEMPTED — технический маркер «preempted». Эти части имени не заменяют документацию API, но позволяют проверить, что журнал и код относятся к одному и тому же условию.
Разбор условия ошибки
Применительно к MF_E_RATE_CHANGE_PREEMPTED важно сохранить исходный контекст вызова: имя функции, параметры, состояние объекта и первый низкоуровневый статус. Применительно к MF_E_RATE_CHANGE_PREEMPTED без этого одинаковый HRESULT может ошибочно связываться с разными причинами.
- При разборе MF_E_RATE_CHANGE_PREEMPTED проверьте доступность сети, обработчик схемы и ответы медиасервера.
- При разборе MF_E_RATE_CHANGE_PREEMPTED сопоставьте запросы управления и временную шкалу rate/seek/start/stop.
- При разборе MF_E_RATE_CHANGE_PREEMPTED проверьте источник локальным файлом или другим заведомо совместимым обработчиком.
- При разборе MF_E_RATE_CHANGE_PREEMPTED запишите URL, схему, MIME/контейнер, presentation descriptor и этап media session.
Диагностический минимум
- Для MF_E_RATE_CHANGE_PREEMPTED минимизируйте конвейер до source reader, чтобы отделить источник от renderer.
- Для MF_E_RATE_CHANGE_PREEMPTED соберите Media Foundation trace и сетевой лог за один сеанс воспроизведения.
- Для MF_E_RATE_CHANGE_PREEMPTED сохраните первый MF HRESULT и атрибуты media type/presentation descriptor.
Критерий успешного исправления
Применительно к MF_E_RATE_CHANGE_PREEMPTED для MF_E_RATE_CHANGE_PREEMPTED недостаточно скрыть ошибку повтором. Применительно к MF_E_RATE_CHANGE_PREEMPTED после изменения воспроизведите исходную операцию, проверьте конечное состояние объекта и убедитесь, что ресурсы освобождаются без потери первичного HRESULT.
Ссылки по MF_E_RATE_CHANGE_PREEMPTED
Нужно найти другой код? Найти другой код состояния или ошибки.