Path: blob/master/modules/videoio/src/cap_mfx_writer.hpp
16356 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html34#ifndef CAP_MFX_WRITER_HPP5#define CAP_MFX_WRITER_HPP67#include "precomp.hpp"89class MFXVideoSession;10class Plugin;11class DeviceHandler;12class WriteBitstream;13class SurfacePool;14class MFXVideoDECODE;15class MFXVideoENCODE;1617class VideoWriter_IntelMFX : public cv::IVideoWriter18{19public:20VideoWriter_IntelMFX(const cv::String &filename, int _fourcc, double fps, cv::Size frameSize, bool isColor);21virtual ~VideoWriter_IntelMFX();22virtual double getProperty(int) const;23virtual bool setProperty(int, double);24virtual bool isOpened() const;25virtual void write(cv::InputArray input);26static cv::Ptr<VideoWriter_IntelMFX> create(const cv::String& filename, int _fourcc, double fps, cv::Size frameSize, bool isColor);2728virtual int getCaptureDomain() const { return cv::CAP_INTEL_MFX; }29protected:30bool write_one(cv::InputArray bgr);3132private:33VideoWriter_IntelMFX(const VideoWriter_IntelMFX &);34VideoWriter_IntelMFX & operator=(const VideoWriter_IntelMFX &);3536private:37MFXVideoSession *session;38Plugin *plugin;39DeviceHandler *deviceHandler;40WriteBitstream *bs;41MFXVideoENCODE *encoder;42SurfacePool *pool;43void *outSurface;44cv::Size frameSize;45bool good;46};4748#endif // CAP_MFX_WRITER_HPP495051