|
| int | Track () const noexcept |
| | Origin track.
|
| |
| Route & | Add (std::shared_ptr< Filter::FFmpeg > filter) noexcept |
| | Takes ownership of filter, hooks it and launches it.
|
| |
| template<typename T , typename... Args> |
| Route & | Add (Args &&... args) noexcept |
| | Constructs a leaf of type T on this track.
|
| |
| bool | Idle () const noexcept |
| | Whether every owned worker has left Ready.
|
| |
| std::vector< Filter::Report > | Reports () const noexcept |
| | Reports of every kept filter.
|
| |
|
| | Route (int track, std::shared_ptr< Step > origin, std::shared_ptr< Step > destination) noexcept |
| | Route for one origin track and its two ends.
|
| |
| | Route (const Route &other)=delete |
| | Copy constructor.
|
| |
| | Route (Route &&other) noexcept=delete |
| | Move constructor.
|
| |
| | ~Route () noexcept |
| | Destructor.
|
| |
| Route & | operator= (const Route &other)=delete |
| | Copy assignment.
|
| |
| Route & | operator= (Route &&other) noexcept=delete |
| | Move assignment.
|
| |
Owns the filter chain of one origin track and two ends.
Advanced API. Construct origin and destination as std::shared_ptr<Step>. Multimedia recommends std::make_shared so the last owner destroys the Step.
Packet / BSF filters may sit between Demuxer and Remuxer. Frame / Process filters on that stretch fail at Close. Encode lanes use Frame and Packet filters between Decoder and Encoder.
Analytics is not a process node. Close wires Process from origin to destination. Frame origins Backend::Pipeline::Pipe::CloneTo the origin Pipe onto each Analytics (decode look). Packet origins spawn a Route-owned Decoder so Analytics still sees frames with Producer::Decoder. Destination packet producers spawn a look Decoder from a CloneTo of dest Out. The last Analytics Pipe Out is StormByte::Buffer::Sink::Drain.
Close is private: add Routes through Filters and call Filters::Close. CloneTo the origin before it emits.
Muxer closed is not the end of this Route. Wait Idle before Reports.