class FakeCapture : public CaptureInterface
{
public:
- FakeCapture(unsigned width, unsigned height, unsigned fps, unsigned audio_frequency, int card_index);
+ FakeCapture(unsigned width, unsigned height, unsigned fps, unsigned audio_sample_frequency, int card_index, bool has_audio = false);
~FakeCapture();
// CaptureInterface.
private:
void producer_thread_func();
+ void make_tone(int32_t *out, unsigned num_stereo_samples);
- unsigned width, height, fps, audio_frequency;
+ unsigned width, height, fps, audio_sample_frequency;
uint8_t y, cb, cr;
+ // sin(2 * pi * f / F) and similar for cos. Used for fast sine generation.
+ // Zero when no audio.
+ float audio_sin = 0.0f, audio_cos = 0.0f;
+ float audio_real = 0.0f, audio_imag = 0.0f; // Current state of the audio phaser.
+ float audio_ref_level;
+
bool has_dequeue_callbacks = false;
std::function<void()> dequeue_init_callback = nullptr;
std::function<void()> dequeue_cleanup_callback = nullptr;