Ring Daemon 16.0.0
Loading...
Searching...
No Matches
jami::video Namespace Reference

Classes

struct  android_fmt
 
class  CaptureGraphInterfaces
 
class  HardwareAccel
 Provides an abstraction layer to the hardware acceleration APIs in FFmpeg. More...
 
struct  HardwareAPI
 
struct  ios_fmt
 
struct  RTCPInfo
 
class  SinkClient
 
struct  SourceInfo
 
struct  StreamInfo
 
struct  VideoBitrateInfo
 
class  VideoDevice
 
class  VideoDeviceImpl
 
class  VideoDeviceMonitor
 
class  VideoDeviceMonitorImpl
 
struct  VideoFrameActiveWriter
 
struct  VideoFramePassiveReader
 
class  VideoGenerator
 
class  VideoInput
 
class  VideoMixer
 
class  VideoReceiveThread
 
class  VideoRtpSession
 
class  VideoScaler
 
class  VideoSender
 
struct  VideoSettings
 
class  VideoV4l2Channel
 
class  VideoV4l2Rate
 
class  VideoV4l2Size
 

Typedefs

using FrameRate = rational< double >
 
using OnSourcesUpdatedCb = std::function< void(std::vector< SourceInfo > &&)>
 
using VideoSize = std::pair< unsigned, unsigned >
 

Enumerations

enum class  DeviceState { NOT_TESTED , USABLE , NOT_USABLE }
 
enum class  Layout { GRID , ONE_BIG_WITH_SMALL , ONE_BIG }
 
enum class  VideoInputMode { ManagedByClient , ManagedByDaemon , Undefined }
 

Functions

static std::string extractString (const std::map< std::string, std::string > &settings, const std::string &key)
 
std::string getDeviceString (struct udev_device *udev_device)
 
std::string getDeviceUniqueName (PDEV_BROADCAST_DEVICEINTERFACE_A pbdi)
 
static AVPixelFormat getFormatCb (AVCodecContext *codecCtx, const AVPixelFormat *formats)
 
std::unique_ptr< MediaFiltergetTransposeFilter (int rotation, std::string inputName, int width, int height, int format, bool rescale)
 
static void giveUniqueName (VideoDevice &dev, const vector< VideoDevice > &devices)
 
static int is_v4l2 (struct udev_device *dev)
 
static void notify ()
 
bool operator== (VideoV4l2Size &a, VideoV4l2Size &b)
 
static unsigned int pixelformat_score (unsigned pixelformat)
 
bool registerDeviceInterfaceToHwnd (HWND hWnd, HDEVNOTIFY *hDeviceNotify)
 
static constexpr unsigned round2pow (unsigned i, unsigned n)
 

Variables

static const std::array< android_fmt, 2 > and_formats
 
static std::list< HardwareAPIapiListDec
 
static std::list< HardwareAPIapiListEnc
 
static constexpr unsigned default_grab_height = 480
 
static constexpr unsigned default_grab_width = 640
 
constexpr auto DELAY_AFTER_REMB_DEC = std::chrono::milliseconds(500)
 
constexpr auto DELAY_AFTER_REMB_INC = std::chrono::seconds(1)
 
constexpr auto DELAY_AFTER_RESTART = std::chrono::milliseconds(1000)
 
static constexpr const char DEVICE_DESKTOP [] = "desktop"
 
constexpr auto EXPIRY_TIME_RTCP = std::chrono::seconds(2)
 
const constexpr char FILTER_INPUT_NAME [] = "in"
 
static constexpr const auto FRAME_DURATION = std::chrono::duration<double>(1. / MIXER_FRAMERATE)
 
constexpr GUID guidCamera = {0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44}
 
static const std::array< ios_fmt, 4 > ios_formats
 
static constexpr unsigned MAX_REMB_DEC {1}
 
static constexpr const auto MIXER_FRAMERATE = 30
 
static const unsigned pixelformats_supported []
 

Typedef Documentation

◆ FrameRate

◆ OnSourcesUpdatedCb

using jami::video::OnSourcesUpdatedCb = typedef std::function<void(std::vector<SourceInfo>&&)>

Definition at line 52 of file video_mixer.h.

◆ VideoSize

Definition at line 40 of file video_device.h.

Enumeration Type Documentation

◆ DeviceState

Enumerator
NOT_TESTED 
USABLE 
NOT_USABLE 

Definition at line 35 of file accel.h.

◆ Layout

Enumerator
GRID 
ONE_BIG_WITH_SMALL 
ONE_BIG 

Definition at line 54 of file video_mixer.h.

◆ VideoInputMode

Enumerator
ManagedByClient 
ManagedByDaemon 
Undefined 

Definition at line 48 of file video_input.h.

Function Documentation

◆ extractString()

static std::string jami::video::extractString ( const std::map< std::string, std::string > &  settings,
const std::string &  key 
)
static

Definition at line 73 of file video_base.cpp.

References jami::emitSignal().

Referenced by jami::video::VideoSettings::VideoSettings().

Here is the call graph for this function:

◆ getDeviceString()

std::string jami::video::getDeviceString ( struct udev_device udev_device)

Definition at line 81 of file v4l2/video_device_monitor_impl.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ getDeviceUniqueName()

std::string jami::video::getDeviceUniqueName ( PDEV_BROADCAST_DEVICEINTERFACE_A  pbdi)

Definition at line 85 of file winvideo/video_device_monitor_impl.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ getFormatCb()

static AVPixelFormat jami::video::getFormatCb ( AVCodecContext codecCtx,
const AVPixelFormat formats 
)
static

Definition at line 143 of file accel.cpp.

References jami::emitSignal(), jami::video::HardwareAccel::getName(), and JAMI_DBG.

Referenced by jami::video::HardwareAccel::setDetails().

Here is the call graph for this function:

◆ getTransposeFilter()

std::unique_ptr< MediaFilter > jami::video::getTransposeFilter ( int  rotation,
std::string  inputName,
int  width,
int  height,
int  format,
bool  rescale 
)

Definition at line 25 of file filter_transpose.cpp.

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

Referenced by jami::MediaRecorder::StreamObserver::update().

Here is the call graph for this function:

◆ giveUniqueName()

static void jami::video::giveUniqueName ( VideoDevice dev,
const vector< VideoDevice > &  devices 
)
static

Definition at line 163 of file video_device_monitor.cpp.

References jami::emitSignal().

Referenced by jami::video::VideoDeviceMonitor::addDevice().

Here is the call graph for this function:

◆ is_v4l2()

static int jami::video::is_v4l2 ( struct udev_device dev)
static

Definition at line 89 of file v4l2/video_device_monitor_impl.cpp.

References jami::emitSignal(), and jami::swarm_protocol::version.

Here is the call graph for this function:

◆ notify()

◆ operator==()

bool jami::video::operator== ( VideoV4l2Size a,
VideoV4l2Size b 
)

Definition at line 87 of file v4l2/video_device_impl.cpp.

References jami::emitSignal().

Here is the call graph for this function:

◆ pixelformat_score()

static unsigned int jami::video::pixelformat_score ( unsigned  pixelformat)
static

Definition at line 229 of file v4l2/video_device_impl.cpp.

References jami::emitSignal(), and pixelformats_supported.

Here is the call graph for this function:

◆ registerDeviceInterfaceToHwnd()

bool jami::video::registerDeviceInterfaceToHwnd ( HWND  hWnd,
HDEVNOTIFY hDeviceNotify 
)

Definition at line 100 of file winvideo/video_device_monitor_impl.cpp.

References jami::emitSignal(), and guidCamera.

Here is the call graph for this function:

◆ round2pow()

static constexpr unsigned jami::video::round2pow ( unsigned  i,
unsigned  n 
)
staticconstexpr

Definition at line 417 of file video_input.cpp.

References jami::emitSignal().

Here is the call graph for this function:

Variable Documentation

◆ and_formats

const std::array<android_fmt, 2> jami::video::and_formats
static
Initial value:
{
android_fmt {17, "NV21", AV_PIX_FMT_NV21},
android_fmt {842094169, "YUV420", AV_PIX_FMT_YUV420P},
}

Definition at line 45 of file androidvideo/video_device_impl.cpp.

◆ apiListDec

std::list<HardwareAPI> jami::video::apiListDec
static

Definition at line 45 of file accel.cpp.

Referenced by jami::video::HardwareAccel::getCompatibleAccel().

◆ apiListEnc

std::list<HardwareAPI> jami::video::apiListEnc
static

Definition at line 84 of file accel.cpp.

Referenced by jami::video::HardwareAccel::getCompatibleAccel().

◆ default_grab_height

constexpr unsigned jami::video::default_grab_height = 480
staticconstexpr

Definition at line 52 of file video_input.cpp.

◆ default_grab_width

constexpr unsigned jami::video::default_grab_width = 640
staticconstexpr

Definition at line 51 of file video_input.cpp.

◆ DELAY_AFTER_REMB_DEC

constexpr auto jami::video::DELAY_AFTER_REMB_DEC = std::chrono::milliseconds(500)
constexpr

Definition at line 58 of file video_rtp_session.cpp.

◆ DELAY_AFTER_REMB_INC

constexpr auto jami::video::DELAY_AFTER_REMB_INC = std::chrono::seconds(1)
constexpr

Definition at line 57 of file video_rtp_session.cpp.

◆ DELAY_AFTER_RESTART

constexpr auto jami::video::DELAY_AFTER_RESTART = std::chrono::milliseconds(1000)
constexpr

Definition at line 55 of file video_rtp_session.cpp.

◆ DEVICE_DESKTOP

◆ EXPIRY_TIME_RTCP

constexpr auto jami::video::EXPIRY_TIME_RTCP = std::chrono::seconds(2)
constexpr

Definition at line 56 of file video_rtp_session.cpp.

◆ FILTER_INPUT_NAME

const constexpr char jami::video::FILTER_INPUT_NAME[] = "in"
constexpr

Definition at line 58 of file sinkclient.cpp.

◆ FRAME_DURATION

constexpr const auto jami::video::FRAME_DURATION = std::chrono::duration<double>(1. / MIXER_FRAMERATE)
staticconstexpr

Definition at line 78 of file video_mixer.cpp.

◆ guidCamera

constexpr GUID jami::video::guidCamera = {0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44}
constexpr

◆ ios_formats

const std::array<ios_fmt, 4> jami::video::ios_formats
static
Initial value:
{ios_fmt {"RGBA", AV_PIX_FMT_RGBA},
ios_fmt {"BGRA", AV_PIX_FMT_BGRA},
ios_fmt {"YUV420P", AV_PIX_FMT_YUV420P}}

Definition at line 38 of file iosvideo/video_device_impl.cpp.

◆ MAX_REMB_DEC

constexpr unsigned jami::video::MAX_REMB_DEC {1}
staticconstexpr

Definition at line 53 of file video_rtp_session.cpp.

◆ MIXER_FRAMERATE

constexpr const auto jami::video::MIXER_FRAMERATE = 30
staticconstexpr

Definition at line 77 of file video_mixer.cpp.

Referenced by jami::video::VideoMixer::getStream().

◆ pixelformats_supported

const unsigned jami::video::pixelformats_supported[]
static

Definition at line 147 of file v4l2/video_device_impl.cpp.

Referenced by pixelformat_score().