|
| | operator bool () const noexcept |
| | true if open, not failed and not at EOF.
|
| | Demuxer (std::shared_ptr< StormByte::Logger::Log > log) noexcept |
| | Demuxer.
|
| | Demuxer (const Demuxer &other)=delete |
| | Copy constructor.
|
| | Demuxer (Demuxer &&other) noexcept=delete |
| | Move constructor.
|
| | ~Demuxer () noexcept override |
| | Destructor.
|
| Demuxer & | operator= (const Demuxer &other)=delete |
| | Copy assignment.
|
| Demuxer & | operator= (Demuxer &&other) noexcept=delete |
| | Move assignment.
|
| bool | Eof () const noexcept |
| | Whether the last read hit EOF.
|
| std::optional< Property::Duration > | Position () const noexcept |
| | Presentation time of the last emitted packet.
|
| Progress::Pointer | Progress () const noexcept |
| | Job clock for this tube (measure, analytics, All).
|
| | Step (const Step &other)=delete |
| | Step (Step &&other) noexcept=delete |
| virtual | ~Step () noexcept |
| | Destructor.
|
| Step & | operator= (const Step &other)=delete |
| Step & | operator= (Step &&other) noexcept=delete |
| std::condition_variable & | Wake () noexcept |
| | Consumer condition variable.
|
| const std::shared_ptr< class Plan > & | Plan () const noexcept |
| | Bound job intention, if any.
|
| const Kinds & | Receives () const noexcept |
| | Kinds this step consumes.
|
| const Kinds & | Produces () const noexcept |
| | Kinds this step emits.
|
| State | Status () const noexcept |
| | Current lifecycle value.
|
| virtual bool | Ready () const noexcept |
| | Whether this step can take work.
|
| void | Stop () noexcept |
| | Asks the worker to leave and closes all hoppers.
|
| virtual std::size_t | InputCeiling () const noexcept |
| | Ceiling of this step's input hopper.
|
| bool | Failed () const noexcept |
| | Whether this step has failed.
|
| const std::optional< std::string > & | Error () const noexcept |
| | Failure text.
|
| void | Fail (std::string reason) noexcept |
| | Marks Failed, closes all hoppers and wakes the worker.
|
|
| Backend::Pipeline::Pipe & | pipe () noexcept |
| | In / out hoppers of this stage.
|
| const Backend::Pipeline::Pipe & | pipe () const noexcept |
| | In / out hoppers of this stage.
|
| | Step (std::shared_ptr< StormByte::Logger::Log > log, enum Producer name, Kinds receives, Kinds produces) noexcept |
| | Step in State::Created.
|
| void | Emit (Item::PointerType item) noexcept |
| | Write item to the Pipe (item >> pipe).
|
| Item::PointerType | CloneItem (const Item &item) const noexcept |
| | Deep-copies item through Item::Clone.
|
| virtual void | Wait () noexcept |
| | Sleeps on Wake until hopper Ready, Failed, Stopping or WakeNow.
|
| virtual void | AfterWait () noexcept |
| | Work on the waiting worker after Wait unblocks.
|
| void | Launch () noexcept |
| | Starts the pumper: Setup, Ready, Pump.
|
| void | Halt () noexcept |
| | Stop and join the pumper.
|
| bool | Stopping () const noexcept |
| | Worker must return (Stop, Halt or Fail).
|
| void | RecordWork (std::int64_t microseconds) noexcept |
| | Adds one Process duration to the step summary.
|
| std::int64_t | LastWork () const noexcept |
| | Duration of the last timed Process, or 0.
|
| void | DumpWork () noexcept |
| | Writes min/max Process time at Debug.
|
| Backend::Pipeline::Host & | Face () noexcept |
| | Owner surface for the Pumper and Worker.
|
| void | Mount (std::unique_ptr< Backend::Pipeline::Pumper > pumper, std::unique_ptr< Backend::Pipeline::Worker > worker) noexcept |
| | Takes ownership of pumper and binds worker.
|
| virtual std::string | Label () const noexcept |
| | Display name of this step.
|
| std::shared_ptr< StormByte::Logger::Log > | m_log |
| | Scoped module logger (ThreadedLog preferred).
|
| enum Producer | m_name |
| | UseLog leaf / default Label.
|
| Kinds | m_receives |
| | Receives.
|
| Kinds | m_produces |
| | Produces.
|
Reads interleaved packets from a File origin.
Reads interleaved compressed packets from the Plan origin.
Only tracks listed in the bound Plan enter the tube. An origin stream omitted from Plan::add is never pushed.
A Filter::ProcessTwoPasses leaf tells Filters to call Measure before the first read. During that pass only the listed tracks are emitted and hoppers stay open at EoF. ReachedEof then asks Filters to CloseMeasureSource. Decode workers drain and Reset; Filters then LeaveMeasure and Rewind. The same Demuxer instance continues with ordinary Process (the same path as a job that never measured). Transcoder is not involved.
After measure EoF the demux worker Wait s until Rewind clears Measuring. That wake is WakeNow (!Measuring()), not hopper Ready.
The tube clock (Progress) is created here because a tube has exactly one Demuxer. Filters and the Muxer write the same shared object. Progress() returns a const handle the user may keep after the tube dies.
Notice: origin path at Setup, eof once (Process after measure, or the only pass). Debug: bind to a decoder and Process min/max at source EoF. LowLevel unit lines always; the shared logger throttles. Each Read+Emit is timed by the Source pumper.
Wrap assigns the next Packet::Serial for that origin track and Part zero. That id is pipe lineage, not an FFmpeg frame count.