48 keyFrameFreq_ =
opts.frameRate.numerator() * KEY_FRAME_PERIOD;
49 videoEncoder_->openOutput(
dest,
"rtp");
50 videoEncoder_->setOptions(
opts);
51 videoEncoder_->setOptions(
args);
56 videoEncoder_->addStream(*
args.codec);
57 videoEncoder_->setInitSeqVal(
seqVal);
58 videoEncoder_->setIOContext(muxContext_->getContext());
62VideoSender::encodeAndSendVideo(
const std::shared_ptr<VideoFrame>&
input_frame)
65 if (rotation_ !=
angle) {
67 if (changeOrientationCallback_)
68 changeOrientationCallback_(rotation_);
72 videoEncoder_->send(*packet);
75 or (keyFrameFreq_ > 0
and (frameNumber_ % keyFrameFreq_) == 0);
84 if (frameNumber_ == 1)
85 videoEncoder_->print_sdp();
91 const std::shared_ptr<MediaFrame>&
frame_p)
93 encodeAndSendVideo(std::dynamic_pointer_cast<VideoFrame>(
frame_p));
106 return videoEncoder_->getLastSeqValue();
112 changeOrientationCallback_ = std::move(
cb);
123 return videoEncoder_->setBitrate(
br);
static LIBJAMI_TEST_EXPORT Manager & instance()
VideoSender(const std::string &dest, const MediaStream &opts, const MediaDescription &args, SocketPair &socketPair, const uint16_t seqVal, uint16_t mtu, bool allowHwAccel=true)
void update(Observable< std::shared_ptr< MediaFrame > > *obs, const std::shared_ptr< MediaFrame > &frame_p) override
uint16_t getLastSeqValue()
void setChangeOrientationCallback(std::function< void(int)> cb)
int setBitrate(uint64_t br)
void emitSignal(Args... args)
SIPCall are SIP implementation of a normal Call.