Blame view

3rdparty/opencv-4.5.4/modules/videoio/src/cap_mfx_writer.hpp 1.31 KB
f4334277   Hu Chunming   提交3rdparty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  // This file is part of OpenCV project.
  // It is subject to the license terms in the LICENSE file found in the top-level directory
  // of this distribution and at http://opencv.org/license.html
  
  #ifndef CAP_MFX_WRITER_HPP
  #define CAP_MFX_WRITER_HPP
  
  #include "precomp.hpp"
  
  class MFXVideoSession;
  class Plugin;
  class DeviceHandler;
  class WriteBitstream;
  class SurfacePool;
  class MFXVideoDECODE;
  class MFXVideoENCODE;
  
  class VideoWriter_IntelMFX : public cv::IVideoWriter
  {
  public:
      VideoWriter_IntelMFX(const cv::String &filename, int _fourcc, double fps, cv::Size frameSize, bool isColor);
      ~VideoWriter_IntelMFX() CV_OVERRIDE;
      double getProperty(int) const CV_OVERRIDE;
      bool setProperty(int, double) CV_OVERRIDE;
      bool isOpened() const CV_OVERRIDE;
      void write(cv::InputArray input) CV_OVERRIDE;
      int getCaptureDomain() const CV_OVERRIDE { return cv::CAP_INTEL_MFX; }
  protected:
      bool write_one(cv::InputArray bgr);
  
  private:
      VideoWriter_IntelMFX(const VideoWriter_IntelMFX &);
      VideoWriter_IntelMFX & operator=(const VideoWriter_IntelMFX &);
  
  private:
      MFXVideoSession *session;
      Plugin *plugin;
      DeviceHandler *deviceHandler;
      WriteBitstream *bs;
      MFXVideoENCODE *encoder;
      SurfacePool *pool;
      void *outSurface;
      cv::Size frameSize;
      bool good;
  };
  
  #endif // CAP_MFX_WRITER_HPP