41#include <StormByte/buffer/fifo.hxx>
42#include <StormByte/logger/log.hxx>
52#include <condition_variable>
57#include <unordered_map>
143 friend class Backend::Pipeline::Demuxer;
144 friend class Backend::Pipeline::Detail::Worker::Demux;
163 explicit Demuxer(std::shared_ptr<StormByte::Logger::Log> log)
noexcept;
204 explicit operator
bool() const noexcept;
217 bool Eof() const noexcept;
246 void WaitForPlan() noexcept;
253 void LatchDuration() noexcept;
261 void ReachedEof() noexcept;
269 void Measure(std::vector<
int> tracks) noexcept;
275 bool Measuring() const noexcept;
283 bool WakeNow() const noexcept override;
292 bool Rewind() noexcept;
298 const
File& OriginFile() const noexcept;
304 Origin& BoundOrigin() noexcept;
340 std::optional<
Property::Duration> pts,
341 std::optional<
Property::Duration> dts,
342 std::optional<
Property::Duration> duration,
348 std::mutex m_planMutex;
349 std::condition_variable m_planPresent;
350 std::atomic<std::int64_t> m_positionNs;
351 std::unordered_map<
int, std::uint64_t> m_nextSerial;
352 std::vector<
int> m_measureTracks;
353 bool m_measuring = false;
355 std::shared_ptr<class
Progress> m_progress;
Hopper and Sink live in StormByte-Buffer.
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47