Commit 5686354a692a7987f1bb58f2dbe10f39dcbcbd1e

Authored by Hu Chunming
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 &quot;C&quot; {
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
1 1 #include "FFNvDecoderManager.h"
2 2  
3 3 #ifdef USE_NVDEC
4   -#include "../nvdecoder/FFNvDecoder.h"
  4 +#include "../nvdec/FFNvDecoder.h"
5 5 #include "../gb28181/FFGB28181Decoder.h"
6 6 #endif
7 7  
... ...
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
... ... @@ -8,4 +8,4 @@
8 8 const cudaError_t error_code = call;\
9 9 if (cudaSuccess != error_code)\
10 10 LOG_ERROR("CUDA error, code: {} reason: {}", error_code, cudaGetErrorString(error_code));\
11   -}
12 11 \ No newline at end of file
  12 +}
... ...
src/nvdecoder/jpegNPP.cpp-1 renamed to src/nvdec/jpegNPP.cpp-1