40struct AVFormatContext;
47struct MediaDescription;
59 :
std::runtime_error(
msg){}
61 :
std::runtime_error(
msg){}
70 void openOutput(
const std::string& filename,
const std::string& format =
"");
123 void openIOContext();
139 int getHWFrame(
const std::shared_ptr<VideoFrame>& input, std::shared_ptr<VideoFrame>&
output);
145 std::vector<AVCodecContext*> encoders_;
148 int currentStreamIdx_ = -1;
149 unsigned sent_samples = 0;
150 bool initialized_ {
false};
151 bool fileIO_ {
false};
152 unsigned int currentVideoCodecID_ {0};
153 const AVCodec* outputCodec_ =
nullptr;
154 std::mutex encMutex_;
155 bool linkableHW_ {
false};
157 bool fecEnabled_ {
false};
160 video::VideoScaler scaler_;
164 std::vector<uint8_t> scaledFrameBuffer_;
165 int scaledFrameBufferSize_ = 0;
169 std::unique_ptr<video::HardwareAccel>
accel_;
void emitSignal(Args... args)
libjami::VideoFrame VideoFrame
Simple macro to hide class' copy constructor and assignment operator.
#define NON_COPYABLE(ClassName)