Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
realtime_stretch_renderer.hpp
Go to the documentation of this file.
1#pragma once
2
6
7#include <cstdint>
8#include <memory>
9
10namespace pulp::playback {
11
12class PlaybackProgram;
13class TrackProgram;
15
27
32 public:
39
40 RealtimeStretchStateBankAdmission prepare(const PlaybackProgram& program, double sample_rate,
41 std::uint32_t maximum_block_frames,
42 std::uint32_t output_channels,
43 const AudioRendererLimits& limits);
44
46 const TrackProgram& track,
47 const TransportSnapshot& transport,
48 audio::BufferView<float> output) const noexcept;
49
51 const TrackProgram& track,
52 const TrackMixerProgram& mixer,
53 const TransportSnapshot& transport,
54 audio::BufferView<float> nonstretch_output) noexcept;
55
56 std::uint32_t latency_samples() const noexcept;
57 std::uint64_t reserved_runtime_bytes() const noexcept;
58 bool track_uses_realtime_stretch(timeline::ItemId track_id) const noexcept;
59 void reset() noexcept;
62
63 private:
64 struct Impl;
65 std::unique_ptr<Impl> impl_;
66};
67
68} // namespace pulp::playback
Definition program.hpp:290
bool track_uses_realtime_stretch(timeline::ItemId track_id) const noexcept
std::uint32_t latency_samples() const noexcept
RealtimeStretchRenderCode process_track(const PlaybackProgram &program, const TrackProgram &track, const TrackMixerProgram &mixer, const TransportSnapshot &transport, audio::BufferView< float > nonstretch_output) noexcept
std::uint64_t reserved_runtime_bytes() const noexcept
RealtimeStretchProgramRuntime(RealtimeStretchProgramRuntime &&) noexcept
RealtimeStretchStateBankAdmission prepare(const PlaybackProgram &program, double sample_rate, std::uint32_t maximum_block_frames, std::uint32_t output_channels, const AudioRendererLimits &limits)
RealtimeStretchRenderCode preflight_track(const PlaybackProgram &program, const TrackProgram &track, const TransportSnapshot &transport, audio::BufferView< float > output) const noexcept
Definition program.hpp:179
Definition analyzer_provider.hpp:12
Definition audio_renderer.hpp:20
@ StalePublication
Definition program_wire.hpp:874
@ Rendered
Definition audio_renderer.hpp:215
RealtimeStretchRenderCode
Definition realtime_stretch_renderer.hpp:16
@ Backpressure
Definition realtime_stretch_renderer.hpp:24
@ Underflow
Definition realtime_stretch_renderer.hpp:25
@ GapIdentityChanged
Definition realtime_stretch_renderer.hpp:19
@ UnsupportedScrubbing
Definition realtime_stretch_renderer.hpp:22
@ NotRequired
Definition realtime_stretch_renderer.hpp:17
@ ImpossibleRatio
Definition realtime_stretch_renderer.hpp:23
@ StateRequired
Definition realtime_stretch_renderer.hpp:20
Definition program_compiler.hpp:18
STL namespace.
Shared compile and RT ceilings.
Definition audio_renderer_limits.hpp:10
Definition realtime_stretch_state_bank.hpp:38
The compiled form of a track's own level and stereo placement.
Definition track_mixer_program.hpp:28
Definition transport.hpp:71