Commit 5686354a692a7987f1bb58f2dbe10f39dcbcbd1e
1 parent
00b0fbdb
初步编译成功cuvid部分的
Showing
30 changed files
with
199 additions
and
117 deletions
src/Makefile
... | ... | @@ -29,11 +29,11 @@ LDFLAGS:= |
29 | 29 | LIBS:= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ |
30 | 30 | |
31 | 31 | # 各个模块 |
32 | -MODULES:= nvdecoder gb28181 interface demo | |
32 | +MODULES:= nvdec gb28181 interface demo | |
33 | 33 | |
34 | 34 | # 各个模块对应的库 |
35 | -# MODULE_LIBS:=$(BUILD_DIR)/nvdecoder/lib/nvdecoder.a\ | |
36 | -# $(BUILD_DIR)/nvdecoder/lib/gb28181.a\ | |
35 | +# MODULE_LIBS:=$(BUILD_DIR)/nvdec/lib/nvdec.a\ | |
36 | +# $(BUILD_DIR)/nvdec/lib/gb28181.a\ | |
37 | 37 | # $(BUILD_DIR)/interface/lib/interface.a\ |
38 | 38 | |
39 | 39 | # 最终目标文件 |
... | ... | @@ -46,7 +46,7 @@ all:$(TARGET) |
46 | 46 | # 最终目标依赖关系 |
47 | 47 | $(TARGET):FORCE | $(BIN_DIR) |
48 | 48 | @for n in $(MODULES); do make -s -f $(TOP_DIR)/$$n/Makefile MODULE=$$n || exit "$$?"; done |
49 | -# @echo -e "\e[32m""Linking executable $(TARGET)""\e[0m" | |
49 | + @echo -e "\e[32m""Linking executable $(TARGET)""\e[0m" | |
50 | 50 | #@$(LD) $(LDFLAGS) -o $@ $(MODULE_LIBS) $(LIBS) |
51 | 51 | |
52 | 52 | # 若没有bin目录则自动生成 | ... | ... |
src/Makefile.bak
... | ... | @@ -38,7 +38,7 @@ CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden |
38 | 38 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden |
39 | 39 | NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 |
40 | 40 | |
41 | -SRCS:=$(wildcard $(SRC_ROOT)/nvdecoder/*.cpp) \ | |
41 | +SRCS:=$(wildcard $(SRC_ROOT)/nvdec/*.cpp) \ | |
42 | 42 | $(wildcard $(SRC_ROOT)/gb28181/*.cpp) \ |
43 | 43 | $(wildcard $(SRC_ROOT)/dvpp/*.cpp) |
44 | 44 | OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) |
... | ... | @@ -52,7 +52,7 @@ $(TARGET):$(OBJS) $(CU_OBJS) |
52 | 52 | $(XX) -o $@ $^ $(CFLAGS) $(LIBSPATH) $(LIBS) -Wwrite-strings |
53 | 53 | rm -f *.o |
54 | 54 | |
55 | -# %.o:$(SRC_ROOT)/nvdecoder/%.cpp | |
55 | +# %.o:$(SRC_ROOT)/nvdec/%.cpp | |
56 | 56 | # $(XX) $(CFLAGS) -c $< |
57 | 57 | |
58 | 58 | %.o:$(SRC_ROOT)/gb28181/%.cpp | ... | ... |
src/demo/Makefile
1 | -XX = g++ | |
1 | +# 各项目录 | |
2 | +LIB_DIR:=$(BUILD_DIR)/$(MODULE)/lib | |
3 | +DEP_DIR:=$(BUILD_DIR)/$(MODULE)/.dep | |
4 | +OBJ_DIR:=$(BUILD_DIR)/$(MODULE)/obj | |
5 | +SRC_DIR:=$(TOP_DIR)/$(MODULE) | |
2 | 6 | |
7 | +# 源文件以及中间目标文件和依赖文件 | |
8 | +SRCS:=$(notdir $(wildcard $(SRC_DIR)/*.cpp)) | |
9 | +OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cpp, %.o, $(SRCS))) | |
10 | +DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS))) | |
3 | 11 | |
4 | -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
12 | +# 自动生成头文件依赖选项 | |
13 | +DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d | |
5 | 14 | |
6 | -CUDA_ROOT = /usr/local/cuda-11.1 | |
15 | +# 最终目标文件 | |
16 | +TARGET:=/mnt/data/cmhu/FFNvDecoder/bin/lib/demo | |
17 | + | |
18 | + | |
19 | + | |
20 | +PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
7 | 21 | |
8 | 22 | DEPEND_DIR = $(PROJECT_ROOT)/bin |
9 | 23 | THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty |
10 | 24 | SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release |
11 | 25 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export |
12 | 26 | |
13 | -SRC_ROOT = $(PROJECT_ROOT)/src | |
27 | +CUDA_ROOT = /usr/local/cuda-11.1 | |
14 | 28 | |
15 | -TARGET= $(PROJECT_ROOT)/bin/lib/demo | |
29 | +LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
30 | + -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ | |
31 | + -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
32 | + -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
33 | + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
16 | 34 | |
17 | -DEFS = -DENABLE_DVPP_INTERFACE | |
18 | 35 | |
19 | -INCLUDE= -I $(SRC_ROOT)/interface \ | |
20 | - -I $(SRC_ROOT)/dvpp \ | |
21 | - -I $(SRC_ROOT)/gb28181 \ | |
22 | - -I $(SRC_ROOT)/nvdecoder \ | |
36 | +INCLUDE= -I $(TOP_DIR)/interface \ | |
37 | + -I $(TOP_DIR)/nvdec \ | |
38 | + -I $(TOP_DIR)/gb28181 \ | |
23 | 39 | -I $(DEPEND_DIR)/include \ |
24 | 40 | -I $(CUDA_ROOT)/include \ |
25 | 41 | -I $(TOP_DIR)/common/inc \ |
... | ... | @@ -29,51 +45,53 @@ INCLUDE= -I $(SRC_ROOT)/interface \ |
29 | 45 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
30 | 46 | -I $(JRTP_ROOT)/jthread/include/jthread |
31 | 47 | |
32 | -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
48 | +LIBSPATH= -L $(BUILD_DIR)/interface/lib -l:interface.a \ | |
49 | + -L $(BUILD_DIR)/nvdec/lib -l:nvdec.a \ | |
50 | + -L $(BUILD_DIR)/gb28181/lib -l:gb28181.a \ | |
51 | + -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
33 | 52 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
34 | 53 | -L $(SPDLOG_ROOT) -l:libspdlog.a \ |
35 | 54 | -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ |
36 | 55 | -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a |
37 | 56 | |
57 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | |
58 | + # -DUNICODE -D_UNICODE | |
38 | 59 | |
39 | -# include_dir=-I/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/include | |
40 | - | |
41 | -# lib_dir=-L/usr/lib \ | |
42 | -# -L/usr/local/lib \ | |
43 | -# -L/usr/local/Ascend/driver/lib64 \ | |
44 | -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/atc/lib64\ | |
45 | -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64 \ | |
46 | -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64/stub \ | |
47 | -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/lib64 \ | |
48 | -# -L/usr/local/Ascend/driver/lib64/driver | |
49 | - | |
50 | -# lib=-lacl_dvpp -lascendcl -lmmpa -lglog -lgflags -lpthread -lz -lacl_dvpp_mpi -lruntime -lascendalog -lc_sec -lmsprofiler -lgert -lge_executor -lge_common \ | |
51 | -# -lgraph -lascend_protobuf -lprofapi -lerror_manager -lexe_graph -lregister -lplatform | |
52 | -# LIBS= -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice | |
53 | -# CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(include_dir) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl | |
60 | +# 默认最终目标 | |
61 | +.PHONY:all | |
62 | +all:$(TARGET) | |
54 | 63 | |
55 | -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl | |
64 | +# 生成最终目标 | |
65 | +$(TARGET): $(OBJS) | $(LIB_DIR) | |
66 | + @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" | |
67 | + @echo -e "$(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(LIBSPATH) $(MACROS)" | |
68 | + $(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(LIBSPATH) $(MACROS) | |
56 | 69 | |
57 | -SRCS:=$(wildcard $(SRC_ROOT)/demo/*.cpp) | |
58 | -OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) | |
70 | +# 若没有lib目录则自动生成 | |
71 | +$(LIB_DIR): | |
72 | + @mkdir -p $@ | |
59 | 73 | |
60 | -OBJ_ROOT = $(PROJECT_ROOT)/src/build | |
61 | -# DVPP_SRCS:=$(wildcard $(OBJ_ROOT)/dvpp/obj/*.o) | |
62 | -INTEFACE_SRCS:=$(wildcard $(OBJ_ROOT)/interface/obj/*.o) | |
63 | -NVDECODER_SRCS:=$(wildcard $(OBJ_ROOT)/nvdecoder/obj/*.o) | |
64 | -GB28181_SRCS:=$(wildcard $(OBJ_ROOT)/gb28181/obj/*.o) | |
74 | +# 生成中间目标文件 | |
75 | +$(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) | |
76 | + @echo -e "\e[33m""Building object $@""\e[0m" | |
77 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
78 | + $(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | |
65 | 79 | |
80 | +# 若没有obj目录则自动生成 | |
81 | +$(OBJ_DIR): | |
82 | + @mkdir -p $@ | |
66 | 83 | |
67 | -$(TARGET):$(OBJS) $(INTEFACE_SRCS) $(NVDECODER_SRCS) $(GB28181_SRCS) | |
68 | - rm -f $(TARGET) | |
69 | -# @echo -e "\e[33m""Building object $@""\e[0m" | |
70 | -# $(XX) -o $@ $^ $(CXXFLAGS) $(LIBS) $(lib_dir) $(lib) -Wwrite-strings | |
71 | - $(XX) -o $@ $^ $(CXXFLAGS) $(LIBSPATH) -Wwrite-strings | |
72 | - rm -f *.o | |
84 | +# 若没有.dep目录则自动生成 | |
85 | +$(DEP_DIR): | |
86 | + @mkdir -p $@ | |
73 | 87 | |
74 | -%.o:$(SRC_ROOT)/demo/%.cpp | |
75 | - $(XX) $(CXXFLAGS) -c $< | |
88 | +# 依赖文件会在生成中间文件的时候自动生成,这里只是为了防止报错 | |
89 | +$(DEPS): | |
76 | 90 | |
91 | +# 引入中间目标文件头文件依赖关系 | |
92 | +include $(wildcard $(DEPS)) | |
77 | 93 | |
94 | +# 直接删除组件build目录 | |
95 | +.PHONY:clean | |
78 | 96 | clean: |
79 | - rm -f *.o $(TARGET) | |
80 | 97 | \ No newline at end of file |
98 | + @rm -rf $(BUILD_DIR)/$(MODULE) | ... | ... |
src/demo/Makefile.o.nvdec
0 → 100644
1 | +XX = g++ | |
2 | + | |
3 | + | |
4 | +PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder | |
5 | + | |
6 | +CUDA_ROOT = /usr/local/cuda-11.1 | |
7 | + | |
8 | +DEPEND_DIR = $(PROJECT_ROOT)/bin | |
9 | +THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | |
10 | +SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | |
11 | +JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export | |
12 | + | |
13 | +SRC_ROOT = $(PROJECT_ROOT)/src | |
14 | + | |
15 | +TARGET= $(PROJECT_ROOT)/bin/lib/demo | |
16 | + | |
17 | +DEFS = -DENABLE_DVPP_INTERFACE | |
18 | + | |
19 | +INCLUDE= -I $(SRC_ROOT)/interface \ | |
20 | + -I $(SRC_ROOT)/dvpp \ | |
21 | + -I $(SRC_ROOT)/gb28181 \ | |
22 | + -I $(SRC_ROOT)/nvdec \ | |
23 | + -I $(DEPEND_DIR)/include \ | |
24 | + -I $(CUDA_ROOT)/include \ | |
25 | + -I $(TOP_DIR)/common/inc \ | |
26 | + -I $(TOP_DIR)/common/UtilNPP \ | |
27 | + -I $(TOP_DIR)/ \ | |
28 | + -I $(SPDLOG_ROOT)/include \ | |
29 | + -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ | |
30 | + -I $(JRTP_ROOT)/jthread/include/jthread | |
31 | + | |
32 | +LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | |
33 | + -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ | |
34 | + -L $(SPDLOG_ROOT) -l:libspdlog.a \ | |
35 | + -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | |
36 | + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | |
37 | + | |
38 | + | |
39 | +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl | |
40 | + | |
41 | +SRCS:=$(wildcard $(SRC_ROOT)/demo/*.cpp) | |
42 | +OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) | |
43 | + | |
44 | +OBJ_ROOT = $(PROJECT_ROOT)/src/build | |
45 | +INTEFACE_SRCS:=$(wildcard $(OBJ_ROOT)/interface/obj/*.o) | |
46 | +NVDECODER_SRCS:=$(wildcard $(OBJ_ROOT)/nvdec/obj/*.o) | |
47 | +GB28181_SRCS:=$(wildcard $(OBJ_ROOT)/gb28181/obj/*.o) | |
48 | + | |
49 | + | |
50 | +$(TARGET):$(OBJS) $(INTEFACE_SRCS) $(NVDECODER_SRCS) $(GB28181_SRCS) | |
51 | + rm -f $(TARGET) | |
52 | + @echo -e "\e[33m""Building object $@""\e[0m" | |
53 | + $(XX) -o $@ $^ $(CXXFLAGS) $(LIBSPATH) -Wwrite-strings | |
54 | + rm -f *.o | |
55 | + | |
56 | +%.o:$(SRC_ROOT)/demo/%.cpp | |
57 | + $(XX) $(CXXFLAGS) -c $< | |
58 | + | |
59 | + | |
60 | +clean: | |
61 | + rm -f *.o $(TARGET) | |
0 | 62 | \ No newline at end of file | ... | ... |
src/demo/main_nvdec.cpp
1 | 1 | #include "FFNvDecoderManager.h" |
2 | 2 | #include <iostream> |
3 | 3 | |
4 | -#include "cuda_kernels.h" | |
5 | - | |
6 | -#include "NvJpegEncoder.h" | |
4 | +// #include "cuda_kernels.h" | |
5 | +// #include "NvJpegEncoder.h" | |
7 | 6 | |
8 | 7 | #include <pthread.h> |
9 | 8 | #include <thread> |
... | ... | @@ -85,75 +84,75 @@ unsigned char *pHwRgb[2] = {nullptr, nullptr}; |
85 | 84 | int sum1 = 0; |
86 | 85 | int sum2 = 0; |
87 | 86 | |
88 | -cudaStream_t stream[2]; | |
87 | +// cudaStream_t stream[2]; | |
89 | 88 | |
90 | 89 | string data_home = "/mnt/data/cmhu/tmp/"; |
91 | 90 | |
92 | 91 | |
93 | -#define checkCudaErrors(S) do {CUresult status; \ | |
94 | - status = S; \ | |
95 | - if (status != CUDA_SUCCESS ) std::cout << __LINE__ <<" checkCudaErrors - status = " << status << std::endl; \ | |
96 | - } while (false) | |
92 | +// #define checkCudaErrors(S) do {CUresult status; \ | |
93 | +// status = S; \ | |
94 | +// if (status != CUDA_SUCCESS ) std::cout << __LINE__ <<" checkCudaErrors - status = " << status << std::endl; \ | |
95 | +// } while (false) | |
97 | 96 | |
98 | 97 | |
99 | -static void gpu_helper(int gpuid) | |
100 | -{ | |
101 | - cudaSetDevice(gpuid); | |
98 | +// static void gpu_helper(int gpuid) | |
99 | +// { | |
100 | +// cudaSetDevice(gpuid); | |
102 | 101 | |
103 | - // int *dn; | |
104 | - // cudaMalloc((void **)&dn, 1 * sizeof(int)); | |
102 | +// // int *dn; | |
103 | +// // cudaMalloc((void **)&dn, 1 * sizeof(int)); | |
105 | 104 | |
106 | - size_t free_byte; | |
107 | - size_t total_byte; | |
105 | +// size_t free_byte; | |
106 | +// size_t total_byte; | |
108 | 107 | |
109 | - CUresult cuda_status = cuMemGetInfo(&free_byte, &total_byte); | |
108 | +// CUresult cuda_status = cuMemGetInfo(&free_byte, &total_byte); | |
110 | 109 | |
111 | - const char *pStr = nullptr; | |
112 | - if (CUDA_SUCCESS != cuda_status) { | |
113 | - cuGetErrorString(cuda_status, &pStr); | |
114 | - printf("Error: cudaMemGetInfo fails, %s \n", pStr); | |
115 | - return; | |
116 | - } | |
110 | +// const char *pStr = nullptr; | |
111 | +// if (CUDA_SUCCESS != cuda_status) { | |
112 | +// cuGetErrorString(cuda_status, &pStr); | |
113 | +// printf("Error: cudaMemGetInfo fails, %s \n", pStr); | |
114 | +// return; | |
115 | +// } | |
117 | 116 | |
118 | - double free_db = (double)free_byte; | |
119 | - double total_db = (double)total_byte; | |
120 | - double used_db_1 = (total_db - free_db) / 1024.0 / 1024.0; | |
117 | +// double free_db = (double)free_byte; | |
118 | +// double total_db = (double)total_byte; | |
119 | +// double used_db_1 = (total_db - free_db) / 1024.0 / 1024.0; | |
121 | 120 | |
122 | - std::cout <<"显存已使用 " << used_db_1 << " MB\n"; | |
121 | +// std::cout <<"显存已使用 " << used_db_1 << " MB\n"; | |
123 | 122 | |
124 | - // cudaFree(dn); | |
125 | -} | |
123 | +// // cudaFree(dn); | |
124 | +// } | |
126 | 125 | |
127 | -int CheckCUDAProperty( int devId ) | |
128 | -{ | |
129 | - cuInit(0); | |
126 | +// int CheckCUDAProperty( int devId ) | |
127 | +// { | |
128 | +// cuInit(0); | |
130 | 129 | |
131 | - CUdevice dev = devId; | |
132 | - size_t memSize = 0; | |
133 | - char devName[256] = {0}; | |
134 | - int major = 0, minor = 0; | |
135 | - CUresult rlt = CUDA_SUCCESS; | |
130 | +// CUdevice dev = devId; | |
131 | +// size_t memSize = 0; | |
132 | +// char devName[256] = {0}; | |
133 | +// int major = 0, minor = 0; | |
134 | +// CUresult rlt = CUDA_SUCCESS; | |
136 | 135 | |
137 | - rlt = cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev); | |
138 | - checkCudaErrors( rlt ); | |
136 | +// rlt = cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev); | |
137 | +// checkCudaErrors( rlt ); | |
139 | 138 | |
140 | - rlt = cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev); | |
141 | - checkCudaErrors( rlt ); | |
139 | +// rlt = cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev); | |
140 | +// checkCudaErrors( rlt ); | |
142 | 141 | |
143 | - rlt = cuDeviceGetName( devName, sizeof( devName ), dev ); | |
144 | - checkCudaErrors( rlt ); | |
142 | +// rlt = cuDeviceGetName( devName, sizeof( devName ), dev ); | |
143 | +// checkCudaErrors( rlt ); | |
145 | 144 | |
146 | - printf( "Using GPU Device %d: %s has SM %d.%d compute capability\n", | |
147 | - dev, devName, major, minor ); | |
145 | +// printf( "Using GPU Device %d: %s has SM %d.%d compute capability\n", | |
146 | +// dev, devName, major, minor ); | |
148 | 147 | |
149 | - rlt = cuDeviceTotalMem( &memSize, dev ); | |
150 | - checkCudaErrors( rlt ); | |
148 | +// rlt = cuDeviceTotalMem( &memSize, dev ); | |
149 | +// checkCudaErrors( rlt ); | |
151 | 150 | |
152 | - printf( "Total amount of global memory: %4.4f MB\n", | |
153 | - (float)memSize / ( 1024 * 1024 ) ); | |
151 | +// printf( "Total amount of global memory: %4.4f MB\n", | |
152 | +// (float)memSize / ( 1024 * 1024 ) ); | |
154 | 153 | |
155 | - return 0; | |
156 | -} | |
154 | +// return 0; | |
155 | +// } | |
157 | 156 | |
158 | 157 | /** |
159 | 158 | * 注意: gpuFrame 在解码器设置的显卡上,后续操作要十分注意这一点,尤其是多线程情况 |
... | ... | @@ -378,7 +377,7 @@ int main(int argc, char* argv[]){ |
378 | 377 | |
379 | 378 | // av_log_set_callback(&logFF); |
380 | 379 | |
381 | - CheckCUDAProperty(atoi(gpuid)); | |
380 | + // CheckCUDAProperty(atoi(gpuid)); | |
382 | 381 | |
383 | 382 | pthread_t m_decode_thread; |
384 | 383 | pthread_create(&m_decode_thread,0, | ... | ... |
src/gb28181/FFGB28181Decoder.cpp
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | #include <iostream> |
3 | 3 | #include "FFGB28181Decoder.h" |
4 | 4 | |
5 | -#include "../nvdecoder/FFCuContextManager.h" | |
5 | + | |
6 | 6 | |
7 | 7 | extern "C" { |
8 | 8 | #include "libavutil/avstring.h" |
... | ... | @@ -17,8 +17,9 @@ extern "C" { |
17 | 17 | |
18 | 18 | #include "common_header.h" |
19 | 19 | |
20 | -#include "../nvdecoder/GpuRgbMemory.hpp" | |
21 | -#include "../nvdecoder/cuda_kernels.h" | |
20 | +#include "../nvdec/FFCuContextManager.h" | |
21 | +#include "../nvdec/GpuRgbMemory.hpp" | |
22 | +#include "../nvdec/cuda_kernels.h" | |
22 | 23 | |
23 | 24 | #define ECLOSED 0 |
24 | 25 | #define ECLOSING 1 | ... | ... |
src/gb28181/Makefile
... | ... | @@ -50,7 +50,8 @@ all:$(TARGET) |
50 | 50 | # 生成最终目标 |
51 | 51 | $(TARGET):$(OBJS) | $(LIB_DIR) |
52 | 52 | @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" |
53 | -# @ar -rc $@ $^ | |
53 | + @echo -e "ar -rc $@ $^" | |
54 | + @ar -rc $@ $^ | |
54 | 55 | |
55 | 56 | # 若没有lib目录则自动生成 |
56 | 57 | $(LIB_DIR): |
... | ... | @@ -59,6 +60,7 @@ $(LIB_DIR): |
59 | 60 | # 生成中间目标文件 |
60 | 61 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
61 | 62 | @echo -e "\e[33m""Building object $@""\e[0m" |
63 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
62 | 64 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< |
63 | 65 | |
64 | 66 | # 若没有obj目录则自动生成 | ... | ... |
src/interface/FFNvDecoderManager.cpp
src/interface/Makefile
... | ... | @@ -30,7 +30,7 @@ INCLUDE= -I $(DEPEND_DIR)/include \ |
30 | 30 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
31 | 31 | -I $(JRTP_ROOT)/jthread/include/jthread \ |
32 | 32 | -I $(TOP_DIR)/src/gb28181 \ |
33 | - -I $(TOP_DIR)/src/nvdecoder \ | |
33 | + -I $(TOP_DIR)/src/nvdec \ | |
34 | 34 | |
35 | 35 | LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ |
36 | 36 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
... | ... | @@ -45,7 +45,7 @@ CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c |
45 | 45 | # 最终目标文件 |
46 | 46 | TARGET:=$(LIB_DIR)/$(MODULE).a |
47 | 47 | |
48 | -# MODULE_LIBS:=$(BUILD_DIR)/nvdecoder/lib/nvdecoder.a \ | |
48 | +# MODULE_LIBS:=$(BUILD_DIR)/nvdec/lib/nvdec.a \ | |
49 | 49 | # $(BUILD_DIR)/gb28181/lib/gb28181.a\ |
50 | 50 | |
51 | 51 | # 默认最终目标 |
... | ... | @@ -54,8 +54,9 @@ all:$(TARGET) |
54 | 54 | |
55 | 55 | # 生成最终目标 |
56 | 56 | $(TARGET):$(OBJS) | $(LIB_DIR) |
57 | - # @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" | |
58 | -# @ar -rc $@ $^ | |
57 | + @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" | |
58 | + @echo -e "ar -rc $@ $^" | |
59 | + @ar -rc $@ $^ | |
59 | 60 | |
60 | 61 | # 若没有lib目录则自动生成 |
61 | 62 | $(LIB_DIR): |
... | ... | @@ -64,6 +65,7 @@ $(LIB_DIR): |
64 | 65 | # 生成中间目标文件 |
65 | 66 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
66 | 67 | @echo -e "\e[33m""Building object $@""\e[0m" |
68 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
67 | 69 | # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $(MODULE_LIBS) $< |
68 | 70 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< |
69 | 71 | ... | ... |
src/nvdecoder/DrawImageOnGPU.cu renamed to src/nvdec/DrawImageOnGPU.cu
src/nvdecoder/FFCuContextManager.cpp renamed to src/nvdec/FFCuContextManager.cpp
src/nvdecoder/FFCuContextManager.h renamed to src/nvdec/FFCuContextManager.h
src/nvdecoder/FFNvDecoder.cpp renamed to src/nvdec/FFNvDecoder.cpp
src/nvdecoder/FFNvDecoder.h renamed to src/nvdec/FFNvDecoder.h
src/nvdecoder/GpuRgbMemory.hpp renamed to src/nvdec/GpuRgbMemory.hpp
src/nvdecoder/ImageSaveGPU.cpp renamed to src/nvdec/ImageSaveGPU.cpp
src/nvdecoder/ImageSaveGPU.h renamed to src/nvdec/ImageSaveGPU.h
src/nvdecoder/Makefile renamed to src/nvdec/Makefile
... | ... | @@ -46,15 +46,11 @@ LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilte |
46 | 46 | |
47 | 47 | |
48 | 48 | CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings |
49 | -# CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl | |
50 | 49 | # -DUNICODE -D_UNICODE |
51 | 50 | |
52 | 51 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden |
53 | 52 | NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 |
54 | 53 | |
55 | -# CU_SOURCES = $(wildcard ${SRC_DIR}/*.cu) | |
56 | -# CU_OBJS = $(patsubst %.cu, %.o, $(notdir $(CU_SOURCES))) | |
57 | - | |
58 | 54 | CU_SOURCES:=$(notdir $(wildcard $(SRC_DIR)/*.cu)) |
59 | 55 | CU_OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cu, %.o, $(CU_SOURCES))) |
60 | 56 | |
... | ... | @@ -66,7 +62,8 @@ all:$(TARGET) |
66 | 62 | # 生成最终目标 |
67 | 63 | $(TARGET):$(OBJS) $(CU_OBJS) | $(LIB_DIR) |
68 | 64 | @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" |
69 | -# @ar -rc $@ $^ | |
65 | + @echo -e "ar -rc $@ $^" | |
66 | + @ar -rc $@ $^ | |
70 | 67 | |
71 | 68 | # 若没有lib目录则自动生成 |
72 | 69 | $(LIB_DIR): |
... | ... | @@ -74,11 +71,13 @@ $(LIB_DIR): |
74 | 71 | |
75 | 72 | # 生成中间目标文件 |
76 | 73 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
77 | -# @echo -e "\e[33m""Building object $@""\e[0m" | |
74 | + @echo -e "\e[33m""Building object $@""\e[0m" | |
75 | + @echo "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | |
78 | 76 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< |
79 | 77 | |
80 | 78 | $(OBJ_DIR)%.o:$(SRC_DIR)/%.cu |
81 | - @echo "#######################CU_OBJS:$@###############" | |
79 | + @echo -e "\e[33m""Building object $@""\e[0m" | |
80 | + @echo "$(NVCC) $(NFLAGS) -o $@ $<" | |
82 | 81 | $(NVCC) $(NFLAGS) -o $@ $< |
83 | 82 | |
84 | 83 | ... | ... |
src/nvdecoder/NV12ToRGB.cu renamed to src/nvdec/NV12ToRGB.cu
src/nvdecoder/NvDecoderApi.cpp renamed to src/nvdec/NvDecoderApi.cpp
src/nvdecoder/NvDecoderApi.h renamed to src/nvdec/NvDecoderApi.h
src/nvdecoder/NvJpegEncoder.cpp renamed to src/nvdec/NvJpegEncoder.cpp
src/nvdecoder/NvJpegEncoder.h renamed to src/nvdec/NvJpegEncoder.h
src/nvdecoder/PartMemCopy.cu renamed to src/nvdec/PartMemCopy.cu
src/nvdecoder/RGB2YUV.cu renamed to src/nvdec/RGB2YUV.cu
src/nvdecoder/ResizeImage.cu renamed to src/nvdec/ResizeImage.cu
src/nvdecoder/common_header.h renamed to src/nvdec/common_header.h
src/nvdecoder/cuda_kernels.h renamed to src/nvdec/cuda_kernels.h
src/nvdecoder/define.hpp renamed to src/nvdec/define.hpp
src/nvdecoder/jpegNPP.cpp-1 renamed to src/nvdec/jpegNPP.cpp-1