UltraGrid
UltraGrid Low-Latency High-Resolution Transmission System
Loading...
Searching...
No Matches
linear_mix_algo< source_t, intermediate_t > Class Template Reference
Inheritance diagram for linear_mix_algo< source_t, intermediate_t >:
Inheritance graph
Collaboration diagram for linear_mix_algo< source_t, intermediate_t >:
Collaboration graph

Public Member Functions

intermediate_t normalize (intermediate_t sample) override
 
- Public Member Functions inherited from generic_mix_algo< source_t, intermediate_t >
virtual ~generic_mix_algo ()
 
virtual intermediate_t add_to_mix (intermediate_t dst, source_t sample)
 
virtual intermediate_t get_mixed_without_source_sample (intermediate_t mix, source_t source_sample)
 

Detailed Description

template<typename source_t, typename intermediate_t>
class linear_mix_algo< source_t, intermediate_t >

In this mixer, no normalization takes place. After mixing and substracting each participant signal, values are clamped (there is no point doing it prior that - non-normalized mixed value can be out-of-bounds while resulting value with substracted with substracted source may be ok.

Definition at line 195 of file mixer.cpp.

Member Function Documentation

◆ normalize()

template<typename source_t , typename intermediate_t >
intermediate_t linear_mix_algo< source_t, intermediate_t >::normalize ( intermediate_t sample)
inlineoverridevirtual

Implements generic_mix_algo< source_t, intermediate_t >.

Definition at line 197 of file mixer.cpp.

197 {
198 // clamp the value since linear mixer doesn't normalize values
199 return min<intermediate_t>(max<intermediate_t>(sample, numeric_limits<source_t>::min()), numeric_limits<source_t>::max());
200 }
#define min(a, b)
Definition rtp.c:99

References min.


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