1 #include "../../../stdafx.h"
\r
3 #include "video_deinterlacer.h"
\r
5 #include "../packet.h"
\r
7 #include "../../../../common/utility/memory.h"
\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
14 using namespace std::tr1::placeholders;
\r
21 //struct VideoPacketDeinterlacerFilter::Implementation
\r
23 // void* process(video_packet* pVideoPacket)
\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
29 // bool is_valid(video_packet* pVideoPacket)
\r
31 // return pVideoPacket->pDecodedFrame != nullptr && pVideoPacket->pDecodedFrame->interlaced_frame;
\r
35 //VideoPacketDeinterlacerFilter::VideoPacketDeinterlacerFilter()
\r
36 // : tbb::filter(parallel), pImpl_(new Implementation())
\r
41 //void* VideoPacketDeinterlacerFilter::operator()(void* item)
\r
43 // return (*pImpl_)(item);
\r
46 //void VideoPacketDeinterlacerFilter::finalize(void* item)
\r
48 // pImpl_->finalize(item);
\r