Подробное проектирование для независимыми поставщиками программного обеспечения (профиль камеры версии 2)
Использование профилей камеры 1507 для независимого поставщика программного обеспечения представляет собой серьезную проблему из-за сложного характера представления профилей и того факта, что профили представляют собой просто информативный набор данных, базовый конвейер по-прежнему позволяет использовать сочетания типов мультимедиа и потоков, которые нарушают аппаратные ограничения.
Поставщики программного обеспечения по-прежнему рискуют настроить конвейер отслеживания таким образом, чтобы при активации потоков произошел сбой.
Для профиля камеры версии 2 конфигурация выбранного профиля во время инициализации объекта Media Capture будет передаваться на сервер кадров, а сервер кадров будет предоставлять только сочетания потоков и типов мультимедиа, допустимых в этом профиле.
Из-за низкой стоимости создания нескольких объектов захвата мультимедиа при маршрутизации через сервер кадров приложение может предварительно создать несколько экземпляров объектов захвата мультимедиа с помощью одного источника. Только первое созданное приведет к задержке при создании источника. Последующие экземпляры просто принимают уже созданный источник на сервере кадров и фильтруют набор потоков или типов мультимедиа по профилю.
Приложение, которое хочет предоставлять как режим высококачественной фотографии, так и режим записи видео, который содержит видео с высокой частотой кадров или видео 4K, может создать несколько экземпляров объектов захвата мультимедиа, каждый из которых настроен с разным профилем для одного источника камеры. Пока только один из объектов "Захват мультимедиа" активно выполняет потоковую передачу в любой момент времени, переключение между объектами записи мультимедиа вызывает небольшую задержку (обычно это стоимость нескольких вызовов RPC).
Профиль камеры 1507 предоставляет профили через объект MediaCaptureVideoProfile. Этот объект обнаруживается с помощью фабрики MediaCapture путем предоставления определенного идентификатора устройства. Это представление, ориентированное на устройства, означает, что приложение, которое хочет включить определенный сценарий, должно сначала перечислить или найти выбранное устройство и использовать его для прохода по доступным профилям.
Профиль камеры версии 2 расширяет область API для предоставления поверхности API, ориентированной на устройства, но в дополнение к этому профиль камеры версии 2 также предоставляет перечисление профилей на основе сценария.
Вместо того чтобы начать с определенной камеры, приложение начинается с определенного сценария. Например, видеозапись с использованием камеры, обращенной к миру.
Эта точка входа обеспечивает применение всех доступных камер, подходящих для этого сценария. В зависимости от специфики сценария результирующий список MediaFrameSourceGroup может содержать несколько записей. В некоторых случаях может не быть записей. Например, запись видео с помощью камеры World Лицом для устройства "Все в одном", которое не имеет камеры, обращенной к миру, вернет пустой набор.
Язык, используемый для описания сценария, позволяет использовать резервные варианты на основе минимальных критериев. Это язык позволяет "Запись видео с предпочтением для мировой камеры и максимально возможного разрешения с минимальной частотой кадров 30 кадров/с".
Фильтрация на основе профиля
Одним из основных преимуществ использования архитектуры Frame Server является тот факт, что объект контекста клиента на сервере frame, который является виртуальным представлением объекта "Захват мультимедиа" в клиентском приложении, отделен от физического источника.
Это позволяет настроить несколько экземпляров объектов клиентского контекста, использующих одни и те же источники, в определенных режимах работы, которые могут включать фильтрацию контактов или типов мультимедиа, которые могут конфликтовать с базовым вариантом использования.
Так как источники устройств не являются частью контекста клиента, создание нескольких экземпляров объектов контекста клиента с другой конфигурацией не приводит к значительным издержкам (так же, как и накладные расходы, необходимые для отслеживания внутренних структур данных).
Задержка при создании или инициализации источника по-прежнему существует для первого контекста клиента, но после создания последующие экземпляры с той же конфигурацией или другой конфигурацией будут нести только дополнительные затраты на создание внутренних структур данных.
На следующей схеме показано, как функция записи мультимедиа, настроенная с профилем NULL, будет предоставляться сервером frame через контекст клиента:
На приведенной выше схеме каждый из источников предоставляет три контакта: предварительный просмотр, захват и фото. Так как был задан пустой профиль, результирующий объект Media Capture предоставляет приложению все девять контактов. Приложение может проверять каждый пин-код и каждый тип мультимедиа, доступный для каждого контакта.
Хотя это обеспечивает гибкость приложения, она также усложняет управление конечным автоматом, определяя, какое сочетание типов мультимедиа и контактов может быть активировано одновременно.
Тем не менее, используя фильтрацию на основе профиля:
Приложение может создать несколько экземпляров функции захвата мультимедиа, каждый из которых настроен с определенным профилем. На приведенной выше схеме в качестве иллюстрации остается пустой экземпляр профиля. Приложение может не создавать экземпляр профиля NULL.
Для объектов с более низким уровнем записи мультимедиа настроен определенный профиль. Основываясь на данных профиля, опубликованных IHV/OEM источников, результирующий конвейер будет извлекать только необходимые источники.
Для профиля HQ Photo World Облицовка будут доступны только контакты Предварительного просмотра и Фото RGB (источник 3) наряду только с типами носителей, которые IHV/OEM указал, будут работать для операций с фотографиями. При этом предполагается, что IHV/OEM указал, что для HQ Photo одновременный захват невозможен. Если одновременный захват разрешен, отображается контакт захвата, а также типы носителей, которые можно использовать для одновременных операций фото и записи.
Для записи с пользователем будут доступны только контакты предварительного просмотра и записи RGB с пользователем (источник 1). Опять же, на приведенной выше схеме предполагается, что операции с фотографиями невозможные, если активно закрепление.
Для профиля Смешанная реальность клиентским приложениям будут доступны видеопотоки World Facing RGB и World Facing Perception. И опять же, доступны только те типы мультимедиа, которые гарантированно работают одновременно.