libpromeki 1.0.0-alpha
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
mediaioallocator.h
Go to the documentation of this file.
1
8#pragma once
9
10
11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
13#include <cstddef>
14#include <promeki/namespace.h>
18
19PROMEKI_NAMESPACE_BEGIN
20
60class MediaIOAllocator : public BufferAllocator {
61 public:
62 PROMEKI_SHARED_DERIVED(MediaIOAllocator)
63
64
65 using Ptr = SharedPtr<MediaIOAllocator, /*CopyOnWrite=*/false>;
66
67 MediaIOAllocator() = default;
68 ~MediaIOAllocator() override = default;
69
70 String name() const override;
71 Buffer allocateVideoPlane(const ImageDesc &desc, int planeIndex) const override;
72 Buffer allocateAudioChunk(const AudioDesc &desc, size_t samples) const override;
73 Buffer allocateBytes(size_t bytes, size_t align = 0) const override;
74
87 virtual UncompressedVideoPayload::Ptr allocateVideoPayload(const ImageDesc &desc) const;
88
99 virtual PcmAudioPayload::Ptr allocateAudioPayload(const AudioDesc &desc, size_t samples) const;
100
109 static Ptr defaultAllocator();
110};
111
112PROMEKI_NAMESPACE_END
113
114#endif // PROMEKI_ENABLE_PROAV