|
|
| | Decoder (std::shared_ptr< StormByte::Logger::Log > log, int track, DecoderFlags flags=DecoderFlags{}) noexcept |
| | Decoder for one origin track.
|
| |
| | Decoder (const Decoder &other)=delete |
| | Copy constructor.
|
| |
| | Decoder (Decoder &&other) noexcept=delete |
| | Move constructor.
|
| |
| | ~Decoder () noexcept override |
| | Destructor.
|
| |
| Decoder & | operator= (const Decoder &other)=delete |
| | Copy assignment.
|
| |
| Decoder & | operator= (Decoder &&other) noexcept=delete |
| | Move assignment.
|
| |
| | operator bool () const noexcept |
| | true if open and not failed.
|
| |
|
| int | Index () const noexcept |
| | Bound origin track.
|
| |
| std::size_t | InputCeiling () const noexcept override |
| | Ceiling of the decoder input hopper.
|
| |
| const DecoderFlags & | Flags () const noexcept |
| | Flags.
|
| |
| void | Flags (DecoderFlags flags) noexcept |
| | Replaces flags (before demuxer >> decoder).
|
| |
| const std::optional< std::string > & | Language () const noexcept |
| | Stream language tag copied from the origin File.
|
| |
| const std::optional< std::string > & | Title () const noexcept |
| | Stream title tag copied from the origin File.
|
| |
|
| const std::optional< std::string > & | Implementation () const noexcept |
| | Pinned FFmpeg decoder name, if any.
|
| |
| void | Implementation (std::string name) noexcept |
| | Pins an FFmpeg decoder name (before demuxer >> decoder).
|
| |
| const Features & | Require () const noexcept |
| | Extra required Feature bits.
|
| |
| void | Require (Features features) noexcept |
| | Replaces extra required Feature bits.
|
| |
| const Features & | Capabilities () const noexcept |
| | Features of the opened implementation.
|
| |
| | 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.
|
| |
| 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.
|
| |
| void | Wait () noexcept |
| | Sleeps on Wake until hopper Ready, Failed or Stopping.
|
| |
| 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.
|
| |
| std::shared_ptr< StormByte::Logger::Log > | m_log |
| |
| enum Producer | m_name |
| | UseLog leaf / default Label.
|
| |
| Kinds | m_receives |
| | Receives.
|
| |
| Kinds | m_produces |
| | Produces.
|
| |
Decodes packets of one origin track into frames.
Notice: opened implementation, once. LowLevel unit lines always; the shared logger throttles. The Through pumper times each Process; source EoF dumps min/max at Debug.
Lineage: StampLineage copies the last accepted packet Serial onto each produced frame and advances Part. Dts of that packet is copied onto Frame::Dts. That is pipe lineage, not a decoded-frame count.
Origin frames leave through Step::Emit (analytics tap clone, then process). Dest-look frames also Emit; their Producer is the stage that fed the look (Producer::Encoder or Producer::Remuxer). Source-look frames keep Producer::Decoder.
Label is Decoder(<implementation>) after Open pins a table row, otherwise Decoder(t=<origin index>). Look mode is Decoder(look encode|remux|src t=<index>).
Look modes are not public constructors. Filters builds them when Analytics needs pictures from a packet stretch. Those decoders have no Demuxer: they open from the first Packet's codec parameters. The public ctor never enters look mode.