Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

NVENCMgr.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr
00003  *cr            (C) Copyright 1995-2019 The Board of Trustees of the
00004  *cr                        University of Illinois
00005  *cr                         All Rights Reserved
00006  *cr
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010 * RCS INFORMATION:
00011 *
00012 *      $RCSfile: OptiXDisplayDevice.h
00013 *      $Author: johns $      $Locker:  $               $State: Exp $
00014 *      $Revision: 1.3 $         $Date: 2019/01/17 21:21:00 $
00015 *
00016 ***************************************************************************
00017 * DESCRIPTION:
00018 *   VMD interface for NVIDIA GPU hardware video encoding APIs
00019 *
00020 ***************************************************************************/
00021 
00022 #ifndef NVENCMGR_H
00023 #define NVENCMGR_H
00024 
00025 #include "nvEncodeAPI.h" // NVIDIA's NVENC API header
00026 
00027 #define NVENCMGR_SUCCESS  0
00028 #define NVENCMGR_ERROR   -1
00029 
00030 typedef NVENCSTATUS (NVENCAPI* PNVENCODEAPICREATEINSTANCE)(NV_ENCODE_API_FUNCTION_LIST *functionList);
00031 
00032 class NVENCMgr {
00033   public:
00034     NVENCMgr(void);
00035     ~NVENCMgr(void);
00036     int init(void);
00037     int open_session(void);
00038     int create_inbufs(int bufcount);
00039 
00040   private:
00041     int enc_ready;
00042     void *nvenc_lib;
00043     PNVENCODEAPICREATEINSTANCE nvEncodeAPICreateInstance;
00044     NV_ENCODE_API_FUNCTION_LIST nvenc_fctns;
00045     NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS session_parms;
00046     void *nvenc_ctx;
00047 
00048     NV_ENC_PRESET_CONFIG preset_conf;
00049     NV_ENC_INITIALIZE_PARAMS init_parms;
00050     NV_ENC_CONFIG conf;
00051     GUID enc_preset;
00052     GUID codec;
00053 
00054     NV_ENC_CREATE_INPUT_BUFFER create_inbuf;
00055     int inbuf_count;
00056 
00057     NV_ENC_CREATE_BITSTREAM_BUFFER create_outbuf;
00058 };
00059 
00060 #endif

Generated on Fri Apr 19 02:44:44 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002