41#include <StormByte/buffer/fifo.hxx>
42#include <StormByte/logger/log.hxx>
51#include <condition_variable>
56#include <unordered_map>
122 friend class Backend::Pipeline::Demuxer;
123 friend class Backend::Pipeline::Detail::Worker::Demux;
141 explicit Demuxer(std::shared_ptr<StormByte::Logger::Log> log)
noexcept;
182 explicit operator
bool() const noexcept;
193 bool Eof() const noexcept;
199 std::optional<Property::Duration> Position() const noexcept;
211 void WaitForPlan() noexcept;
216 void ReachedEof() noexcept;
222 const
File& OriginFile() const noexcept;
228 Origin& BoundOrigin() noexcept;
235 std::unique_ptr<Backend::Pipeline::
Decoder> OpenDecoder(
Decoder& decoder) noexcept;
264 std::optional<Property::Duration> pts,
265 std::optional<Property::Duration> dts,
266 std::optional<Property::Duration> duration,
268 std::unique_ptr<Backend::Pipeline::
Packet> backend) noexcept;
270 std::unique_ptr<Backend::Pipeline::
Demuxer> m_backend;
272 std::mutex m_planMutex;
273 std::condition_variable m_planPresent;
274 std::atomic<std::int64_t> m_positionNs;
275 std::unordered_map<
int, std::uint64_t> m_nextSerial;
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47