Commit 5686354a692a7987f1bb58f2dbe10f39dcbcbd1e
1 parent
00b0fbdb
初步编译成功cuvid部分的
Showing
30 changed files
with
199 additions
and
117 deletions
src/Makefile
@@ -29,11 +29,11 @@ LDFLAGS:= | @@ -29,11 +29,11 @@ LDFLAGS:= | ||
29 | LIBS:= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ | 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 | # $(BUILD_DIR)/interface/lib/interface.a\ | 37 | # $(BUILD_DIR)/interface/lib/interface.a\ |
38 | 38 | ||
39 | # 最终目标文件 | 39 | # 最终目标文件 |
@@ -46,7 +46,7 @@ all:$(TARGET) | @@ -46,7 +46,7 @@ all:$(TARGET) | ||
46 | # 最终目标依赖关系 | 46 | # 最终目标依赖关系 |
47 | $(TARGET):FORCE | $(BIN_DIR) | 47 | $(TARGET):FORCE | $(BIN_DIR) |
48 | @for n in $(MODULES); do make -s -f $(TOP_DIR)/$$n/Makefile MODULE=$$n || exit "$$?"; done | 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 | #@$(LD) $(LDFLAGS) -o $@ $(MODULE_LIBS) $(LIBS) | 50 | #@$(LD) $(LDFLAGS) -o $@ $(MODULE_LIBS) $(LIBS) |
51 | 51 | ||
52 | # 若没有bin目录则自动生成 | 52 | # 若没有bin目录则自动生成 |
src/Makefile.bak
@@ -38,7 +38,7 @@ CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden | @@ -38,7 +38,7 @@ CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden | ||
38 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden | 38 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden |
39 | NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 | 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 | $(wildcard $(SRC_ROOT)/gb28181/*.cpp) \ | 42 | $(wildcard $(SRC_ROOT)/gb28181/*.cpp) \ |
43 | $(wildcard $(SRC_ROOT)/dvpp/*.cpp) | 43 | $(wildcard $(SRC_ROOT)/dvpp/*.cpp) |
44 | OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) | 44 | OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) |
@@ -52,7 +52,7 @@ $(TARGET):$(OBJS) $(CU_OBJS) | @@ -52,7 +52,7 @@ $(TARGET):$(OBJS) $(CU_OBJS) | ||
52 | $(XX) -o $@ $^ $(CFLAGS) $(LIBSPATH) $(LIBS) -Wwrite-strings | 52 | $(XX) -o $@ $^ $(CFLAGS) $(LIBSPATH) $(LIBS) -Wwrite-strings |
53 | rm -f *.o | 53 | rm -f *.o |
54 | 54 | ||
55 | -# %.o:$(SRC_ROOT)/nvdecoder/%.cpp | 55 | +# %.o:$(SRC_ROOT)/nvdec/%.cpp |
56 | # $(XX) $(CFLAGS) -c $< | 56 | # $(XX) $(CFLAGS) -c $< |
57 | 57 | ||
58 | %.o:$(SRC_ROOT)/gb28181/%.cpp | 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 | DEPEND_DIR = $(PROJECT_ROOT)/bin | 22 | DEPEND_DIR = $(PROJECT_ROOT)/bin |
9 | THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty | 23 | THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty |
10 | SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release | 24 | SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release |
11 | JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export | 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 | -I $(DEPEND_DIR)/include \ | 39 | -I $(DEPEND_DIR)/include \ |
24 | -I $(CUDA_ROOT)/include \ | 40 | -I $(CUDA_ROOT)/include \ |
25 | -I $(TOP_DIR)/common/inc \ | 41 | -I $(TOP_DIR)/common/inc \ |
@@ -29,51 +45,53 @@ INCLUDE= -I $(SRC_ROOT)/interface \ | @@ -29,51 +45,53 @@ INCLUDE= -I $(SRC_ROOT)/interface \ | ||
29 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ | 45 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
30 | -I $(JRTP_ROOT)/jthread/include/jthread | 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 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ | 52 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ |
34 | -L $(SPDLOG_ROOT) -l:libspdlog.a \ | 53 | -L $(SPDLOG_ROOT) -l:libspdlog.a \ |
35 | -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ | 54 | -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ |
36 | -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a | 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 | clean: | 96 | clean: |
79 | - rm -f *.o $(TARGET) | ||
80 | \ No newline at end of file | 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 | \ No newline at end of file | 62 | \ No newline at end of file |
src/demo/main_nvdec.cpp
1 | #include "FFNvDecoderManager.h" | 1 | #include "FFNvDecoderManager.h" |
2 | #include <iostream> | 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 | #include <pthread.h> | 7 | #include <pthread.h> |
9 | #include <thread> | 8 | #include <thread> |
@@ -85,75 +84,75 @@ unsigned char *pHwRgb[2] = {nullptr, nullptr}; | @@ -85,75 +84,75 @@ unsigned char *pHwRgb[2] = {nullptr, nullptr}; | ||
85 | int sum1 = 0; | 84 | int sum1 = 0; |
86 | int sum2 = 0; | 85 | int sum2 = 0; |
87 | 86 | ||
88 | -cudaStream_t stream[2]; | 87 | +// cudaStream_t stream[2]; |
89 | 88 | ||
90 | string data_home = "/mnt/data/cmhu/tmp/"; | 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 | * 注意: gpuFrame 在解码器设置的显卡上,后续操作要十分注意这一点,尤其是多线程情况 | 158 | * 注意: gpuFrame 在解码器设置的显卡上,后续操作要十分注意这一点,尤其是多线程情况 |
@@ -378,7 +377,7 @@ int main(int argc, char* argv[]){ | @@ -378,7 +377,7 @@ int main(int argc, char* argv[]){ | ||
378 | 377 | ||
379 | // av_log_set_callback(&logFF); | 378 | // av_log_set_callback(&logFF); |
380 | 379 | ||
381 | - CheckCUDAProperty(atoi(gpuid)); | 380 | + // CheckCUDAProperty(atoi(gpuid)); |
382 | 381 | ||
383 | pthread_t m_decode_thread; | 382 | pthread_t m_decode_thread; |
384 | pthread_create(&m_decode_thread,0, | 383 | pthread_create(&m_decode_thread,0, |
src/gb28181/FFGB28181Decoder.cpp
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | #include <iostream> | 2 | #include <iostream> |
3 | #include "FFGB28181Decoder.h" | 3 | #include "FFGB28181Decoder.h" |
4 | 4 | ||
5 | -#include "../nvdecoder/FFCuContextManager.h" | 5 | + |
6 | 6 | ||
7 | extern "C" { | 7 | extern "C" { |
8 | #include "libavutil/avstring.h" | 8 | #include "libavutil/avstring.h" |
@@ -17,8 +17,9 @@ extern "C" { | @@ -17,8 +17,9 @@ extern "C" { | ||
17 | 17 | ||
18 | #include "common_header.h" | 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 | #define ECLOSED 0 | 24 | #define ECLOSED 0 |
24 | #define ECLOSING 1 | 25 | #define ECLOSING 1 |
src/gb28181/Makefile
@@ -50,7 +50,8 @@ all:$(TARGET) | @@ -50,7 +50,8 @@ all:$(TARGET) | ||
50 | # 生成最终目标 | 50 | # 生成最终目标 |
51 | $(TARGET):$(OBJS) | $(LIB_DIR) | 51 | $(TARGET):$(OBJS) | $(LIB_DIR) |
52 | @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" | 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 | # 若没有lib目录则自动生成 | 56 | # 若没有lib目录则自动生成 |
56 | $(LIB_DIR): | 57 | $(LIB_DIR): |
@@ -59,6 +60,7 @@ $(LIB_DIR): | @@ -59,6 +60,7 @@ $(LIB_DIR): | ||
59 | # 生成中间目标文件 | 60 | # 生成中间目标文件 |
60 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) | 61 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
61 | @echo -e "\e[33m""Building object $@""\e[0m" | 62 | @echo -e "\e[33m""Building object $@""\e[0m" |
63 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | ||
62 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | 64 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< |
63 | 65 | ||
64 | # 若没有obj目录则自动生成 | 66 | # 若没有obj目录则自动生成 |
src/interface/FFNvDecoderManager.cpp
src/interface/Makefile
@@ -30,7 +30,7 @@ INCLUDE= -I $(DEPEND_DIR)/include \ | @@ -30,7 +30,7 @@ INCLUDE= -I $(DEPEND_DIR)/include \ | ||
30 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ | 30 | -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ |
31 | -I $(JRTP_ROOT)/jthread/include/jthread \ | 31 | -I $(JRTP_ROOT)/jthread/include/jthread \ |
32 | -I $(TOP_DIR)/src/gb28181 \ | 32 | -I $(TOP_DIR)/src/gb28181 \ |
33 | - -I $(TOP_DIR)/src/nvdecoder \ | 33 | + -I $(TOP_DIR)/src/nvdec \ |
34 | 34 | ||
35 | LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ | 35 | LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ |
36 | -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ | 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,7 +45,7 @@ CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c | ||
45 | # 最终目标文件 | 45 | # 最终目标文件 |
46 | TARGET:=$(LIB_DIR)/$(MODULE).a | 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 | # $(BUILD_DIR)/gb28181/lib/gb28181.a\ | 49 | # $(BUILD_DIR)/gb28181/lib/gb28181.a\ |
50 | 50 | ||
51 | # 默认最终目标 | 51 | # 默认最终目标 |
@@ -54,8 +54,9 @@ all:$(TARGET) | @@ -54,8 +54,9 @@ all:$(TARGET) | ||
54 | 54 | ||
55 | # 生成最终目标 | 55 | # 生成最终目标 |
56 | $(TARGET):$(OBJS) | $(LIB_DIR) | 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 | # 若没有lib目录则自动生成 | 61 | # 若没有lib目录则自动生成 |
61 | $(LIB_DIR): | 62 | $(LIB_DIR): |
@@ -64,6 +65,7 @@ $(LIB_DIR): | @@ -64,6 +65,7 @@ $(LIB_DIR): | ||
64 | # 生成中间目标文件 | 65 | # 生成中间目标文件 |
65 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) | 66 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) |
66 | @echo -e "\e[33m""Building object $@""\e[0m" | 67 | @echo -e "\e[33m""Building object $@""\e[0m" |
68 | + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" | ||
67 | # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $(MODULE_LIBS) $< | 69 | # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $(MODULE_LIBS) $< |
68 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | 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,15 +46,11 @@ LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilte | ||
46 | 46 | ||
47 | 47 | ||
48 | CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings | 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 | # -DUNICODE -D_UNICODE | 49 | # -DUNICODE -D_UNICODE |
51 | 50 | ||
52 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden | 51 | NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden |
53 | NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 | 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 | CU_SOURCES:=$(notdir $(wildcard $(SRC_DIR)/*.cu)) | 54 | CU_SOURCES:=$(notdir $(wildcard $(SRC_DIR)/*.cu)) |
59 | CU_OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cu, %.o, $(CU_SOURCES))) | 55 | CU_OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cu, %.o, $(CU_SOURCES))) |
60 | 56 | ||
@@ -66,7 +62,8 @@ all:$(TARGET) | @@ -66,7 +62,8 @@ all:$(TARGET) | ||
66 | # 生成最终目标 | 62 | # 生成最终目标 |
67 | $(TARGET):$(OBJS) $(CU_OBJS) | $(LIB_DIR) | 63 | $(TARGET):$(OBJS) $(CU_OBJS) | $(LIB_DIR) |
68 | @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" | 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 | # 若没有lib目录则自动生成 | 68 | # 若没有lib目录则自动生成 |
72 | $(LIB_DIR): | 69 | $(LIB_DIR): |
@@ -74,11 +71,13 @@ $(LIB_DIR): | @@ -74,11 +71,13 @@ $(LIB_DIR): | ||
74 | 71 | ||
75 | # 生成中间目标文件 | 72 | # 生成中间目标文件 |
76 | $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) | 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 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< | 76 | @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< |
79 | 77 | ||
80 | $(OBJ_DIR)%.o:$(SRC_DIR)/%.cu | 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 | $(NVCC) $(NFLAGS) -o $@ $< | 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
@@ -8,4 +8,4 @@ | @@ -8,4 +8,4 @@ | ||
8 | const cudaError_t error_code = call;\ | 8 | const cudaError_t error_code = call;\ |
9 | if (cudaSuccess != error_code)\ | 9 | if (cudaSuccess != error_code)\ |
10 | LOG_ERROR("CUDA error, code: {} reason: {}", error_code, cudaGetErrorString(error_code));\ | 10 | LOG_ERROR("CUDA error, code: {} reason: {}", error_code, cudaGetErrorString(error_code));\ |
11 | -} | ||
12 | \ No newline at end of file | 11 | \ No newline at end of file |
12 | +} |
src/nvdecoder/jpegNPP.cpp-1 renamed to src/nvdec/jpegNPP.cpp-1