Рендеринг Hololens2 PV MediaFrame в Unity — неправильный форматC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Рендеринг Hololens2 PV MediaFrame в Unity — неправильный формат

Сообщение Anonymous »

Как я могу визуализировать кадры, полученные из MediaFrameReader, в Unity?
Я получаю доступ к растровому кадру через буфер:

Код: Выделить всё

uint32_t pixelBufferDataLength;
uint8_t* pixelBufferData;

MediaFrameReference frame = MediaFrameReader.TryAcquireLatestFrame()
winrt::Windows::Graphics::Imaging::BitmapBuffer bitmapBuffer = frame.VideoMediaFrame().SoftwareBitmap().LockBuffer(winrt::Windows::Graphics::Imaging::BitmapBufferAccessMode::Read);
auto spMemoryBufferByteAccess{ bitmapBuffer.CreateReference().as() };
winrt::check_hresult(spMemoryBufferByteAccess->GetBuffer(&pixelBufferData, &pixelBufferDataLength));

Я визуализирую буфер на текстуре в Unity:

Код: Выделить всё

texPv = new Texture2D(1080, 720, TextureFormat.BGRA32, false);
pixel32Pv = texPv.GetPixels32();
pixelHandlePv = GCHandle.Alloc(pixel32Pv, GCHandleType.Pinned);
pixelPtrPv = pixelHandlePv.AddrOfPinnedObject();
[...]
getCptr(pixelPtrPv);
texPv.SetPixels32(pixel32Pv);
texPv.Apply();
Этот подход приводит к получению текстуры в неправильном формате:
[img]https://i. sstatic.net/oJui9OYA.jpg[/img]

Я пытался преобразовать необработанные данные буфера в другой формат, но безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/785 ... ong-format
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»