Что означает код возврата ядра macOS 0xE0008106 (kIOFireWireIsochBandwidthNotAvailable)?

 
Предыдущий Следующий
kIOFireWireInvalidResponseLength kIOFWMessageServiceIsRequestingClose

kIOFireWireIsochBandwidthNotAvailable

Пропускная способность резервируется до начала трафика реального времени

kIOFireWireIsochBandwidthNotAvailable означает, что диспетчер изохронных ресурсов не смог зарезервировать запрошенную пропускную способность для потока. FireWire требует, чтобы узел до начала изохронной отправки или приёма получил и канал, и резервирование полосы. Резервирование защищает временной бюджет трафика реального времени; это не размер буфера приложения, и повтор той же передачи его не исправит.

Диспетчер ресурсов отслеживает доступную величину для всей шины. Материалы IEEE 1394 описывают отдельный регистр доступной пропускной способности, а API FireWire Linux сообщает о выделении канала и полосы раздельно. Поэтому этот статус отличается от kIOFireWireNoChannels: канал может быть доступен, хотя запрошенного временного бюджета нет.

Диагностируйте резервирование, а не только устройство

  • Запишите параметры потока, определяющие потребность на цикл, включая размер полезной нагрузки, частоту пакетов, скорость и режим аудио или видео, меняющий изохронную нагрузку.
  • Перечислите другие изохронные потоки на той же шине и сохраните результат диспетчера ресурсов. Устройство на другом разъёме всё равно может конкурировать, если использует ту же шину FireWire.
  • Уменьшайте полосу только через документированный режим потока, фактически изменяющий резервирование FireWire. Сокращение несвязанной очереди приложения не освобождает полосу шины.
  • Обрабатывайте сбросы шины как события выделения: резервирования могут восстанавливаться автоматически, но восстановление может завершиться ошибкой, и до возобновления мультимедийного потока приложение должно проверить итоговое состояние канала и полосы.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.