There are many instances in the creation of static pipelines, and in the Zstrument documentation, however, an live pipeline There is not much about changing / ringing elements - while the media is actually flowing. This is definitely possible, so the question is:
- Before trying, can I understand gstreamer concepts / mechanics?
- Is there any harm to look for?
- What is the basic process, or what is a good example?
Approved answer spoon will be comprehensive, and with source code
My favorite "concept", water to understand linking (and dynamic linking) Thinking about the pipeline as a real pipe with streaming.
-
Through it. Once you do this, then some things will become very clear. As such, "Do you set the source to play before adding the element?", "Do you turn on the water before connecting the tube?", Even with dynamic linking, how will you ensure that any water "Leak" (It's not bad, "Leak" in GStreamer is equivalent to getting a GST_FLOW_NOT_LINKED, and your source and fun will stop) or sticks (maybe
-
Yes, with a little rejection that I am still I work at 0.10 and some of these can be fixed with 1.0, unfortunately it is very difficult, dynamic linking and unlinking with GSTrimer 0.10. Explain to me: Suppose you are using T, and you You want to unlink a branch. You will start by releasing teas SOSPD (do not ever think about unlinking it, which is in the form of a release of Pad), and now you can not The side of the che should be able to break the elements. (The water equivalent is that you turn off a valve after T, and after the valve you may be able to break the pipe, you must first pipe without closing the valve Do not start destroying, unless you want to wet ...) This will work most of the time, but there is a race here. Because after leaving your pad, there may still be a push or pad on your pad on that pad, and if you start tearing the downstream elements in your code now, then it crashes due to the present race In some elements, if they get push or pad-light, or you get a GST_FLOW_WRONG_STATE or GST_FLOW_NOT_LINKED and they will go back to the source block for all ...
-
I like this Many experiments, and found that if you need stability, and sometimes crashing / freezing is not an option if you need an element that will serve as the dynamic safety net. An element that will guarantee that there will be no activity on the pad after you have released / unlinked. The only way to do this is to break another Gstream pattern to avoid pushing a lock: you have to catch the lock while sending / sending the gesture / pad-allocation. I made this way in a while ago. (Test-case is absolutely the most important thing, because it allows you to test your own / other elements for their safety) You can also think of a lock-free element that swallows all the bad flow retrones. , And just a beautiful picture towards it, but then you will need to make sure that all your downstream-elements "receive push or pad-alok while shutting down Yes ", because your element will not be able to guarantee that once" stop flow "(release / unlink) has been executed, a small drop will not squeeze past. Certainly you have to keep it in perspective, about these terrible race conditions, the window I'm talking about is actually very small, and only 1000 or You can run your program at 10.000 th time. But for a professional application it is definitely not acceptable. I did a thing where I had included this stuff something
Comments
Post a Comment