1#![deny(unsafe_code)]
2
3mod audio;
4mod benchmark;
5mod capability;
6mod catalog;
7mod decoder;
8mod frame_processor;
9mod hook;
10mod invocation;
11mod native_frame;
12mod plan;
13mod plugin_reference;
14mod processor;
15mod protocol;
16mod resolver;
17mod scope;
18mod sdk;
19pub mod source_normalizer;
20
21pub use player_plugin_macros::export;
22
23pub use audio::{
24 AudioPitchMode, AudioPlaybackPolicy, AudioProcessorCapabilities, AudioProcessorChain,
25 AudioProcessorError, AudioProcessorOperationStatus, AudioProcessorPluginFactory,
26 AudioProcessorSession, AudioProcessorSessionConfig, AudioProcessorSessionInfo,
27 AudioProcessorSubmitStatus,
28};
29pub use benchmark::{
30 BenchmarkEvent, BenchmarkEventBatch, BenchmarkSink, BenchmarkSinkError, BenchmarkSinkReport,
31 BenchmarkSinkStatus, BenchmarkThresholdViolation, MAX_BENCHMARK_BATCH_EVENTS,
32 MAX_BENCHMARK_THRESHOLD_VIOLATIONS,
33};
34pub use capability::ProcessorCapabilities;
35pub use catalog::{
36 CanonicalPluginArtifactDescriptor, MAX_PLUGIN_ARCHITECTURE_BYTES,
37 MAX_PLUGIN_ARTIFACT_CAPABILITIES, MAX_PLUGIN_ARTIFACT_PATH_BYTES,
38 MAX_PLUGIN_CATALOG_DIAGNOSTICS, MAX_PLUGIN_CATALOG_RECORDS, MAX_PLUGIN_CATALOG_SOURCE_BYTES,
39 MAX_PLUGIN_PROVISIONS, MAX_PLUGIN_REQUIREMENTS, MAX_PLUGIN_RUNTIME_DEPENDENCIES,
40 MAX_PLUGIN_TARGET_BYTES, PLUGIN_CATALOG_MIGRATION_VERSION, PLUGIN_CATALOG_SCHEMA_VERSION,
41 PluginArtifactCapability, PluginArtifactDescriptor, PluginArtifactFormat,
42 PluginArtifactTransport, PluginCatalog, PluginCatalogDiagnostic, PluginCatalogError,
43 PluginCatalogRecord, PluginCatalogSource, PluginProvision, PluginRequirement,
44 PluginResourcePolicy, PluginRuntimeDependency, PluginRuntimeLinkage,
45 validate_plugin_provisions, validate_plugin_requirements,
46};
47pub use decoder::{
48 DecoderBitstreamFormat, DecoderCapabilities, DecoderCodecCapability, DecoderError,
49 DecoderFrameFormat, DecoderMediaKind, DecoderNativeDeviceContext,
50 DecoderNativeDeviceContextKind, DecoderNativeFrame, DecoderNativeFrameMetadata,
51 DecoderNativeFrameReleaseTracking, DecoderNativeHandleKind, DecoderNativeRequirements,
52 DecoderOperationStatus, DecoderPacket, DecoderPacketResult, DecoderPcmFrame,
53 DecoderPcmFrameMetadata, DecoderPcmSampleLayout, DecoderReceiveFrameStatus,
54 DecoderReceiveNativeFrameMetadata, DecoderReceiveNativeFrameOutput,
55 DecoderReceivePcmFrameMetadata, DecoderReceivePcmFrameOutput, DecoderSessionConfig,
56 DecoderSessionInfo, DecoderSessionRequirements, DecoderVisibleRect, NativeDecoderPluginFactory,
57 NativeDecoderSession, normalize_decoder_codec_identifier,
58};
59pub use frame_processor::{
60 FrameProcessorCapabilities, FrameProcessorError, FrameProcessorFrameTimings,
61 FrameProcessorInputFrame, FrameProcessorOperationStatus, FrameProcessorOutputFrame,
62 FrameProcessorPluginFactory, FrameProcessorReceiveFrameMetadata, FrameProcessorReceiveOutput,
63 FrameProcessorReceiveStatus, FrameProcessorSession, FrameProcessorSessionConfig,
64 FrameProcessorSessionInfo, FrameProcessorSessionRequirements, FrameProcessorSubmitFrame,
65 FrameProcessorSubmitResult, FrameProcessorSubmitStatus,
66};
67pub use hook::{
68 PipelineEvent, PipelineEventHook, PipelineEventHookError, PipelineEventHookOutcome,
69};
70pub use invocation::{
71 PluginInvocationPolicy, PluginInvocationPolicyError, PluginInvocationWorkload,
72};
73pub use native_frame::{
74 NativeFrame, NativeFrameColorMetadata, NativeFrameContentLightMetadata,
75 NativeFrameDolbyVisionMetadata, NativeFrameHdrMetadata, NativeFrameLeaseToken,
76 NativeFrameMasteringDisplayMetadata, NativeFrameMetadata, NativeFramePipelineProfile,
77 NativeFrameReleaseTracking, NativeFrameSyncInfo, NativeFrameTransform, NativeHandleKind,
78 VisibleRect,
79};
80pub use plan::{
81 MAX_PLUGIN_PLAN_PROVIDERS, PLUGIN_PLAN_SCHEMA_VERSION, PluginPlan, PluginPlanError,
82 PluginPlanPolicy, PluginPlanProvider,
83};
84pub use plugin_reference::{PluginReference, PluginReferenceError, PluginTransport};
85pub use processor::{
86 AssemblyMode, CompletedContentFormat, CompletedDownloadInfo, CompletedStream,
87 ContentFormatKind, DownloadMetadata, OutputFormat, PostDownloadProcessor, ProcessorError,
88 ProcessorOutput, ProcessorProgress, StreamKind,
89};
90pub use protocol::{
91 MAX_PIPELINE_EVENT_INPUT_BYTES, MAX_PLUGIN_ATTRIBUTE_KEY_BYTES,
92 MAX_PLUGIN_ATTRIBUTE_VALUE_BYTES, MAX_PLUGIN_ATTRIBUTES, MAX_PLUGIN_DIAGNOSTIC_MESSAGE_BYTES,
93 MAX_PLUGIN_DIAGNOSTICS, MAX_PLUGIN_ERROR_MESSAGE_BYTES, MAX_PLUGIN_EVENT_ID_BYTES,
94 MAX_PLUGIN_EVENT_NAME_BYTES, MAX_PLUGIN_MEASUREMENTS, MAX_PLUGIN_PLATFORM_BYTES,
95 MAX_PLUGIN_PROTOCOL_BYTES, MAX_PLUGIN_RESOURCE_IDENTITY_BYTES, MAX_PLUGIN_THREAD_BYTES,
96 MAX_SOURCE_NORMALIZER_PACKET_BYTES, PluginDiagnostic, PluginDiagnosticSeverity,
97 PluginMeasurement, PluginProtocolViolation,
98};
99pub use resolver::{
100 MAX_PLUGIN_RESOLUTION_CONSTRAINTS, MAX_PLUGIN_RESOLUTION_STATES, PluginResolution,
101 PluginResolutionError, PluginResolvedProvider, PluginResolver, PluginResolverPolicy,
102};
103pub use scope::{
104 DEFAULT_PLUGIN_RUNTIME_SHUTDOWN_TIMEOUT, DEFAULT_PLUGIN_SCOPE_CLOSE_TIMEOUT,
105 MAX_PLUGIN_CORRELATION_ID_BYTES, MAX_PLUGIN_RUNTIME_OWNER_REGISTRATIONS,
106 MAX_PLUGIN_RUNTIME_SCOPE_REGISTRATIONS, MAX_PLUGIN_SCOPE_CHILDREN, MAX_PLUGIN_SCOPE_DEPTH,
107 MAX_PLUGIN_SCOPE_OWNERS, MAX_PLUGIN_SCOPE_QUARANTINE_RECORDS, MAX_PLUGIN_SCOPE_REASON_BYTES,
108 PluginActivePlaybackCorrelation, PluginNextPrewarmCorrelation, PluginOwnerDisposalError,
109 PluginOwnerToken, PluginPlaybackAttachment, PluginPlaybackAttachmentToken,
110 PluginPlaybackAuthority, PluginPlaybackError, PluginPlaybackRole,
111 PluginPlaybackTransitionReport, PluginRuntime, PluginScope, PluginScopeCloseReport,
112 PluginScopeError, PluginScopeKind, PluginScopeQuarantine, PluginScopeQuarantineReason,
113 PluginScopeResource, PluginScopeState, PluginSessionCorrelation,
114};
115pub use sdk::{Plugin, PluginBuildError, PluginBuilder, PluginCapability};
116pub use source_normalizer::{
117 SourceNormalizerError, SourceNormalizerNormalizeLevel, SourceNormalizerOperationStatus,
118 SourceNormalizerOutputRoute, SourceNormalizerPacket, SourceNormalizerPacketCapabilities,
119 SourceNormalizerPacketLease, SourceNormalizerPacketMediaKind,
120 SourceNormalizerPacketPluginFactory, SourceNormalizerPacketSeek, SourceNormalizerPacketSession,
121 SourceNormalizerPacketSessionConfig, SourceNormalizerPacketSessionRequirements,
122 SourceNormalizerPacketStreamInfo, SourceNormalizerPacketTrackInfo,
123 SourceNormalizerReadPacketMetadata, SourceNormalizerReadPacketStatus,
124 SourceNormalizerRequiredCapabilities, SourceNormalizerResourceCachePolicy,
125 SourceNormalizerResourceCapabilities, SourceNormalizerResourceInfo,
126 SourceNormalizerResourcePluginFactory, SourceNormalizerResourceSession,
127 SourceNormalizerResourceSessionConfig, SourceNormalizerResourceSessionInfo,
128 SourceNormalizerResourceSessionRequirements, SourceNormalizerResourceSessionState,
129 SourceNormalizerResourceSessionStatus, SourceNormalizerResourceSessionWaitStatus,
130 SourceNormalizerSessionCapabilities, SourceNormalizerSessionRequirements,
131 validate_source_normalizer_plugin_input,
132};
133
134#[doc(hidden)]
135pub mod __private {
136 pub use player_plugin_abi::VesperPluginRoot;
137
138 pub fn export_plugin<R>(factory: fn() -> R) -> *const VesperPluginRoot
139 where
140 R: crate::sdk::PluginFactoryResult,
141 {
142 crate::sdk::export_plugin(factory)
143 }
144}