[Xcb] Can XCB return an image with an NVIDIA GPU memory address?

Suhail Doshi suhail at mightycomputing.com
Mon Aug 5 16:49:01 UTC 2019


Thanks so much Peter. I'll look at this stuff today.

Question: Do you have any guidance on how to extract/use the OBS library
that's cross-platform? I wouldn't want to include everything that OBS has
to offer to keep the footprint of our application low. Any docs on their
API as well?

Suhail

--

Founder


On Mon, Aug 5, 2019 at 9:20 AM Peter Harris <peter at harr.ca> wrote:

> On 2019-08-05 11:07 a.m., Suhail Doshi wrote:
> > My question is: Is there a way to get an image of the desktop that
> > returns a pointer that's GPU memory? For example, in Windows 10, there's
> > an API called the Desktop Duplication API which will allows you to do
> > this. Then, it lets you copy the data in that GPU memory block to
> > another one such that you can encode the frame with H264, for example. I
> > am using NVIDIA GPUs and utilizing their NVENC SDK.
> >
> > I am looking for an equivalent.
>
> XCB is very low-level. For most things, you probably want to use a
> higher level library (such as, for example, OBS:
> https://github.com/obsproject/obs-studio , which includes a
> cross-platform library with an API that is probably closer to the
> Desktop Duplication API than anything in XCB).
>
> With that said, if you want to implement the details yourself, you can
> take a peek inside OBS and see that the capture method that copies
> uncompressed pixels back to main memory uses xcb_shm_get_image (and
> xcb_xfixes_get_cursor_image, and xcb_xinerama_query_screens, among other
> things).
>
> https://github.com/obsproject/obs-studio/blob/master/plugins/linux-capture/xshm-input.c
>
> Peter Harris
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/xcb/attachments/20190805/51ab9931/attachment.html>


More information about the Xcb mailing list