]> git.sesse.net Git - casparcg/blob - core/video_channel_context.h
f30799147c047ad7595dd07c0c51f54cb28fa376
[casparcg] / core / video_channel_context.h
1 #pragma once\r
2 \r
3 #include <common/concurrency/executor.h>\r
4 \r
5 #include <core/mixer/gpu/ogl_device.h>\r
6 #include <core/video_format.h>\r
7 \r
8 #include <tbb/spin_rw_mutex.h>\r
9 \r
10 #include <boost/noncopyable.hpp>\r
11 #include <boost/lexical_cast.hpp>\r
12 \r
13 #include <string>\r
14 \r
15 namespace caspar { namespace core {\r
16 \r
17 class video_channel_context\r
18 {\r
19         mutable tbb::spin_rw_mutex      mutex_;\r
20         const int                                       index_;\r
21         video_format_desc                       format_desc_;\r
22         executor                                        execution_;\r
23         executor                                        destruction_;\r
24         ogl_device&                                     ogl_;\r
25 \r
26 public:\r
27         video_channel_context(int index, ogl_device& ogl, const video_format_desc& format_desc);\r
28 \r
29         const int                       index() const;\r
30         video_format_desc       get_format_desc();\r
31         void                            set_format_desc(const video_format_desc& format_desc);\r
32         executor&                       execution();\r
33         executor&                       destruction();\r
34         ogl_device&                     ogl();\r
35         std::wstring            print() const;\r
36 };\r
37         \r
38 }}