Pulp
1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
offline_sample_bounce.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
pulp/format/offline_render_host.hpp
>
4
5
#include <cstdint>
6
#include <vector>
7
8
namespace
pulp::format
{
9
12
struct
OfflineSampleBouncePolicy
{
13
std::uint32_t
max_channels
= 0;
14
std::uint64_t
max_frames
= 0;
15
std::uint64_t
max_decoded_bytes
= 0;
16
std::vector<std::uint32_t>
allowed_sample_rates
;
17
};
18
19
enum class
OfflineSampleBounceStatus
: std::uint8_t {
20
ok
,
21
render_failed
,
22
empty_render
,
23
invalid_sample_rate
,
24
channel_budget_exceeded
,
25
frame_budget_exceeded
,
26
byte_budget_exceeded
,
27
sample_rate_not_allowed
,
28
bank_unprepared
,
29
publish_failed
,
30
};
31
32
[[nodiscard]]
const
char
*
offline_sample_bounce_status_name
(
33
OfflineSampleBounceStatus
status)
noexcept
;
34
35
struct
OfflineSampleBounceRequest
{
36
OfflineRenderOptions
render_options
;
37
OfflineSampleBouncePolicy
policy
;
38
std::uint64_t
audio_safe_generation
= 0;
39
};
40
41
struct
OfflineSampleBounceResult
{
42
OfflineSampleBounceStatus
status
=
OfflineSampleBounceStatus::render_failed
;
43
OfflineRenderResult
render
;
44
double
sample_rate
= 0.0;
45
std::uint64_t
decoded_bytes
= 0;
46
47
[[nodiscard]]
bool
ok
() const noexcept {
48
return
status
==
OfflineSampleBounceStatus::ok
;
49
}
50
};
51
55
class
OfflineSampleBounce
{
56
public
:
57
[[nodiscard]]
static
OfflineSampleBounceResult
render_to_buffer
(
58
OfflineRenderHost
&
host
,
59
const
OfflineSampleBounceRequest
& request);
60
};
61
62
}
// namespace pulp::format
pulp::format::OfflineRenderHost
General-purpose offline renderer over a ProcessorFactory.
Definition
offline_render_host.hpp:88
pulp::format::OfflineSampleBounce
Control/background-thread helper over OfflineRenderHost.
Definition
offline_sample_bounce.hpp:55
pulp::format::OfflineSampleBounce::render_to_buffer
static OfflineSampleBounceResult render_to_buffer(OfflineRenderHost &host, const OfflineSampleBounceRequest &request)
pulp::format
What the product grants a device: the quota table indexed by capability tier and live thermal state.
Definition
aax_editor.hpp:31
pulp::format::offline_sample_bounce_status_name
const char * offline_sample_bounce_status_name(OfflineSampleBounceStatus status) noexcept
pulp::format::OfflineSampleBounceStatus
OfflineSampleBounceStatus
Definition
offline_sample_bounce.hpp:19
pulp::format::OfflineSampleBounceStatus::empty_render
@ empty_render
Definition
offline_sample_bounce.hpp:22
pulp::format::OfflineSampleBounceStatus::render_failed
@ render_failed
Definition
offline_sample_bounce.hpp:21
pulp::format::OfflineSampleBounceStatus::byte_budget_exceeded
@ byte_budget_exceeded
Definition
offline_sample_bounce.hpp:26
pulp::format::OfflineSampleBounceStatus::ok
@ ok
Definition
offline_sample_bounce.hpp:20
pulp::format::OfflineSampleBounceStatus::invalid_sample_rate
@ invalid_sample_rate
Definition
offline_sample_bounce.hpp:23
pulp::format::OfflineSampleBounceStatus::publish_failed
@ publish_failed
Definition
offline_sample_bounce.hpp:29
pulp::format::OfflineSampleBounceStatus::bank_unprepared
@ bank_unprepared
Definition
offline_sample_bounce.hpp:28
pulp::format::OfflineSampleBounceStatus::channel_budget_exceeded
@ channel_budget_exceeded
Definition
offline_sample_bounce.hpp:24
pulp::format::OfflineSampleBounceStatus::sample_rate_not_allowed
@ sample_rate_not_allowed
Definition
offline_sample_bounce.hpp:27
pulp::format::OfflineSampleBounceStatus::frame_budget_exceeded
@ frame_budget_exceeded
Definition
offline_sample_bounce.hpp:25
pulp::host
Bounded event contracts shared by host ingress and graph-authored nodes.
Definition
anticipation_eligibility.hpp:9
offline_render_host.hpp
pulp::format::OfflineRenderOptions
Definition
offline_render_host.hpp:40
pulp::format::OfflineRenderResult
Definition
offline_render_host.hpp:74
pulp::format::OfflineSampleBouncePolicy
Offline/control-thread bounce policy for turning a rendered processor span into sampler-owned audio.
Definition
offline_sample_bounce.hpp:12
pulp::format::OfflineSampleBouncePolicy::max_frames
std::uint64_t max_frames
Definition
offline_sample_bounce.hpp:14
pulp::format::OfflineSampleBouncePolicy::max_channels
std::uint32_t max_channels
Definition
offline_sample_bounce.hpp:13
pulp::format::OfflineSampleBouncePolicy::allowed_sample_rates
std::vector< std::uint32_t > allowed_sample_rates
Definition
offline_sample_bounce.hpp:16
pulp::format::OfflineSampleBouncePolicy::max_decoded_bytes
std::uint64_t max_decoded_bytes
Definition
offline_sample_bounce.hpp:15
pulp::format::OfflineSampleBounceRequest
Definition
offline_sample_bounce.hpp:35
pulp::format::OfflineSampleBounceRequest::audio_safe_generation
std::uint64_t audio_safe_generation
Definition
offline_sample_bounce.hpp:38
pulp::format::OfflineSampleBounceRequest::render_options
OfflineRenderOptions render_options
Definition
offline_sample_bounce.hpp:36
pulp::format::OfflineSampleBounceRequest::policy
OfflineSampleBouncePolicy policy
Definition
offline_sample_bounce.hpp:37
pulp::format::OfflineSampleBounceResult
Definition
offline_sample_bounce.hpp:41
pulp::format::OfflineSampleBounceResult::render
OfflineRenderResult render
Definition
offline_sample_bounce.hpp:43
pulp::format::OfflineSampleBounceResult::ok
bool ok() const noexcept
Definition
offline_sample_bounce.hpp:47
pulp::format::OfflineSampleBounceResult::sample_rate
double sample_rate
Definition
offline_sample_bounce.hpp:44
pulp::format::OfflineSampleBounceResult::status
OfflineSampleBounceStatus status
Definition
offline_sample_bounce.hpp:42
pulp::format::OfflineSampleBounceResult::decoded_bytes
std::uint64_t decoded_bytes
Definition
offline_sample_bounce.hpp:45
core
format
include
pulp
format
offline_sample_bounce.hpp
Generated by
1.15.0