64#define MOD_NAME "[vrxtx] "
71 m_rxtx_mode(
params.at(
"rxtx_mode").i),
74 m_thread_id(), m_poisoned(false), m_joined(true) {
89 throw string(
"Error initializing compression.");
96 pthread_mutex_init(&
m_lock, NULL);
130 (
void *)
this) != 0) {
131 throw string(
"Unable to create sender thread!\n");
149 return vri->long_name;
182 memset(&saved_vid_desc, 0,
sizeof(saved_vid_desc));
187 shared_ptr<video_frame> tx_frame;
220 printf(
"Available TX protocols:\n");
229 MSG(INFO,
"video RXTX not h264_rtp, not setting audio...\n");
struct video_frame * frame
void export_video(struct exporter *s, struct video_frame *frame)
void module_init_default(struct module *module_data)
void module_register(struct module *module_data, struct module *parent)
void module_done(struct module *module_data)
shared_ptr< video_frame > compress_pop(struct compress_state *proxy)
void compress_frame(struct compress_state *proxy, shared_ptr< video_frame > frame)
int compress_init(struct module *parent, const char *config_string, struct compress_state **state)
This function initializes video compression.
void compress_done(struct compress_state *proxy)
Video compression cleanup function.
void register_should_exit_callback(struct module *mod, void(*callback)(void *), void *udata)
void unregister_should_exit_callback(struct module *mod, void(*callback)(void *), void *udata)
void list_modules(enum library_class cls, int abi_version, bool full)
const void * load_library(const char *name, enum library_class cls, int abi_version)
@ LIBRARY_CLASS_VIDEO_RXTX
void free_message(struct message *msg, struct response *r)
struct message * check_message(struct module *mod)
struct exporter * exporter
struct video_rxtx *(* create)(std::map< std::string, param_u > const ¶ms)
static void * sender_thread(void *args)
struct compress_state * m_compression
unsigned long long int m_frames_sent
struct module m_sender_mod
static video_rxtx * create(std::string const &name, std::map< std::string, param_u > const &)
virtual struct response * process_sender_message(struct msg_sender *)
struct module m_receiver_mod
void check_sender_messages()
void send(std::shared_ptr< struct video_frame >)
static void should_exit(void *state)
virtual void send_frame(std::shared_ptr< video_frame >) noexcept=0
video_rxtx(std::map< std::string, param_u > const &)
virtual void set_audio_spec(const struct audio_desc *desc, int audio_rx_port, int audio_tx_port, bool ipv6)
static void list(bool full)
static const char * get_long_name(std::string const &short_name)
struct common_opts m_common
void set_thread_name(const char *name)
This is an umbrella header for video functions.
API for video compress drivers.
API for video decompress drivers.
#define VIDEO_RXTX_ABI_VERSION