107 friend class StormByte::Multimedia::Backend::Pipeline::Transcoder;
152 std::shared_ptr<
Step> destination) noexcept;
171 template<typename T, typename... Args>
173 return Add(std::shared_ptr<Filter::FFmpeg>(
174 std::make_shared<T>(std::forward<Args>(args)...)));
199 std::vector<std::pair<std::
string,
Filter::Report>>
Reports() const noexcept;
214 Handle&
Add(std::shared_ptr<Filter::FFmpeg> filter)
noexcept;
223 template<
typename T,
typename... Args>
224 Handle&
Add(Args&&... args)
noexcept {
225 return Add(std::shared_ptr<Filter::FFmpeg>(
226 std::make_shared<T>(std::forward<Args>(args)...)));
237 Handle(
Filters& owner, std::size_t index)
noexcept;
248 bool Measuring() const noexcept;
256 bool MeasureReadyToFinish() const noexcept;
265 void CloseMeasureSource() noexcept;
274 void OnMeasureDrained(
int track) noexcept;
282 void OnMeasureFilterDrained() noexcept;
290 void MaybeFinishMeasure() noexcept;
300 void FinishMeasure() noexcept;
305 void BindClock() noexcept;
312 void ClockAnalytics() noexcept;
320 void NoteAnalytics(std::int64_t ns) noexcept;
328 void NoteMeasure(std::int64_t ns) noexcept;
334 std::shared_ptr<Step> Origin;
335 std::shared_ptr<Step> Destination;
337 std::unique_ptr<Route> Lane;
338 std::optional<int> Scope;
345 std::shared_ptr<Filter::FFmpeg>
Filter;
346 std::optional<int>
Track;
349 std::vector<Stretch> m_stretches;
350 std::vector<Attached> m_globals;
351 std::vector<Attached> m_reports;
352 std::vector<int> m_measureTracks;
353 std::vector<int> m_measureDrained;
354 std::size_t m_measureFilterCount = 0;
355 std::size_t m_measureFiltersDrained = 0;
356 bool m_measuring =
false;
357 bool m_hasAnalytics =
false;
358 std::shared_ptr<class Progress> m_progress;
Frame and packet steps attached to a job or a raw pipeline.
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47