Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gstd adding and removing elements #309

Open
ajlennon opened this issue Aug 18, 2022 · 6 comments
Open

gstd adding and removing elements #309

ajlennon opened this issue Aug 18, 2022 · 6 comments

Comments

@ajlennon
Copy link

We really really like gstd here, to the extent that we are trying hard to work out if we can use it instead of the programmatic option.

We think we need to be able to add and remove kvssink element to our pipeline dynamically as we don't want it to connect up when the pipeline starts up.

It seems that gstd doesn't support adding and removing elements dynamically?

We're wondering maybe if we can sort of work around this with the GstInterPipe elements

https://developer.ridgerun.com/wiki/index.php/GstInterpipe_-_Simple_Examples

So just a suggestion - it might be neat for gstd to support adding/removing elements from pipelines to make it even more awesome?

Cheers,

Alex

@clogwog
Copy link

clogwog commented Aug 18, 2022

Hi Alex,

we have a similar requirement and i solved it by creating multiple pipelines

camerasrc->interpipesink name=cam

interpipesrc listen-to-cam -> save to disk

and whenever we need to startup another pipline that does

interpipesrc listen-to=cam -> kvssink

and when we no longer need kinesis streaming we delete that last steaming pipeline

@ajlennon
Copy link
Author

Very interesting - yet again thnks @clogwog !!!

@ajlennon
Copy link
Author

We're investigating here.... Do you happen to know if the interpipesink actually pipes the buffer through or if multiple copies of packets are made? As we're a bit short of memory!

@clogwog
Copy link

clogwog commented Aug 18, 2022

sorry, i'm not sure.
i would think that if you are running it on nvidia hardware and are using video/x-raw(memory:NVMM) it would pass the memory pointers along, but in the non-nvidia gpu case, it might be a copy, but not sure.. maybe someone else can help out here ?

@filiphanes
Copy link

From: https://developer.ridgerun.com/wiki/index.php/GstInterpipe_-_Features_and_Limitations

Interpipesink will transfer automatically the buffers it receives to all the interpipesrcs that are currently listening to it. There is no data copy.

@ajlennon
Copy link
Author

Thanks @filiphanes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants