Я получаю доступ к растровому кадру через буфер:
Код: Выделить всё
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));
Код: Выделить всё
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
Мобильная версия