Ring Daemon 16.0.0
Loading...
Searching...
No Matches
jami::MediaEncoder Class Reference

#include <media_encoder.h>

Collaboration diagram for jami::MediaEncoder:
Collaboration graph

Public Member Functions

int addStream (const SystemCodecInfo &codec)
 
int encode (AVFrame *frame, int streamIdx)
 
int encodeAudio (AudioFrame &frame)
 
int flush ()
 
const std::string & getAudioCodec () const
 
int getHeight () const
 
uint16_t getLastSeqValue ()
 
MediaStream getStream (const std::string &name, int streamIdx=-1) const
 
unsigned getStreamCount () const
 
const std::string & getVideoCodec () const
 
int getWidth () const
 
 MediaEncoder ()
 
void openOutput (const std::string &filename, const std::string &format="")
 
std::string print_sdp ()
 
void resetStreams (int width, int height)
 
bool send (AVPacket &packet, int streamIdx=-1)
 
int setBitrate (uint64_t br)
 
void setInitSeqVal (uint16_t seqVal)
 
void setIOContext (AVIOContext *ioctx)
 
void setMetadata (const std::string &title, const std::string &description)
 
void setOptions (const MediaDescription &args)
 
void setOptions (const MediaStream &opts)
 
int setPacketLoss (uint64_t pl)
 
 ~MediaEncoder ()
 

Static Public Member Functions

static std::string testH265Accel ()
 

Protected Member Functions

void readConfig (AVCodecContext *encoderCtx)
 

Protected Attributes

std::string audioCodec_
 
MediaStream audioOpts_
 
AVDictionaryoptions_ = nullptr
 
std::string videoCodec_
 
MediaStream videoOpts_
 

Detailed Description

Definition at line 64 of file media_encoder.h.

Constructor & Destructor Documentation

◆ MediaEncoder()

jami::MediaEncoder::MediaEncoder ( )

Definition at line 59 of file media_encoder.cpp.

References JAMI_DBG.

◆ ~MediaEncoder()

jami::MediaEncoder::~MediaEncoder ( )

Definition at line 65 of file media_encoder.cpp.

References jami::emitSignal(), JAMI_DBG, and options_.

Here is the call graph for this function:

Member Function Documentation

◆ addStream()

int jami::MediaEncoder::addStream ( const SystemCodecInfo codec)

Definition at line 174 of file media_encoder.cpp.

References audioCodec_, audioOpts_, jami::emitSignal(), jami::MediaStream::isValid(), JAMI_DBG, JAMI_ERR, jami::MEDIA_AUDIO, and videoCodec_.

Here is the call graph for this function:

◆ encode()

int jami::MediaEncoder::encode ( AVFrame frame,
int  streamIdx 
)

Definition at line 478 of file media_encoder.cpp.

References jami::emitSignal(), jami::libav_utils::getError(), jami::MediaStream::isValid(), JAMI_ERR, send(), videoCodec_, and videoOpts_.

Referenced by encodeAudio(), and flush().

Here is the call graph for this function:

◆ encodeAudio()

int jami::MediaEncoder::encodeAudio ( AudioFrame frame)

Definition at line 462 of file media_encoder.cpp.

References jami::emitSignal(), encode(), jami::MediaStream::isValid(), and videoOpts_.

Here is the call graph for this function:

◆ flush()

int jami::MediaEncoder::flush ( )

Definition at line 560 of file media_encoder.cpp.

References jami::emitSignal(), encode(), and JAMI_ERR.

Referenced by resetStreams().

Here is the call graph for this function:

◆ getAudioCodec()

const std::string & jami::MediaEncoder::getAudioCodec ( ) const
inline

Definition at line 101 of file media_encoder.h.

References audioCodec_.

◆ getHeight()

int jami::MediaEncoder::getHeight ( ) const
inline

Definition at line 96 of file media_encoder.h.

References jami::MediaStream::height, and videoOpts_.

◆ getLastSeqValue()

uint16_t jami::MediaEncoder::getLastSeqValue ( )

Definition at line 152 of file media_encoder.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ getStream()

MediaStream jami::MediaEncoder::getStream ( const std::string &  name,
int  streamIdx = -1 
) const

Definition at line 759 of file media_encoder.cpp.

References jami::emitSignal(), and getStreamCount().

Here is the call graph for this function:

◆ getStreamCount()

unsigned jami::MediaEncoder::getStreamCount ( ) const

Definition at line 753 of file media_encoder.cpp.

References audioOpts_, jami::MediaStream::isValid(), and videoOpts_.

Referenced by getStream().

Here is the call graph for this function:

◆ getVideoCodec()

const std::string & jami::MediaEncoder::getVideoCodec ( ) const
inline

Definition at line 102 of file media_encoder.h.

References videoCodec_.

◆ getWidth()

int jami::MediaEncoder::getWidth ( ) const
inline

Definition at line 95 of file media_encoder.h.

References videoOpts_, and jami::MediaStream::width.

◆ openOutput()

void jami::MediaEncoder::openOutput ( const std::string &  filename,
const std::string &  format = "" 
)

Definition at line 162 of file media_encoder.cpp.

References jami::emitSignal(), jami::libav_utils::getError(), and JAMI_ERR.

Here is the call graph for this function:

◆ print_sdp()

std::string jami::MediaEncoder::print_sdp ( )

Definition at line 573 of file media_encoder.cpp.

References jami::emitSignal(), jami::getline(), and JAMI_DBG.

Here is the call graph for this function:

◆ readConfig()

void jami::MediaEncoder::readConfig ( AVCodecContext encoderCtx)
protected

Definition at line 1139 of file media_encoder.cpp.

References jami::emitSignal(), jami::fileutils::get_config_dir(), jami::libav_utils::getError(), JAMI_ERR, and JAMI_WARN.

Here is the call graph for this function:

◆ resetStreams()

void jami::MediaEncoder::resetStreams ( int  width,
int  height 
)

Definition at line 1340 of file media_encoder.cpp.

References jami::emitSignal(), flush(), jami::MediaStream::height, videoOpts_, and jami::MediaStream::width.

Here is the call graph for this function:

◆ send()

bool jami::MediaEncoder::send ( AVPacket packet,
int  streamIdx = -1 
)

Definition at line 530 of file media_encoder.cpp.

References jami::emitSignal(), jami::libav_utils::getError(), JAMI_ERR, and videoCodec_.

Referenced by encode().

Here is the call graph for this function:

◆ setBitrate()

int jami::MediaEncoder::setBitrate ( uint64_t  br)

Definition at line 855 of file media_encoder.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ setInitSeqVal()

void jami::MediaEncoder::setInitSeqVal ( uint16_t  seqVal)

Definition at line 144 of file media_encoder.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ setIOContext()

void jami::MediaEncoder::setIOContext ( AVIOContext ioctx)
inline

Definition at line 75 of file media_encoder.h.

References jami::emitSignal().

Here is the call graph for this function:

◆ setMetadata()

void jami::MediaEncoder::setMetadata ( const std::string &  title,
const std::string &  description 
)

Definition at line 135 of file media_encoder.cpp.

References jami::emitSignal(), and jami::libav_utils::setDictValue().

Here is the call graph for this function:

◆ setOptions() [1/2]

void jami::MediaEncoder::setOptions ( const MediaDescription args)

Definition at line 115 of file media_encoder.cpp.

References jami::emitSignal(), jami::libav_utils::getError(), JAMI_ERR, options_, and jami::libav_utils::setDictValue().

Here is the call graph for this function:

◆ setOptions() [2/2]

◆ setPacketLoss()

int jami::MediaEncoder::setPacketLoss ( uint64_t  pl)

Definition at line 889 of file media_encoder.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ testH265Accel()

std::string jami::MediaEncoder::testH265Accel ( )
static

Member Data Documentation

◆ audioCodec_

std::string jami::MediaEncoder::audioCodec_
protected

Definition at line 178 of file media_encoder.h.

Referenced by addStream(), and getAudioCodec().

◆ audioOpts_

MediaStream jami::MediaEncoder::audioOpts_
protected

Definition at line 176 of file media_encoder.h.

Referenced by addStream(), getStreamCount(), and setOptions().

◆ options_

AVDictionary* jami::MediaEncoder::options_ = nullptr
protected

Definition at line 174 of file media_encoder.h.

Referenced by setOptions(), and ~MediaEncoder().

◆ videoCodec_

std::string jami::MediaEncoder::videoCodec_
protected

Definition at line 177 of file media_encoder.h.

Referenced by addStream(), encode(), getVideoCodec(), and send().

◆ videoOpts_

MediaStream jami::MediaEncoder::videoOpts_
protected

The documentation for this class was generated from the following files: