]> git.sesse.net Git - casparcg/blob - core/producer/ffmpeg/video/video_deinterlacer.cpp
2.0.0.2:
[casparcg] / core / producer / ffmpeg / video / video_deinterlacer.cpp
1 #include "../../../stdafx.h"\r
2 \r
3 #include "video_deinterlacer.h"\r
4 \r
5 #include "../packet.h"\r
6 \r
7 #include "../../../../common/utility/memory.h"\r
8 \r
9 #include <tbb/parallel_for.h>\r
10 #include <tbb/atomic.h>\r
11 #include <tbb/mutex.h>\r
12 #include <tbb/concurrent_queue.h>\r
13 \r
14 using namespace std::tr1::placeholders;\r
15 \r
16 namespace caspar\r
17 {\r
18         namespace ffmpeg\r
19         {\r
20                 \r
21 //struct VideoPacketDeinterlacerFilter::Implementation\r
22 //{\r
23 //      void* process(video_packet* pVideoPacket)\r
24 //      {                               \r
25 //              avpicture_deinterlace(reinterpret_cast<AVPicture*>(pVideoPacket->pDecodedFrame.get()), reinterpret_cast<AVPicture*>(pVideoPacket->pDecodedFrame.get()), pVideoPacket->codecContext->pix_fmt, pVideoPacket->codecContext->width, pVideoPacket->codecContext->height);\r
26 //              return pVideoPacket;    \r
27 //      }\r
28 //\r
29 //      bool is_valid(video_packet* pVideoPacket)\r
30 //      {\r
31 //              return pVideoPacket->pDecodedFrame != nullptr && pVideoPacket->pDecodedFrame->interlaced_frame;\r
32 //      }\r
33 //};\r
34 //\r
35 //VideoPacketDeinterlacerFilter::VideoPacketDeinterlacerFilter()\r
36 //      : tbb::filter(parallel), pImpl_(new Implementation())\r
37 //{\r
38 //}\r
39 //\r
40 //\r
41 //void* VideoPacketDeinterlacerFilter::operator()(void* item)\r
42 //{\r
43 //      return (*pImpl_)(item);\r
44 //}\r
45 //\r
46 //void VideoPacketDeinterlacerFilter::finalize(void* item)\r
47 //{\r
48 //      pImpl_->finalize(item);\r
49 //}\r
50         }\r
51 }