144 VMAF(std::shared_ptr<StormByte::Logger::Log> log, std::string model,
145 std::optional<unsigned short> threads = {})
noexcept;
185 std::
size_t InputCeiling() const noexcept
override {
208 void Setup() noexcept override;
222 void Eof() noexcept override;
229 VmafContext* vmaf =
nullptr;
230 VmafModel* model =
nullptr;
231 std::deque<StormByte::Multimedia::FFmpeg::AVFrame> ref;
232 std::deque<StormByte::Multimedia::FFmpeg::AVFrame> dist;
237 std::size_t peakRef = 0;
238 std::size_t peakDist = 0;
239 std::optional<double> mean;
240 std::optional<double> min;
258 int tw,
int th,
void* out)
noexcept;
265 bool OpenLane(Lane& lane)
noexcept;
277 void Score(Lane& lane,
280 unsigned index)
noexcept;
286 void Drain(Lane& lane)
noexcept;
292 unsigned Threads() const noexcept;
298 void DropParked(Lane& lane) noexcept;
303 void DropAll() noexcept;
305 static constexpr std::
size_t Ceiling = 512;
306 std::
string m_modelName;
307 std::optional<
unsigned short> m_threads;
308 std::map<
int, Lane> m_lanes;