|
StormByte C++ Library: Multimedia module 0.0.9999
StormByte-Multimedia is a StormByte library module for parsing configuration files
|
Job clock for one tube. More...
#include <StormByte/multimedia/pipeline/progress.hxx>
Public Types | |
| using | Pointer = std::shared_ptr<const Progress> |
| User-facing handle. | |
Public Member Functions | |
| Progress () noexcept=default | |
| Empty clock. | |
| Progress (const Progress &other)=delete | |
| Copy constructor. | |
| Progress (Progress &&other) noexcept=delete | |
| Move constructor. | |
| ~Progress () noexcept=default | |
| Destructor. | |
| Progress & | operator= (const Progress &other)=delete |
| Copy assignment. | |
| Progress & | operator= (Progress &&other) noexcept=delete |
| Move assignment. | |
| std::optional< double > | Measure () const noexcept |
| First-pass percent, if the tube mounted 2-pass. | |
| std::optional< double > | Analytics () const noexcept |
| Dest-look percent, if analytics taps exist. | |
| bool | HasMeasure () const noexcept |
| Whether this tube mounted a measure pass. | |
| bool | HasAnalytics () const noexcept |
| Whether this tube mounted analytics taps. | |
| bool | MeasureComplete () const noexcept |
| Whether the measure pass is finished. | |
| bool | AnalyticsComplete () const noexcept |
| Whether analytics is finished. | |
| double | All () const noexcept |
| Combined job percent. | |
| operator std::string () const noexcept | |
| One CR-safe line: live axes plus All. | |
Friends | |
| class | Demuxer |
| class | Filters |
| class | Muxer |
Job clock for one tube.
The Demuxer creates one instance and shares it. Filters write analytics, the Muxer writes that the container finished. Transcoder::Progress and Demuxer::Progress return Pointer (shared, const). The user may keep that pointer after the tube dies. There are no public setters.
Public axes are measure (optional 2-pass) and analytics (optional taps). Ordinary Process has no public name; its score only enters All.
All is a weighted sum of the mounted axes. Measure, when present, is 5 percent. Analytics, when present, is 10 percent and runs in parallel with Process. Process/mux takes the rest (100, 95, 90 or 85 percent). Missing axes are not in the mix. 100.00 only when the Muxer finished and every mounted phase is closed. Measure pts come from frames that already ran Measure, not from demux emission.
| using StormByte::Multimedia::Pipeline::Progress::Pointer = std::shared_ptr<const Progress> |
User-facing handle.
Const, shared. Not a raw pointer.
|
defaultnoexcept |
Empty clock.
No measure, no analytics.
|
delete |
Copy constructor.
| other | Source clock. |
|
deletenoexcept |
Move constructor.
| other | Clock to take. |
|
defaultnoexcept |
Destructor.
|
noexcept |
Combined job percent.
Weighted sum of mounted axes: measure 5 percent if the tube has a 2-pass leaf, analytics 10 percent if dest-look taps exist, Process/mux the remainder. Analytics stays in the sum while measure is live; the status line only hides the analytics label then. All is monotone and stays below 100 until the Muxer finished and every mounted phase is closed.
|
noexcept |
Dest-look percent, if analytics taps exist.
|
noexcept |
Whether analytics is finished.
|
noexcept |
Whether this tube mounted analytics taps.
|
noexcept |
Whether this tube mounted a measure pass.
|
noexcept |
First-pass percent, if the tube mounted 2-pass.
|
noexcept |
Whether the measure pass is finished.
|
noexcept |
One CR-safe line: live axes plus All.
An axis is omitted when it was not mounted or already finished. While measure is live the analytics label is omitted even if taps exist. No newline.
Copy assignment.
| other | Source clock. |
Move assignment.
| other | Clock to take. |
|
friend |
|
friend |
|
friend |