diff --git a/src/Makefile b/src/Makefile index 2b6c8d8..994ba2a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,11 +29,11 @@ LDFLAGS:= LIBS:= -L $(SPDLOG_ROOT)/lib -l:libspdlog.a \ # 各个模块 -MODULES:= nvdecoder gb28181 interface demo +MODULES:= nvdec gb28181 interface demo # 各个模块对应的库 -# MODULE_LIBS:=$(BUILD_DIR)/nvdecoder/lib/nvdecoder.a\ -# $(BUILD_DIR)/nvdecoder/lib/gb28181.a\ +# MODULE_LIBS:=$(BUILD_DIR)/nvdec/lib/nvdec.a\ +# $(BUILD_DIR)/nvdec/lib/gb28181.a\ # $(BUILD_DIR)/interface/lib/interface.a\ # 最终目标文件 @@ -46,7 +46,7 @@ all:$(TARGET) # 最终目标依赖关系 $(TARGET):FORCE | $(BIN_DIR) @for n in $(MODULES); do make -s -f $(TOP_DIR)/$$n/Makefile MODULE=$$n || exit "$$?"; done -# @echo -e "\e[32m""Linking executable $(TARGET)""\e[0m" + @echo -e "\e[32m""Linking executable $(TARGET)""\e[0m" #@$(LD) $(LDFLAGS) -o $@ $(MODULE_LIBS) $(LIBS) # 若没有bin目录则自动生成 diff --git a/src/Makefile.bak b/src/Makefile.bak index bddc482..af26493 100644 --- a/src/Makefile.bak +++ b/src/Makefile.bak @@ -38,7 +38,7 @@ CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 -SRCS:=$(wildcard $(SRC_ROOT)/nvdecoder/*.cpp) \ +SRCS:=$(wildcard $(SRC_ROOT)/nvdec/*.cpp) \ $(wildcard $(SRC_ROOT)/gb28181/*.cpp) \ $(wildcard $(SRC_ROOT)/dvpp/*.cpp) OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) @@ -52,7 +52,7 @@ $(TARGET):$(OBJS) $(CU_OBJS) $(XX) -o $@ $^ $(CFLAGS) $(LIBSPATH) $(LIBS) -Wwrite-strings rm -f *.o -# %.o:$(SRC_ROOT)/nvdecoder/%.cpp +# %.o:$(SRC_ROOT)/nvdec/%.cpp # $(XX) $(CFLAGS) -c $< %.o:$(SRC_ROOT)/gb28181/%.cpp diff --git a/src/demo/Makefile b/src/demo/Makefile index b19cdb2..e608a63 100644 --- a/src/demo/Makefile +++ b/src/demo/Makefile @@ -1,25 +1,41 @@ -XX = g++ +# 各项目录 +LIB_DIR:=$(BUILD_DIR)/$(MODULE)/lib +DEP_DIR:=$(BUILD_DIR)/$(MODULE)/.dep +OBJ_DIR:=$(BUILD_DIR)/$(MODULE)/obj +SRC_DIR:=$(TOP_DIR)/$(MODULE) +# 源文件以及中间目标文件和依赖文件 +SRCS:=$(notdir $(wildcard $(SRC_DIR)/*.cpp)) +OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cpp, %.o, $(SRCS))) +DEPS:=$(addprefix $(DEP_DIR)/, $(patsubst %.cpp, %.d,a $(SRCS))) -PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder +# 自动生成头文件依赖选项 +DEPFLAGS=-MT $@ -MMD -MP -MF $(DEP_DIR)/$*.d -CUDA_ROOT = /usr/local/cuda-11.1 +# 最终目标文件 +TARGET:=/mnt/data/cmhu/FFNvDecoder/bin/lib/demo + + + +PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder DEPEND_DIR = $(PROJECT_ROOT)/bin THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export -SRC_ROOT = $(PROJECT_ROOT)/src +CUDA_ROOT = /usr/local/cuda-11.1 -TARGET= $(PROJECT_ROOT)/bin/lib/demo +LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ + -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ + -L $(SPDLOG_ROOT) -l:libspdlog.a \ + -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a -DEFS = -DENABLE_DVPP_INTERFACE -INCLUDE= -I $(SRC_ROOT)/interface \ - -I $(SRC_ROOT)/dvpp \ - -I $(SRC_ROOT)/gb28181 \ - -I $(SRC_ROOT)/nvdecoder \ +INCLUDE= -I $(TOP_DIR)/interface \ + -I $(TOP_DIR)/nvdec \ + -I $(TOP_DIR)/gb28181 \ -I $(DEPEND_DIR)/include \ -I $(CUDA_ROOT)/include \ -I $(TOP_DIR)/common/inc \ @@ -29,51 +45,53 @@ INCLUDE= -I $(SRC_ROOT)/interface \ -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ -I $(JRTP_ROOT)/jthread/include/jthread -LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ +LIBSPATH= -L $(BUILD_DIR)/interface/lib -l:interface.a \ + -L $(BUILD_DIR)/nvdec/lib -l:nvdec.a \ + -L $(BUILD_DIR)/gb28181/lib -l:gb28181.a \ + -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ -L $(SPDLOG_ROOT) -l:libspdlog.a \ -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings + # -DUNICODE -D_UNICODE -# include_dir=-I/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/include - -# lib_dir=-L/usr/lib \ -# -L/usr/local/lib \ -# -L/usr/local/Ascend/driver/lib64 \ -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/atc/lib64\ -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64 \ -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/runtime/lib64/stub \ -# -L/usr/local/Ascend/ascend-toolkit/6.3.RC1.alpha001/lib64 \ -# -L/usr/local/Ascend/driver/lib64/driver - -# lib=-lacl_dvpp -lascendcl -lmmpa -lglog -lgflags -lpthread -lz -lacl_dvpp_mpi -lruntime -lascendalog -lc_sec -lmsprofiler -lgert -lge_executor -lge_common \ -# -lgraph -lascend_protobuf -lprofapi -lerror_manager -lexe_graph -lregister -lplatform -# LIBS= -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -# CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(include_dir) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl +# 默认最终目标 +.PHONY:all +all:$(TARGET) -CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl +# 生成最终目标 +$(TARGET): $(OBJS) | $(LIB_DIR) + @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" + @echo -e "$(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(LIBSPATH) $(MACROS)" + $(CXX) -o $@ $^ $(DEPFLAGS) $(CXXFLAGS) $(LIBSPATH) $(MACROS) -SRCS:=$(wildcard $(SRC_ROOT)/demo/*.cpp) -OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) +# 若没有lib目录则自动生成 +$(LIB_DIR): + @mkdir -p $@ -OBJ_ROOT = $(PROJECT_ROOT)/src/build -# DVPP_SRCS:=$(wildcard $(OBJ_ROOT)/dvpp/obj/*.o) -INTEFACE_SRCS:=$(wildcard $(OBJ_ROOT)/interface/obj/*.o) -NVDECODER_SRCS:=$(wildcard $(OBJ_ROOT)/nvdecoder/obj/*.o) -GB28181_SRCS:=$(wildcard $(OBJ_ROOT)/gb28181/obj/*.o) +# 生成中间目标文件 +$(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) + @echo -e "\e[33m""Building object $@""\e[0m" + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" + $(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< +# 若没有obj目录则自动生成 +$(OBJ_DIR): + @mkdir -p $@ -$(TARGET):$(OBJS) $(INTEFACE_SRCS) $(NVDECODER_SRCS) $(GB28181_SRCS) - rm -f $(TARGET) -# @echo -e "\e[33m""Building object $@""\e[0m" -# $(XX) -o $@ $^ $(CXXFLAGS) $(LIBS) $(lib_dir) $(lib) -Wwrite-strings - $(XX) -o $@ $^ $(CXXFLAGS) $(LIBSPATH) -Wwrite-strings - rm -f *.o +# 若没有.dep目录则自动生成 +$(DEP_DIR): + @mkdir -p $@ -%.o:$(SRC_ROOT)/demo/%.cpp - $(XX) $(CXXFLAGS) -c $< +# 依赖文件会在生成中间文件的时候自动生成,这里只是为了防止报错 +$(DEPS): +# 引入中间目标文件头文件依赖关系 +include $(wildcard $(DEPS)) +# 直接删除组件build目录 +.PHONY:clean clean: - rm -f *.o $(TARGET) \ No newline at end of file + @rm -rf $(BUILD_DIR)/$(MODULE) diff --git a/src/demo/Makefile.o.nvdec b/src/demo/Makefile.o.nvdec new file mode 100644 index 0000000..a40488b --- /dev/null +++ b/src/demo/Makefile.o.nvdec @@ -0,0 +1,61 @@ +XX = g++ + + +PROJECT_ROOT= /mnt/data/cmhu/FFNvDecoder + +CUDA_ROOT = /usr/local/cuda-11.1 + +DEPEND_DIR = $(PROJECT_ROOT)/bin +THIRDPARTY_ROOT = $(PROJECT_ROOT)/3rdparty +SPDLOG_ROOT = $(THIRDPARTY_ROOT)/spdlog-1.9.2/release +JRTP_ROOT = $(THIRDPARTY_ROOT)/jrtp_export + +SRC_ROOT = $(PROJECT_ROOT)/src + +TARGET= $(PROJECT_ROOT)/bin/lib/demo + +DEFS = -DENABLE_DVPP_INTERFACE + +INCLUDE= -I $(SRC_ROOT)/interface \ + -I $(SRC_ROOT)/dvpp \ + -I $(SRC_ROOT)/gb28181 \ + -I $(SRC_ROOT)/nvdec \ + -I $(DEPEND_DIR)/include \ + -I $(CUDA_ROOT)/include \ + -I $(TOP_DIR)/common/inc \ + -I $(TOP_DIR)/common/UtilNPP \ + -I $(TOP_DIR)/ \ + -I $(SPDLOG_ROOT)/include \ + -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ + -I $(JRTP_ROOT)/jthread/include/jthread + +LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ + -L $(CUDA_ROOT)/lib64 -lcuda -lcudart -lnvcuvid -lcurand -lcublas -lnvjpeg \ + -L $(SPDLOG_ROOT) -l:libspdlog.a \ + -L $(JRTP_ROOT)/jthread/lib -l:libjthread.a \ + -L $(JRTP_ROOT)/jrtplib/lib -l:libjrtp.a + + +CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl + +SRCS:=$(wildcard $(SRC_ROOT)/demo/*.cpp) +OBJS = $(patsubst %.cpp, %.o, $(notdir $(SRCS))) + +OBJ_ROOT = $(PROJECT_ROOT)/src/build +INTEFACE_SRCS:=$(wildcard $(OBJ_ROOT)/interface/obj/*.o) +NVDECODER_SRCS:=$(wildcard $(OBJ_ROOT)/nvdec/obj/*.o) +GB28181_SRCS:=$(wildcard $(OBJ_ROOT)/gb28181/obj/*.o) + + +$(TARGET):$(OBJS) $(INTEFACE_SRCS) $(NVDECODER_SRCS) $(GB28181_SRCS) + rm -f $(TARGET) + @echo -e "\e[33m""Building object $@""\e[0m" + $(XX) -o $@ $^ $(CXXFLAGS) $(LIBSPATH) -Wwrite-strings + rm -f *.o + +%.o:$(SRC_ROOT)/demo/%.cpp + $(XX) $(CXXFLAGS) -c $< + + +clean: + rm -f *.o $(TARGET) \ No newline at end of file diff --git a/src/demo/main_nvdec.cpp b/src/demo/main_nvdec.cpp index db2da61..227bc8a 100644 --- a/src/demo/main_nvdec.cpp +++ b/src/demo/main_nvdec.cpp @@ -1,9 +1,8 @@ #include "FFNvDecoderManager.h" #include -#include "cuda_kernels.h" - -#include "NvJpegEncoder.h" +// #include "cuda_kernels.h" +// #include "NvJpegEncoder.h" #include #include @@ -85,75 +84,75 @@ unsigned char *pHwRgb[2] = {nullptr, nullptr}; int sum1 = 0; int sum2 = 0; -cudaStream_t stream[2]; +// cudaStream_t stream[2]; string data_home = "/mnt/data/cmhu/tmp/"; -#define checkCudaErrors(S) do {CUresult status; \ - status = S; \ - if (status != CUDA_SUCCESS ) std::cout << __LINE__ <<" checkCudaErrors - status = " << status << std::endl; \ - } while (false) +// #define checkCudaErrors(S) do {CUresult status; \ +// status = S; \ +// if (status != CUDA_SUCCESS ) std::cout << __LINE__ <<" checkCudaErrors - status = " << status << std::endl; \ +// } while (false) -static void gpu_helper(int gpuid) -{ - cudaSetDevice(gpuid); +// static void gpu_helper(int gpuid) +// { +// cudaSetDevice(gpuid); - // int *dn; - // cudaMalloc((void **)&dn, 1 * sizeof(int)); +// // int *dn; +// // cudaMalloc((void **)&dn, 1 * sizeof(int)); - size_t free_byte; - size_t total_byte; +// size_t free_byte; +// size_t total_byte; - CUresult cuda_status = cuMemGetInfo(&free_byte, &total_byte); +// CUresult cuda_status = cuMemGetInfo(&free_byte, &total_byte); - const char *pStr = nullptr; - if (CUDA_SUCCESS != cuda_status) { - cuGetErrorString(cuda_status, &pStr); - printf("Error: cudaMemGetInfo fails, %s \n", pStr); - return; - } +// const char *pStr = nullptr; +// if (CUDA_SUCCESS != cuda_status) { +// cuGetErrorString(cuda_status, &pStr); +// printf("Error: cudaMemGetInfo fails, %s \n", pStr); +// return; +// } - double free_db = (double)free_byte; - double total_db = (double)total_byte; - double used_db_1 = (total_db - free_db) / 1024.0 / 1024.0; +// double free_db = (double)free_byte; +// double total_db = (double)total_byte; +// double used_db_1 = (total_db - free_db) / 1024.0 / 1024.0; - std::cout <<"显存已使用 " << used_db_1 << " MB\n"; +// std::cout <<"显存已使用 " << used_db_1 << " MB\n"; - // cudaFree(dn); -} +// // cudaFree(dn); +// } -int CheckCUDAProperty( int devId ) -{ - cuInit(0); +// int CheckCUDAProperty( int devId ) +// { +// cuInit(0); - CUdevice dev = devId; - size_t memSize = 0; - char devName[256] = {0}; - int major = 0, minor = 0; - CUresult rlt = CUDA_SUCCESS; +// CUdevice dev = devId; +// size_t memSize = 0; +// char devName[256] = {0}; +// int major = 0, minor = 0; +// CUresult rlt = CUDA_SUCCESS; - rlt = cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev); - checkCudaErrors( rlt ); +// rlt = cuDeviceGetAttribute(&major, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MAJOR, dev); +// checkCudaErrors( rlt ); - rlt = cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev); - checkCudaErrors( rlt ); +// rlt = cuDeviceGetAttribute(&minor, CU_DEVICE_ATTRIBUTE_COMPUTE_CAPABILITY_MINOR, dev); +// checkCudaErrors( rlt ); - rlt = cuDeviceGetName( devName, sizeof( devName ), dev ); - checkCudaErrors( rlt ); +// rlt = cuDeviceGetName( devName, sizeof( devName ), dev ); +// checkCudaErrors( rlt ); - printf( "Using GPU Device %d: %s has SM %d.%d compute capability\n", - dev, devName, major, minor ); +// printf( "Using GPU Device %d: %s has SM %d.%d compute capability\n", +// dev, devName, major, minor ); - rlt = cuDeviceTotalMem( &memSize, dev ); - checkCudaErrors( rlt ); +// rlt = cuDeviceTotalMem( &memSize, dev ); +// checkCudaErrors( rlt ); - printf( "Total amount of global memory: %4.4f MB\n", - (float)memSize / ( 1024 * 1024 ) ); +// printf( "Total amount of global memory: %4.4f MB\n", +// (float)memSize / ( 1024 * 1024 ) ); - return 0; -} +// return 0; +// } /** * 注意: gpuFrame 在解码器设置的显卡上,后续操作要十分注意这一点,尤其是多线程情况 @@ -378,7 +377,7 @@ int main(int argc, char* argv[]){ // av_log_set_callback(&logFF); - CheckCUDAProperty(atoi(gpuid)); + // CheckCUDAProperty(atoi(gpuid)); pthread_t m_decode_thread; pthread_create(&m_decode_thread,0, diff --git a/src/gb28181/FFGB28181Decoder.cpp b/src/gb28181/FFGB28181Decoder.cpp index a4ea5da..3ff9edd 100644 --- a/src/gb28181/FFGB28181Decoder.cpp +++ b/src/gb28181/FFGB28181Decoder.cpp @@ -2,7 +2,7 @@ #include #include "FFGB28181Decoder.h" -#include "../nvdecoder/FFCuContextManager.h" + extern "C" { #include "libavutil/avstring.h" @@ -17,8 +17,9 @@ extern "C" { #include "common_header.h" -#include "../nvdecoder/GpuRgbMemory.hpp" -#include "../nvdecoder/cuda_kernels.h" +#include "../nvdec/FFCuContextManager.h" +#include "../nvdec/GpuRgbMemory.hpp" +#include "../nvdec/cuda_kernels.h" #define ECLOSED 0 #define ECLOSING 1 diff --git a/src/gb28181/Makefile b/src/gb28181/Makefile index d15ead3..d154115 100644 --- a/src/gb28181/Makefile +++ b/src/gb28181/Makefile @@ -50,7 +50,8 @@ all:$(TARGET) # 生成最终目标 $(TARGET):$(OBJS) | $(LIB_DIR) @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" -# @ar -rc $@ $^ + @echo -e "ar -rc $@ $^" + @ar -rc $@ $^ # 若没有lib目录则自动生成 $(LIB_DIR): @@ -59,6 +60,7 @@ $(LIB_DIR): # 生成中间目标文件 $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) @echo -e "\e[33m""Building object $@""\e[0m" + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< # 若没有obj目录则自动生成 diff --git a/src/interface/FFNvDecoderManager.cpp b/src/interface/FFNvDecoderManager.cpp index b274b12..bd05873 100644 --- a/src/interface/FFNvDecoderManager.cpp +++ b/src/interface/FFNvDecoderManager.cpp @@ -1,7 +1,7 @@ #include "FFNvDecoderManager.h" #ifdef USE_NVDEC -#include "../nvdecoder/FFNvDecoder.h" +#include "../nvdec/FFNvDecoder.h" #include "../gb28181/FFGB28181Decoder.h" #endif diff --git a/src/interface/Makefile b/src/interface/Makefile index 2b9ab32..5b38ce4 100644 --- a/src/interface/Makefile +++ b/src/interface/Makefile @@ -30,7 +30,7 @@ INCLUDE= -I $(DEPEND_DIR)/include \ -I $(JRTP_ROOT)/jrtplib/include/jrtplib3 \ -I $(JRTP_ROOT)/jthread/include/jthread \ -I $(TOP_DIR)/src/gb28181 \ - -I $(TOP_DIR)/src/nvdecoder \ + -I $(TOP_DIR)/src/nvdec \ LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice \ -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 # 最终目标文件 TARGET:=$(LIB_DIR)/$(MODULE).a -# MODULE_LIBS:=$(BUILD_DIR)/nvdecoder/lib/nvdecoder.a \ +# MODULE_LIBS:=$(BUILD_DIR)/nvdec/lib/nvdec.a \ # $(BUILD_DIR)/gb28181/lib/gb28181.a\ # 默认最终目标 @@ -54,8 +54,9 @@ all:$(TARGET) # 生成最终目标 $(TARGET):$(OBJS) | $(LIB_DIR) - # @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" -# @ar -rc $@ $^ + @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" + @echo -e "ar -rc $@ $^" + @ar -rc $@ $^ # 若没有lib目录则自动生成 $(LIB_DIR): @@ -64,6 +65,7 @@ $(LIB_DIR): # 生成中间目标文件 $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) @echo -e "\e[33m""Building object $@""\e[0m" + @echo -e "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" # @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $(MODULE_LIBS) $< @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< diff --git a/src/nvdecoder/DrawImageOnGPU.cu b/src/nvdec/DrawImageOnGPU.cu index 1fa99dc..1fa99dc 100644 --- a/src/nvdecoder/DrawImageOnGPU.cu +++ b/src/nvdec/DrawImageOnGPU.cu diff --git a/src/nvdecoder/FFCuContextManager.cpp b/src/nvdec/FFCuContextManager.cpp index 382c4d8..382c4d8 100644 --- a/src/nvdecoder/FFCuContextManager.cpp +++ b/src/nvdec/FFCuContextManager.cpp diff --git a/src/nvdecoder/FFCuContextManager.h b/src/nvdec/FFCuContextManager.h index 758167c..758167c 100644 --- a/src/nvdecoder/FFCuContextManager.h +++ b/src/nvdec/FFCuContextManager.h diff --git a/src/nvdecoder/FFNvDecoder.cpp b/src/nvdec/FFNvDecoder.cpp index e64e2a5..e64e2a5 100644 --- a/src/nvdecoder/FFNvDecoder.cpp +++ b/src/nvdec/FFNvDecoder.cpp diff --git a/src/nvdecoder/FFNvDecoder.h b/src/nvdec/FFNvDecoder.h index 4784ab6..4784ab6 100644 --- a/src/nvdecoder/FFNvDecoder.h +++ b/src/nvdec/FFNvDecoder.h diff --git a/src/nvdecoder/GpuRgbMemory.hpp b/src/nvdec/GpuRgbMemory.hpp index 35eac65..35eac65 100644 --- a/src/nvdecoder/GpuRgbMemory.hpp +++ b/src/nvdec/GpuRgbMemory.hpp diff --git a/src/nvdecoder/ImageSaveGPU.cpp b/src/nvdec/ImageSaveGPU.cpp index dde9b64..dde9b64 100644 --- a/src/nvdecoder/ImageSaveGPU.cpp +++ b/src/nvdec/ImageSaveGPU.cpp diff --git a/src/nvdecoder/ImageSaveGPU.h b/src/nvdec/ImageSaveGPU.h index 272a6d2..272a6d2 100644 --- a/src/nvdecoder/ImageSaveGPU.h +++ b/src/nvdec/ImageSaveGPU.h diff --git a/src/nvdecoder/Makefile b/src/nvdec/Makefile index 8b6ceff..1b49ca4 100644 --- a/src/nvdecoder/Makefile +++ b/src/nvdec/Makefile @@ -46,15 +46,11 @@ LIBSPATH= -L $(DEPEND_DIR)/lib -lavformat -lavcodec -lswscale -lavutil -lavfilte CXXFLAGS= -g -O0 -fPIC $(INCLUDE) $(DEFS) -lpthread -lrt -lz -fexceptions -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl -Wwrite-strings -# CFLAGS= -g -fPIC -O0 $(INCLUDE) -pthread -lrt -lz -std=c++11 -fvisibility=hidden -Wl,-Bsymbolic -ldl # -DUNICODE -D_UNICODE NFLAGS_LIB=-g -c -shared -Xcompiler -fPIC -Xcompiler -fvisibility=hidden NFLAGS = $(NFLAGS_LIB) $(INCLUDE) -std=c++11 -# CU_SOURCES = $(wildcard ${SRC_DIR}/*.cu) -# CU_OBJS = $(patsubst %.cu, %.o, $(notdir $(CU_SOURCES))) - CU_SOURCES:=$(notdir $(wildcard $(SRC_DIR)/*.cu)) CU_OBJS:=$(addprefix $(OBJ_DIR)/, $(patsubst %.cu, %.o, $(CU_SOURCES))) @@ -66,7 +62,8 @@ all:$(TARGET) # 生成最终目标 $(TARGET):$(OBJS) $(CU_OBJS) | $(LIB_DIR) @echo -e "\e[32m""Linking static library $(TARGET)""\e[0m" -# @ar -rc $@ $^ + @echo -e "ar -rc $@ $^" + @ar -rc $@ $^ # 若没有lib目录则自动生成 $(LIB_DIR): @@ -74,11 +71,13 @@ $(LIB_DIR): # 生成中间目标文件 $(OBJ_DIR)/%.o:$(SRC_DIR)/%.cpp $(DEP_DIR)/%.d | $(OBJ_DIR) $(DEP_DIR) -# @echo -e "\e[33m""Building object $@""\e[0m" + @echo -e "\e[33m""Building object $@""\e[0m" + @echo "$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $<" @$(CXX) -c $(DEPFLAGS) $(CXXFLAGS) $(INCS) $(LIBSPATH) $(MACROS) -o $@ $< $(OBJ_DIR)%.o:$(SRC_DIR)/%.cu - @echo "#######################CU_OBJS:$@###############" + @echo -e "\e[33m""Building object $@""\e[0m" + @echo "$(NVCC) $(NFLAGS) -o $@ $<" $(NVCC) $(NFLAGS) -o $@ $< diff --git a/src/nvdecoder/NV12ToRGB.cu b/src/nvdec/NV12ToRGB.cu index 68e54ac..68e54ac 100644 --- a/src/nvdecoder/NV12ToRGB.cu +++ b/src/nvdec/NV12ToRGB.cu diff --git a/src/nvdecoder/NvDecoderApi.cpp b/src/nvdec/NvDecoderApi.cpp index efb63cd..efb63cd 100644 --- a/src/nvdecoder/NvDecoderApi.cpp +++ b/src/nvdec/NvDecoderApi.cpp diff --git a/src/nvdecoder/NvDecoderApi.h b/src/nvdec/NvDecoderApi.h index f742dd8..f742dd8 100644 --- a/src/nvdecoder/NvDecoderApi.h +++ b/src/nvdec/NvDecoderApi.h diff --git a/src/nvdecoder/NvJpegEncoder.cpp b/src/nvdec/NvJpegEncoder.cpp index 7ee0727..7ee0727 100644 --- a/src/nvdecoder/NvJpegEncoder.cpp +++ b/src/nvdec/NvJpegEncoder.cpp diff --git a/src/nvdecoder/NvJpegEncoder.h b/src/nvdec/NvJpegEncoder.h index 3c27ba8..3c27ba8 100644 --- a/src/nvdecoder/NvJpegEncoder.h +++ b/src/nvdec/NvJpegEncoder.h diff --git a/src/nvdecoder/PartMemCopy.cu b/src/nvdec/PartMemCopy.cu index 396765b..396765b 100644 --- a/src/nvdecoder/PartMemCopy.cu +++ b/src/nvdec/PartMemCopy.cu diff --git a/src/nvdecoder/RGB2YUV.cu b/src/nvdec/RGB2YUV.cu index 7202c3a..7202c3a 100644 --- a/src/nvdecoder/RGB2YUV.cu +++ b/src/nvdec/RGB2YUV.cu diff --git a/src/nvdecoder/ResizeImage.cu b/src/nvdec/ResizeImage.cu index fdc6961..fdc6961 100644 --- a/src/nvdecoder/ResizeImage.cu +++ b/src/nvdec/ResizeImage.cu diff --git a/src/nvdecoder/common_header.h b/src/nvdec/common_header.h index cf45c91..cf45c91 100644 --- a/src/nvdecoder/common_header.h +++ b/src/nvdec/common_header.h diff --git a/src/nvdecoder/cuda_kernels.h b/src/nvdec/cuda_kernels.h index cd1eb00..cd1eb00 100644 --- a/src/nvdecoder/cuda_kernels.h +++ b/src/nvdec/cuda_kernels.h diff --git a/src/nvdecoder/define.hpp b/src/nvdec/define.hpp index 2eaafe0..ed20540 100644 --- a/src/nvdecoder/define.hpp +++ b/src/nvdec/define.hpp @@ -8,4 +8,4 @@ const cudaError_t error_code = call;\ if (cudaSuccess != error_code)\ LOG_ERROR("CUDA error, code: {} reason: {}", error_code, cudaGetErrorString(error_code));\ -} \ No newline at end of file +} diff --git a/src/nvdecoder/jpegNPP.cpp-1 b/src/nvdec/jpegNPP.cpp-1 index f0bf2e6..f0bf2e6 100644 --- a/src/nvdecoder/jpegNPP.cpp-1 +++ b/src/nvdec/jpegNPP.cpp-1