Thanks a lot for your message, I was feeling a bit desperate…
I don’t mind getting my hand in source code, I already have my own MG version including the OGV player.
I must say I feel a bit more attracted by the first suggestion than compute shaders, mainly because i plan to release on consoles and I don’t want to dwelve too far in uncharted territories.
Should I direct my sight on the GetData implementation ?
Yup, GetData is exactly where you want to start. I currently use own framework build around SharpDX (same as Monogame DX project) and what I do is I have two function, one for copy into staging and other for actual GetData to cpu. If you would want to get data every frame, then create for example three staging buffers. So there would be still three frames delay but data would be obtained every frame (but since you already said you get them once in 500 ms, I expect that one staging buffer will do just fine).