Is there an existing solution/approach/toolset for shared memory (IPC) for large data? (Graphics)
by Geist from LinuxQuestions.org on (#4ZKKS)
I really like shell stuff because piping everything into a glorious web of functionality is great.
This is not easily done with graphical "IDEs" of any kind, including multimedia editors, which are a sore spot, in my opinion, in the Linux world.
You get really good folk doing some really good work in some tied together suite, and these good folk must then weep and sob because the rest of the suite has some awful, awful, awful aspect and people are giving the good developers grief. However, the developers are spread thin and often simply can not plug all the leaks in the ship.
This saddens me, because I tend to get really angry at awful GUI stuff because I'm a control freak (as in, I want good controls, not to control others (yes, despite my crusade against some specific text editor flavors)).
I could spend time becoming a better person on that front, but I'm gonna die in a few decades anyway and then people can dance around my grave and be merry, no, that would be a waste of time if I could just write code instead.
There are things like DBUS and OLE and whatnot, but I am very ignorant about them and their limitations, and, blind as I am, I would just sink into a mire of research. I am not a very good programmer, much less of a designer and I'm not even all that smart overall.
But I am of the rather strong opinion that IDEs must be smashed in favor of completely replaceable components, like virtual instruments in a DAW.
And since I mentioned Graphics, there's a rather thicc boy in the room, image/video/mesh/texture data.
Is there something that can already deal with such things, like unix sockets or something. Again, I am begging for spoonfeeding here. Not implementations, just answers on concepts. If you are learned in it, it's better to ask you for your input than have ignoramus me rustle through stuff and lose motivation cause I'm a scrub. I need direction.
Big data sharing is required so things like "one window (or applet/component)" is a "create asset component", this could be the user drawing something with brushes.
This component is completely self contained for its own purpose, but the data it creates should be usable by a "low latency viewer" for example (in the case of animation or video editing).
Things like OpenGL or Vulcan should be able to run off this shared memory. I have looked into This boost implementation but the "cannot hold C++ objects" bit confused me.
(Again, I'm not that good, I'm not that learned, I will write code but I don't have good knowledge for design. I don't wanna say code monkey, but..think code monkey )
So yeah, any input is welcome. How to share chunky chunks of memory between ravioli applications like in a DAW? Has it been done? What could I use?
(No need to explain mutexes (mutices?) and co to me, but if they need to be used in some special way, then that would be helpful. I know what they do, just not always where they should go. (I know that makes little sense after saying that i know what they do...but...alas :P ))
Edit:
And just to repeat it...it's gotta be a fast solution, fast enough for multimedia that is synced time wise.
P.S.:
The solution could be a 'no brainer' like literal shared memory, my issue is more about lack of knowledge about performance, etc.


This is not easily done with graphical "IDEs" of any kind, including multimedia editors, which are a sore spot, in my opinion, in the Linux world.
You get really good folk doing some really good work in some tied together suite, and these good folk must then weep and sob because the rest of the suite has some awful, awful, awful aspect and people are giving the good developers grief. However, the developers are spread thin and often simply can not plug all the leaks in the ship.
This saddens me, because I tend to get really angry at awful GUI stuff because I'm a control freak (as in, I want good controls, not to control others (yes, despite my crusade against some specific text editor flavors)).
I could spend time becoming a better person on that front, but I'm gonna die in a few decades anyway and then people can dance around my grave and be merry, no, that would be a waste of time if I could just write code instead.
There are things like DBUS and OLE and whatnot, but I am very ignorant about them and their limitations, and, blind as I am, I would just sink into a mire of research. I am not a very good programmer, much less of a designer and I'm not even all that smart overall.
But I am of the rather strong opinion that IDEs must be smashed in favor of completely replaceable components, like virtual instruments in a DAW.
And since I mentioned Graphics, there's a rather thicc boy in the room, image/video/mesh/texture data.
Is there something that can already deal with such things, like unix sockets or something. Again, I am begging for spoonfeeding here. Not implementations, just answers on concepts. If you are learned in it, it's better to ask you for your input than have ignoramus me rustle through stuff and lose motivation cause I'm a scrub. I need direction.
Big data sharing is required so things like "one window (or applet/component)" is a "create asset component", this could be the user drawing something with brushes.
This component is completely self contained for its own purpose, but the data it creates should be usable by a "low latency viewer" for example (in the case of animation or video editing).
Things like OpenGL or Vulcan should be able to run off this shared memory. I have looked into This boost implementation but the "cannot hold C++ objects" bit confused me.
(Again, I'm not that good, I'm not that learned, I will write code but I don't have good knowledge for design. I don't wanna say code monkey, but..think code monkey )
So yeah, any input is welcome. How to share chunky chunks of memory between ravioli applications like in a DAW? Has it been done? What could I use?
(No need to explain mutexes (mutices?) and co to me, but if they need to be used in some special way, then that would be helpful. I know what they do, just not always where they should go. (I know that makes little sense after saying that i know what they do...but...alas :P ))
Edit:
And just to repeat it...it's gotta be a fast solution, fast enough for multimedia that is synced time wise.
P.S.:
The solution could be a 'no brainer' like literal shared memory, my issue is more about lack of knowledge about performance, etc.