46 audioEncoder_.reset();
54 muxContext_.reset(
socketPair.createIOContext(mtu_));
58 JAMI_DBG(
"audioEncoder_->openOutput %s", dest_.c_str());
59 audioEncoder_->openOutput(dest_,
"rtp");
60 audioEncoder_->setOptions(args_);
61 auto codec = std::static_pointer_cast<SystemAudioCodecInfo>(args_.
codec);
62 auto ms =
MediaStream(
"audio sender", codec->audioformat);
63 audioEncoder_->setOptions(ms);
64 audioEncoder_->addStream(*args_.
codec);
65 audioEncoder_->setInitSeqVal(seqVal_);
66 audioEncoder_->setIOContext(muxContext_->getContext());
67 }
catch (
const MediaEncoderException&
e) {
72 audioEncoder_->print_sdp();
80 const std::shared_ptr<jami::MediaFrame>&
framePtr)
83 frame->pts = sent_samples;
84 sent_samples +=
frame->nb_samples;
92 voiceCallback_(voice_);
94 JAMI_ERR(
"AudioSender no voice callback!");
98 if (audioEncoder_->encodeAudio(*std::static_pointer_cast<AudioFrame>(
framePtr)) < 0)
106 voiceCallback_ = std::move(
cb);
108 JAMI_ERR(
"AudioSender attempting to set invalid voice callback");
115 return audioEncoder_->getLastSeqValue();
126 return audioEncoder_->setPacketLoss(
pl);
AudioSender(const std::string &dest, const MediaDescription &args, SocketPair &socketPair, const uint16_t seqVal, const uint16_t mtu)
void setVoiceCallback(std::function< void(bool)> cb)
int setPacketLoss(uint64_t pl)
uint16_t getLastSeqValue()
void update(Observable< std::shared_ptr< jami::MediaFrame > > *, const std::shared_ptr< jami::MediaFrame > &) override
void emitSignal(Args... args)