40#include <condition_variable>
67using std::condition_variable;
68using std::condition_variable;
73using std::unique_lock;
121 unique_lock<mutex> l(
lock);
123 fprintf(stderr,
"Hd-rum-decompress max queue size (%d) reached!\n",
MAX_QUEUE_SIZE);
139 (
char *) buf,
count);
145 bool should_exit =
false;
146 while (!should_exit) {
147 unique_lock<mutex> l(
lock);
180 int force_ip_version = 0;
193 snprintf(cfg,
sizeof cfg,
"%p", s);
197 snprintf(cfg,
sizeof cfg,
"pipe:%p", s);
201 snprintf(cfg,
sizeof cfg,
"pipe:%p#%s", s, conf.
arg);
206 assert(ret == 0 &&
"Unable to initialize auxiliary display");
208 map<string, param_u>
params;
212 params[
"exporter"].ptr = NULL;
213 params[
"compression"].str =
"none";
218 params[
"receiver"].str =
"localhost";
222 params[
"fec"].str =
"none";
224 params[
"video_delay"].vptr = 0;
242 }
catch (
string const &s) {
256 unique_lock<mutex> l(s->
lock);
struct video_frame * frame
int void(** deleter)(void *))
void vf_free(struct video_frame *buf)
Frees video_frame structure.
This file contains definition of some common audio types.
#define AUDIO_FRAME_DISPOSE(frame)
void capture_filter_destroy(struct capture_filter *state)
struct video_frame * capture_filter(struct capture_filter *state, struct video_frame *frame)
int capture_filter_init(struct module *parent, const char *cfg, struct capture_filter **state)
struct rtp * m_network_device
void log_msg(int level, const char *format,...)
#define LOG_LEVEL_ERROR
general errors
#define LOG_LEVEL_WARNING
less severe errors
bool display_put_frame(struct display *d, struct video_frame *frame, long long timeout_ns)
Puts filled video frame. After calling this function, video frame cannot be used.
void display_run_new_thread(struct display *d)
void display_done(struct display *d)
This function performs cleanup after done.
void display_join(struct display *d)
int initialize_video_display(struct module *parent, const char *requested_display, const char *fmt, unsigned int flags, const char *postprocess, struct display **out)
Initializes video display.
void * hd_rum_decompress_init(struct module *parent, struct hd_rum_output_conf conf, const char *capture_filter, struct state_recompress *recompress)
ssize_t hd_rum_decompress_write(void *state, void *buf, size_t count)
void hd_rum_decompress_done(void *state)
static constexpr int MAX_QUEUE_SIZE
void recompress_process_async(state_recompress *s, std::shared_ptr< video_frame > frame)
static struct @19 params[100]
#define PROFILE_DETAIL(name)
int rtp_send_raw_rtp_data(struct rtp *session, char *buffer, int buffer_len)
struct used to comunicate with audio capture/playback device
This struct represents initialized video display state.
struct control_state * control
struct capture_filter * capture_filter_state
virtual ~state_transcoder_decompress()
condition_variable frame_consumed_cv
void frame_arrived(struct video_frame *f, struct audio_frame *a)
ultragrid_rtp_video_rxtx * video_rxtx
std::queue< std::shared_ptr< video_frame > > received_frame
struct state_recompress * recompress
condition_variable have_frame_cv
struct common_opts common
void(* dispose)(struct video_frame *)
Struct video_frame represents a video frame and contains video description.
struct video_frame_callbacks callbacks
static video_rxtx * create(std::string const &name, std::map< std::string, param_u > const &)
static void * receiver_thread(void *arg)
static time_ns_t get_time_in_ns()
@ VIDEO_NORMAL
normal video (one tile)
This is an umbrella header for video functions.