]> git.sesse.net Git - casparcg/blob - core/frame/frame_factory.h
2.0.0.2:
[casparcg] / core / frame / frame_factory.h
1 #pragma once\r
2 \r
3 #include "gpu_frame.h"\r
4 #include "frame_format.h"\r
5 \r
6 #include <memory>\r
7 #include <array>\r
8 \r
9 namespace caspar { namespace core { \r
10         \r
11 struct frame_factory\r
12 {\r
13         virtual ~frame_factory(){}\r
14         virtual void release_frames(void* tag) = 0;\r
15         virtual gpu_frame_ptr create_frame(size_t width, size_t height, void* tag) = 0;\r
16         virtual gpu_frame_ptr create_frame(const planar_frame_dimension& data_size, void* tag) = 0;\r
17         gpu_frame_ptr create_frame(const frame_format_desc format_desc, void* tag)\r
18         {\r
19                 return create_frame(format_desc.width, format_desc.height, tag);\r
20         }\r
21 };\r
22 \r
23 typedef std::shared_ptr<frame_factory> frame_factory_ptr;\r
24 \r
25 }}