UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
state_video_decoder Struct Reference

Decoder state. More...

Collaboration diagram for state_video_decoder:
Collaboration graph

Public Member Functions

 state_video_decoder (struct module *parent)
 
 ~state_video_decoder ()
 

Public Attributes

bool accepts_corrupted_frame = false
 whether we should pass corrupted frame to decompress
 
bool buffer_swapped = true
 
condition_variable buffer_swapped_cv
 condition variable associated with buffer_swapped
 
change_il_t change_il = NULL
 function to change interlacing, if needed. Otherwise NULL.
 
vector< void * > change_il_state
 
struct control_state * control = {}
 
const struct openssl_decrypt_info * dec_funcs = NULL
 decrypt state
 
enum decoder_type_t decoder_type = {}
 how will the video data be decoded
 
synchronized_queue< unique_ptr< frame_msg >, 1 > decompress_queue
 
vector< struct state_decompress * > decompress_state
 state of the decompress (for every substream)
 
thread decompress_thread_id
 
struct openssl_decrypt * decrypt = NULL
 decrypt state
 
struct display * display = NULL
 
struct video_desc display_desc = {}
 description of the mode that display is currently configured to
 
synchronized_queue< unique_ptr< frame_msg >, 1 > fec_queue
 
thread fec_thread_id
 
struct video_frame * frame = NULL
 
struct line_decoder * line_decoder = NULL
 is neeeded, use this structure
 
mutex lock
 
unsigned int max_substreams = 0
 maximal number of expected substreams
 
bool merged_fb = false
 flag if the display device driver requires tiled video or not
 
struct module mod
 
synchronized_queue< main_msg_reconfigure *, -1 > msg_queue
 
codec_t out_codec = VIDEO_CODEC_NONE
 
int pitch = 0
 
struct pixfmt_desc received_int_desc = {}
 compression int desc
 
struct video_desc received_vid_desc = {}
 description of the network video
 
timed_message< LOG_LEVEL_WARNING > slow_msg
 shows warning ony in certain interval
 
struct reported_statistics_cumul stats = {}
 stats to be reported through control socket
 
enum video_mode video_mode = {}
 video mode set for this decoder
 
vector< codec_t > native_codecs
 list of display native codecs
 
enum interlacing_t * disp_supported_il = NULL
 display supported interlacing mode
 
size_t disp_supported_il_cnt = 0
 count of disp_supported_il
 

Detailed Description

Decoder state.

Definition at line 335 of file video_decoders.cpp.

Constructor & Destructor Documentation

◆ state_video_decoder()

state_video_decoder::state_video_decoder ( struct module * parent)
inline

Definition at line 337 of file video_decoders.cpp.

337 {
340 mod.priv_data = this;
343 control = (struct control_state *) get_module(get_root_module(parent), "control");
344 }
void module_init_default(struct module *module_data)
Definition module.c:48
void module_register(struct module *module_data, struct module *parent)
Definition module.c:82
struct module * get_module(struct module *root, const char *const_path)
Definition module.c:264
struct module * get_root_module(struct module *node)
Definition module.c:203
@ MODULE_CLASS_DECODER
Definition module.h:95
const char * parent
Definition settings.cpp:198
enum module_class cls
Definition module.h:115
void * priv_data
Definition module.h:126
notify_t new_message
if set, notifies module that new message is in queue, receiver lock is hold during the call
Definition module.h:119
struct control_state * control
static void decoder_process_message(struct module *)

References module::cls, control, decoder_process_message(), get_module(), get_root_module(), mod, MODULE_CLASS_DECODER, module_init_default(), module_register(), module::new_message, parent, and module::priv_data.

Referenced by video_decoder_init().

Here is the call graph for this function:

◆ ~state_video_decoder()

state_video_decoder::~state_video_decoder ( )
inline

Definition at line 345 of file video_decoders.cpp.

345 {
347 }
void module_done(struct module *module_data)
Definition module.c:93

References mod, and module_done().

Here is the call graph for this function:

Member Data Documentation

◆ accepts_corrupted_frame

bool state_video_decoder::accepts_corrupted_frame = false

whether we should pass corrupted frame to decompress

Definition at line 376 of file video_decoders.cpp.

Referenced by fec_thread(), and reconfigure_decoder().

◆ buffer_swapped

bool state_video_decoder::buffer_swapped = true

variable indicating that display buffer has been processed and we can write to a new one

Definition at line 377 of file video_decoders.cpp.

Referenced by decode_video_frame(), decompress_thread(), fec_thread(), and wait_for_framebuffer_swap().

◆ buffer_swapped_cv

condition_variable state_video_decoder::buffer_swapped_cv

condition variable associated with buffer_swapped

Definition at line 379 of file video_decoders.cpp.

Referenced by decompress_thread(), and wait_for_framebuffer_swap().

◆ change_il

change_il_t state_video_decoder::change_il = NULL

function to change interlacing, if needed. Otherwise NULL.

Definition at line 367 of file video_decoders.cpp.

Referenced by decompress_thread(), and reconfigure_decoder().

◆ change_il_state

vector<void *> state_video_decoder::change_il_state

Definition at line 368 of file video_decoders.cpp.

Referenced by cleanup(), decompress_thread(), and reconfigure_decoder().

◆ control

struct control_state* state_video_decoder::control = {}

Definition at line 349 of file video_decoders.cpp.

349{};

Referenced by state_video_decoder(), decode_video_frame(), and video_decoder_stop_threads().

◆ dec_funcs

const struct openssl_decrypt_info* state_video_decoder::dec_funcs = NULL

decrypt state

Definition at line 395 of file video_decoders.cpp.

Referenced by decode_video_frame(), video_decoder_destroy(), and video_decoder_init().

◆ decoder_type

enum decoder_type_t state_video_decoder::decoder_type = {}

how will the video data be decoded

Definition at line 372 of file video_decoders.cpp.

372{};

Referenced by choose_codec_and_decoder(), cleanup(), decode_video_frame(), decompress_thread(), fec_thread(), and reconfigure_decoder().

◆ decompress_queue

synchronized_queue<unique_ptr<frame_msg>, 1> state_video_decoder::decompress_queue

Definition at line 381 of file video_decoders.cpp.

Referenced by decompress_thread(), and fec_thread().

◆ decompress_state

vector<struct state_decompress *> state_video_decoder::decompress_state

state of the decompress (for every substream)

Definition at line 375 of file video_decoders.cpp.

Referenced by choose_codec_and_decoder(), cleanup(), decompress_worker(), and reconfigure_decoder().

◆ decompress_thread_id

thread state_video_decoder::decompress_thread_id

Definition at line 351 of file video_decoders.cpp.

Referenced by video_decoder_start_threads(), and video_decoder_stop_threads().

◆ decrypt

struct openssl_decrypt* state_video_decoder::decrypt = NULL

decrypt state

Definition at line 396 of file video_decoders.cpp.

Referenced by decode_video_frame(), video_decoder_destroy(), and video_decoder_init().

◆ disp_supported_il

enum interlacing_t* state_video_decoder::disp_supported_il = NULL

display supported interlacing mode

Definition at line 362 of file video_decoders.cpp.

Referenced by reconfigure_decoder(), video_decoder_destroy(), and video_decoder_register_display().

◆ disp_supported_il_cnt

size_t state_video_decoder::disp_supported_il_cnt = 0

count of disp_supported_il

Definition at line 363 of file video_decoders.cpp.

Referenced by reconfigure_decoder(), and video_decoder_register_display().

◆ display

◆ display_desc

struct video_desc state_video_decoder::display_desc = {}

description of the mode that display is currently configured to

Definition at line 355 of file video_decoders.cpp.

355{};

Referenced by decode_video_frame(), reconfigure_decoder(), and video_decoder_remove_display().

◆ fec_queue

synchronized_queue<unique_ptr<frame_msg>, 1> state_video_decoder::fec_queue

Definition at line 386 of file video_decoders.cpp.

Referenced by decode_video_frame(), fec_thread(), and video_decoder_stop_threads().

◆ fec_thread_id

thread state_video_decoder::fec_thread_id

Definition at line 352 of file video_decoders.cpp.

Referenced by video_decoder_start_threads(), and video_decoder_stop_threads().

◆ frame

struct video_frame* state_video_decoder::frame = NULL

◆ line_decoder

struct line_decoder* state_video_decoder::line_decoder = NULL

is neeeded, use this structure

if the video is uncompressed and only pixelformat change

Definition at line 373 of file video_decoders.cpp.

Referenced by cleanup(), decode_video_frame(), fec_thread(), and reconfigure_decoder().

◆ lock

mutex state_video_decoder::lock

◆ max_substreams

unsigned int state_video_decoder::max_substreams = 0

maximal number of expected substreams

Definition at line 366 of file video_decoders.cpp.

Referenced by choose_codec_and_decoder(), decode_video_frame(), decoder_set_video_mode(), fec_thread(), and reconfigure_decoder().

◆ merged_fb

bool state_video_decoder::merged_fb = false

flag if the display device driver requires tiled video or not

Definition at line 389 of file video_decoders.cpp.

Referenced by decode_video_frame(), decompress_thread(), fec_thread(), and reconfigure_decoder().

◆ mod

struct module state_video_decoder::mod

◆ msg_queue

synchronized_queue<main_msg_reconfigure *, -1> state_video_decoder::msg_queue

Definition at line 393 of file video_decoders.cpp.

Referenced by decode_video_frame(), decompress_thread(), and fec_thread().

◆ native_codecs

vector<codec_t> state_video_decoder::native_codecs

list of display native codecs

Definition at line 361 of file video_decoders.cpp.

Referenced by blacklist_current_out_codec(), choose_codec_and_decoder(), reconfigure_decoder(), and video_decoder_register_display().

◆ out_codec

◆ pitch

int state_video_decoder::pitch = 0

Definition at line 384 of file video_decoders.cpp.

Referenced by decompress_thread(), and reconfigure_decoder().

◆ received_int_desc

struct pixfmt_desc state_video_decoder::received_int_desc = {}

compression int desc

Definition at line 354 of file video_decoders.cpp.

354{};

Referenced by reconfigure_helper(), and reconfigure_if_needed().

◆ received_vid_desc

struct video_desc state_video_decoder::received_vid_desc = {}

◆ slow_msg

timed_message<LOG_LEVEL_WARNING> state_video_decoder::slow_msg

shows warning ony in certain interval

Definition at line 391 of file video_decoders.cpp.

Referenced by decode_video_frame().

◆ stats

struct reported_statistics_cumul state_video_decoder::stats = {}

stats to be reported through control socket

Definition at line 398 of file video_decoders.cpp.

398{};

Referenced by decode_video_frame(), and video_decoder_stop_threads().

◆ video_mode

enum video_mode state_video_decoder::video_mode = {}

video mode set for this decoder

Definition at line 388 of file video_decoders.cpp.

388{} ;

Referenced by choose_codec_and_decoder(), decode_video_frame(), decoder_set_video_mode(), decompress_thread(), fec_thread(), and reconfigure_decoder().


The documentation for this struct was generated from the following file: