Нет (и, возможно, нет необходимости) выделенного промежуточного формата. Модель Media Foundation такова, что она имеет модель выборок и буферов, которые могут быть реализованы со ссылкой на данные устройства и API, заданные c (например, Direct3D 11). Видеокадр может быть интерфейсом IMFSample
к Media Foundation, и в то же время иметь данные, находящиеся в текстуре D3D11 ID3D11Texture2D
.
Я надеюсь, что межмедийные данные могут копировать и Максимально используйте исходные данные в видеопамяти, а не в системной памяти
Для этого вам просто нужно хранить свои данные в видеопамяти, в текстурах D3D11. Именно вы предоставляете диспетчер устройств DXGI для конвейера Media Foundation и, как правило, именно вы сами контролируете срок службы и параметры хостинга устройства D3D11. Вы можете иметь текстуры (кадры), чтобы пережить этап кодирования видео в случае, если вам нужны кадры для других целей. Вы можете использовать это устройство совместно с swapchain и использовать текстуры как для кодирования, так и для презентаций (возможно, в частности, будет работать ID3D11DeviceContext::CopySubresourceRegion
).