]> git.sesse.net Git - casparcg/blob - core/frame/data_frame.cpp
e0bc316720a1a007e76626ac5c822ae84eb67824
[casparcg] / core / frame / data_frame.cpp
1 #include "../StdAfx.h"\r
2 \r
3 #include "data_frame.h"\r
4 \r
5 #include "pixel_format.h"\r
6 \r
7 namespace caspar { namespace core {\r
8         \r
9 spl::shared_ptr<data_frame> data_frame::empty()\r
10 {\r
11         class empty_frame : public data_frame\r
12         {\r
13         public:\r
14                 empty_frame(){}\r
15                 virtual const struct core::pixel_format_desc& pixel_format_desc() const override\r
16                 {\r
17                         static core::pixel_format_desc invalid(pixel_format::invalid);\r
18                         return invalid;\r
19                 }\r
20                 virtual const boost::iterator_range<const uint8_t*> image_data(int) const override\r
21                 {\r
22                         return boost::iterator_range<const uint8_t*>();\r
23                 }\r
24                 virtual audio_buffer& audio_data() const override\r
25                 {\r
26                         static audio_buffer buffer;\r
27                         return buffer;\r
28                 }\r
29                 const boost::iterator_range<uint8_t*> image_data(int) override\r
30                 {\r
31                         return boost::iterator_range<uint8_t*>();\r
32                 }\r
33                 audio_buffer& audio_data() override\r
34                 {\r
35                         static audio_buffer buffer;\r
36                         return buffer;\r
37                 }\r
38                 virtual double frame_rate() const override\r
39                 {\r
40                         return 0.0;\r
41                 }\r
42                 virtual core::field_mode field_mode() const override\r
43                 {\r
44                         return core::field_mode::empty;\r
45                 }\r
46                 virtual int width() const override\r
47                 {\r
48                         return 0;\r
49                 }\r
50                 virtual int height() const override\r
51                 {\r
52                         return 0;\r
53                 }\r
54                 virtual const void* tag() const override\r
55                 {\r
56                         return 0;\r
57                 }\r
58         };\r
59 \r
60         static spl::shared_ptr<empty_frame> empty;\r
61         return empty;\r
62 }\r
63 \r
64 }}