資源簡(jiǎn)介
對(duì)于nvidia顯卡的編解碼開(kāi)發(fā)的 demo,還有一種sample比較清楚的實(shí)現(xiàn)了nvidia編碼解碼的方法.可以編碼,解碼出H265,H264
代碼片段和文件信息
/*
?*?Copyright?1993-2017?NVIDIA?Corporation.??All?rights?reserved.
?*
?*?Please?refer?to?the?NVIDIA?end?user?license?agreement?(EULA)?associated
?*?with?this?source?code?for?terms?and?conditions?that?govern?your?use?of
?*?this?software.?Any?use?reproduction?disclosure?or?distribution?of
?*?this?software?and?related?documentation?outside?the?terms?of?the?EULA
?*?is?strictly?prohibited.
?*
?*/
/*?CUmoduleManager?manages?loading?CUBIN?initializing?CUBIN?kernel?function
?*?initializating?CUDA?kernel?function?pointers?and?obtaining?global?memory
?*?addresses?(i.e.?constants).
?*/
#include?
#include?
#include?
#include?
#include?“dynlink_cuda.h“
#include?“dynlink_builtin_types.h“
#include?“helper_cuda_drvapi.h“
#include?“cudaModuleMgr.h“
#define?ERROR_BUFFER_SIZE?256
using?namespace?std;
//?CUDA?Module?Manager?(C?implementation)
//??????filename_module?-?CUDA?or?PTX?file?path
//??????exec_path???????-?execution?path
//??????nKernels????????-?total?#?of?different?CUDA?kernel?functions?in?the?CUBIN/OTX
//??????nGlobalMem??????-?total?#?of?Global?Memory?arrays?defined?in?the?CUBIN/PTX?(i.e.?constants)
//??????nTexRef?????????-?total?#?of?Texture?References?arrays?defined?in?the?CUBIN/PTX?(i.e.?texture?arrays)
extern?“C“
bool?modInitCTX(sCtxModule?*pCtx?const?char?*filename?const?char?*exec_path?int?nKernels?int?nGlobalMem?int?nTexRef)
{
????pCtx->nMaxKernels_???=?nKernels;
????pCtx->nMaxGlobalMem_?=?nGlobalMem;
????pCtx->nMaxTexRef_????=?nTexRef;
????pCtx->mModuleName????=?filename;
????CUresult?cuStatus;
????string?module_path;
????string?ptx_source;
????char?*actual_path?=?sdkFindFilePath(pCtx->mModuleName.c_str()?exec_path);
????if?(actual_path)
????{
????????module_path?=?actual_path;
????}
????else
????{
????????printf(“>>?modInitCTX()?<%36s>?not?found!\n“?pCtx->mModuleName.c_str());
????????return?false;
????}
????if?(module_path.empty())
????{
????????printf(“>>?modInitCTX()?<%36s>?not?found!\n“?pCtx->mModuleName.c_str());
????????return?false;
????}
????else
????{
????????FILE?*fp?=?fopen(module_path.c_str()?“rb“);
????????fseek(fp?0?SEEK_END);
????????int?file_size?=?ftell(fp);
????????char?*buf?=?new?char[file_size+1];
????????fseek(fp?0?SEEK_SET);
????????fread(buf?sizeof(char)?file_size?fp);
????????fclose(fp);
????????buf[file_size]?=?‘\0‘;
????????ptx_source?=?buf;
????????delete?[]?buf;
????}
????if?(pCtx->mModuleName.rfind(“.ptx“)?!=?string::npos)
????{
????????//?in?this?branch?we?use?compilation?with?parameters
????????const?unsigned?int?jitNumOptions?=?3;
????????CUjit_option?*jitOptions?=?new?CUjit_option[jitNumOptions];
????????void?**jitOptVals?=?new?void?*[jitNumOptions];
????????//?set?up?size?of?compilation?log?buffer
????????jitOptions[0]?=?CU_JIT_INFO_LOG_BUFFER_SIZE_BYTES;
????????int?jitLogBufferSize?=?1024;
????????jitOptVals[0]?=?(void?*)(size_t)jitLogBufferSize;
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\
?????文件????????1489??2018-03-23?13:39??Video_Codec_SDK_8.1.24\deprecation_notices.txt
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\doc\
?????文件??????762113??2018-03-23?13:39??Video_Codec_SDK_8.1.24\doc\NVDEC_Application_Note.pdf
?????文件??????818832??2018-03-23?13:39??Video_Codec_SDK_8.1.24\doc\NVDEC_VideoDecoder_API_ProgGuide.pdf
?????文件??????629795??2018-03-23?13:39??Video_Codec_SDK_8.1.24\doc\NVENC_Application_Note.pdf
?????文件?????1133974??2018-03-23?13:39??Video_Codec_SDK_8.1.24\doc\NVENC_VideoEncoder_API_ProgGuide.pdf
?????文件??????831936??2018-03-23?13:39??Video_Codec_SDK_8.1.24\doc\Using_FFmpeg_with_NVIDIA_GPU_Hardware_Acceleration.pdf
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\LegacySamples\
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\LegacySamples\common\
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\
?????文件????????4132??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\cudaModuleMgr.h
?????文件???????11356??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\drvapi_error_string.h
?????文件???????28370??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件?????????548??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????8573??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件???????13172??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????9100??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????5897??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件???????73291??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????5236??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????1643??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\dynli
?????文件????????5262??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\exception.h
?????目錄???????????0??2018-03-23?13:42??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\
?????文件?????????703??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\freeglut.h
?????文件???????10682??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\freeglut_ext.h
?????文件???????27750??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\freeglut_std.h
?????文件???????70198??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\gl.h
?????文件??????943450??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\glew.h
?????文件??????691298??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\glext.h
?????文件???????19252??2018-03-23?13:39??Video_Codec_SDK_8.1.24\LegacySamples\common\inc\GL\glu.h
............此處省略346個(gè)文件信息
評(píng)論
共有 條評(píng)論