You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.
Specifically, looking at the map flags, WRITE is not an option. I do not understand how I am to optimally interact with a GstBuffer from a GstPushSrc-derived type, then. If you look at the GstPushSrc documentation here: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html, there is a .fill() function you may implement. It gets passed to it a GstBuffer which is to be written to, and that buffer is then used by the downstream encoder. I wish to fill it with NV12 data coming directly off my webcam.
If, however, I am connecting my GstPushSrc class to an mfx h264 encoder and wish to interact with the buffer like this:
I cannot as the GST_MAP_WRITE fails. And it fails because of error_unsupported_map in the code I referenced above. In the "standard", off-the-shelf h264 encoder provided as part of the gstreamer plugin collection, the above code works for me. It fails with the Intel plugins. This is presumably because of the fact this is video memory? However, I know in Intel's OpenCL, for example, I'm able to map buffers and write to them from code operating on the CPU (shared memory between the two on-board chips, if I recall).
How can I optimally interact with this GstBuffer from my fill function with these plugins?
The text was updated successfully, but these errors were encountered:
@kwende well observed, write mapping is not supported here. Did you try GST_MAP_READWRITE in your code?
Some changes can be done to this module to add mapping with the write flag for MFX surfaces that use system memory, but lately I don't have the time to look into this.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Edit: I'm running into this on Windows 10. Intel Core i7-6700K
This relates to
gstreamer-media-SDK/gst/mfx/gstmfxvideomemory.c
Line 236 in d4edf72
Specifically, looking at the map flags, WRITE is not an option. I do not understand how I am to optimally interact with a GstBuffer from a GstPushSrc-derived type, then. If you look at the GstPushSrc documentation here: https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html, there is a .fill() function you may implement. It gets passed to it a GstBuffer which is to be written to, and that buffer is then used by the downstream encoder. I wish to fill it with NV12 data coming directly off my webcam.
If, however, I am connecting my GstPushSrc class to an mfx h264 encoder and wish to interact with the buffer like this:
I cannot as the GST_MAP_WRITE fails. And it fails because of error_unsupported_map in the code I referenced above. In the "standard", off-the-shelf h264 encoder provided as part of the gstreamer plugin collection, the above code works for me. It fails with the Intel plugins. This is presumably because of the fact this is video memory? However, I know in Intel's OpenCL, for example, I'm able to map buffers and write to them from code operating on the CPU (shared memory between the two on-board chips, if I recall).
How can I optimally interact with this GstBuffer from my fill function with these plugins?
The text was updated successfully, but these errors were encountered: