41#include <StormByte/buffer/fifo.hxx>
42#include <StormByte/logger/log.hxx>
104 friend class Backend::Pipeline::Encoder;
105 friend class Backend::Pipeline::Detail::Worker::Encode;
120 Encoder(std::shared_ptr<StormByte::Logger::Log> log,
121 int output_index,
const Codec& codec)
noexcept;
167 explicit operator
bool() const noexcept;
252 return m_implementation;
274 m_require = features;
282 return m_capabilities;
298 inline void CRF(
int value)
noexcept {
306 inline const std::optional<int>&
CRF() const noexcept {
314 inline void BitRate(std::int64_t bits_per_second)
noexcept {
315 m_bitRate = bits_per_second;
322 inline const std::optional<std::int64_t>&
BitRate() const noexcept {
330 inline void MaxBitRate(std::int64_t bits_per_second)
noexcept {
331 m_maxBitRate = bits_per_second;
338 inline const std::optional<std::int64_t>&
MaxBitRate() const noexcept {
352 inline const std::optional<std::string>&
Preset() const noexcept {
360 void Tune(std::string name)
noexcept;
366 inline const std::optional<std::string>&
Tune() const noexcept {
383 inline const std::map<std::string, std::string>&
FineTune() const noexcept {
391 inline void FineTune(std::map<std::string, std::string> options)
noexcept {
392 m_fineTune = std::move(options);
412 std::string Label() const noexcept override;
440 std::optional<
Property::Duration> pts,
441 std::optional<
Property::Duration> dts,
442 std::optional<
Property::Duration> duration,
452 bool MuxBindStream(
void* avStream) noexcept;
459 void* FrameHandle(
Frame& frame) noexcept;
466 const
void* FrameHandle(const
Frame& frame) noexcept;
472 void Emit(
Packet::PointerType packet) noexcept;
475 const
Codec* m_codec;
476 std::
string m_encoderTag;
477 std::optional<std::
string> m_implementation;
480 std::optional<
int> m_crf;
481 std::optional<std::int64_t> m_bitRate;
482 std::optional<std::int64_t> m_maxBitRate;
483 std::optional<std::
string> m_preset;
484 std::optional<std::
string> m_tune;
485 std::map<std::
string, std::
string> m_fineTune;
487 std::optional<std::uint64_t> m_serial;
488 std::uint64_t m_part;
Hopper and Sink live in StormByte-Buffer.
#define STORMBYTE_MULTIMEDIA_PUBLIC
Imported symbol.
Definition visibility.h:47