소스 검색

2024年9月11日: ZJZGJ-ckq

Casper 1 년 전
부모
커밋
366b98e022
54개의 변경된 파일2244개의 추가작업 그리고 7002개의 파일을 삭제
  1. 0 486
      ZJ_PRO_DMF_JETSON/.vscode/gsml_capturer_ori.cpp
  2. 0 76
      ZJ_PRO_DMF_JETSON/.vscode/gsml_capturer_ori.h
  3. 0 243
      ZJ_PRO_DMF_JETSON/.vscode/jetson_buffer.cpp
  4. 0 81
      ZJ_PRO_DMF_JETSON/.vscode/jetson_buffer.h
  5. 0 26
      ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder.cpp
  6. 0 34
      ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder.h
  7. 0 38
      ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder_pool.cpp
  8. 0 29
      ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder_pool.h
  9. 0 16
      ZJ_PRO_DMF_JETSON/.vscode/jetson_util.h
  10. 0 614
      ZJ_PRO_DMF_JETSON/.vscode/jetson_v4l2_capturer.cpp
  11. 0 83
      ZJ_PRO_DMF_JETSON/.vscode/jetson_v4l2_capturer.h
  12. 0 455
      ZJ_PRO_DMF_JETSON/.vscode/jetson_video_decoder.cpp
  13. 0 67
      ZJ_PRO_DMF_JETSON/.vscode/jetson_video_decoder.h
  14. 0 85
      ZJ_PRO_DMF_JETSON/.vscode/settings.json
  15. 0 5
      ZJ_PRO_DMF_JETSON/EgoSystem/.vscode/extensions.json
  16. 5 5
      ZJ_PRO_DMF_JETSON/EgoSystem/CMakeLists.txt
  17. 18 16
      ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/DependInfo.cmake
  18. 16 13
      ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/cmake_clean.cmake
  19. 0 0
      ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/link.txt
  20. 1 0
      ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/Progress/count.txt
  21. 1 0
      ZJ_PRO_DMF_JETSON/EgoSystem/build/config.json
  22. 0 790
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/Linux-Clang-Debug/isenseconfig/iconfig.json
  23. 0 1
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json
  24. 0 369
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeCache.txt
  25. 0 72
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeCCompiler.cmake
  26. 0 83
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeCXXCompiler.cmake
  27. 0 6
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeRCCompiler.cmake
  28. 0 15
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeSystem.cmake
  29. 0 868
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CompilerIdC/CMakeCCompilerId.c
  30. 0 857
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp
  31. 0 1
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h
  32. 0 2
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c
  33. 0 1
      ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/VSInheritEnvironments.txt
  34. 0 5
      ZJ_PRO_DMF_JETSON/common/.vscode/extensions.json
  35. 0 5
      ZJ_PRO_DMF_JETSON/webrtcinterop/.vscode/extensions.json
  36. 1 12
      ZJ_PRO_DMF_JETSON/webrtcinterop/CMakeLists.txt
  37. 1 1
      ZJ_PRO_DMF_JETSON/webrtcinterop/api.cpp
  38. 233 0
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/cmakeFiles-v1-963856cbc2b1048e1659.json
  39. 0 1055
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/cmakeFiles-v1-e026c05af5bcfde89796.json
  40. 1 1
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/codemodel-v2-1feb9bbd2d99be451ed4.json
  41. 4 4
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/index-2024-09-11T06-13-32-0221.json
  42. 51 27
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/target-webrtcinterop-5cc1b81e9355cd6f2355.json
  43. 0 79
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/Makefile.cmake
  44. 16 13
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/DependInfo.cmake
  45. 16 13
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/cmake_clean.cmake
  46. 0 0
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/link.txt
  47. BIN
      ZJ_PRO_DMF_JETSON/webrtcinterop/build/libwebrtcinterop.a
  48. 415 0
      ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegDecoder.cpp
  49. 299 0
      ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegEncoder.cpp
  50. 459 70
      ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoDecoder.cpp
  51. 701 0
      ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVulkanRenderer.cpp
  52. 5 2
      ZJ_PRO_DMF_JETSON/webrtcinterop/jetson_nv_encoder.cpp
  53. 1 83
      ZJ_PRO_DMF_JETSON/webrtcinterop/sri_build_encoder_factory.cpp
  54. 0 195
      ZJ_PRO_DMF_JETSON/webrtcinterop/webrtcinterop.vcxproj

+ 0 - 486
ZJ_PRO_DMF_JETSON/.vscode/gsml_capturer_ori.cpp

@@ -1,486 +0,0 @@
-#include "pch.h"
-#include "../common/comm.h"
-#include "./include/api.h"
-
-#include "lock.h"
-#include <iostream>
-#include <linux/videodev2.h>
-#include <poll.h>
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string>
-#include "capture_op.h"
-#include "gsml_capturer.h"
-
-rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> OpenGSMLCapture(CaptureOp* op) 
-{
-	 auto  video_capture=std::make_unique<GSMLCapturer>(op);
-	 video_capture->Start(); 
-     rtc::scoped_refptr<GSMLTrackSource> video_source = GSMLTrackSource::Create(std::move(video_capture));
-     return video_source;
-}
-
-GSMLCapturer::GSMLCapturer(CaptureOp* lhs):_op(lhs) 
-{
-	 
-}
-void GSMLCapturer::Start()
-{
-
-	_thread = std::thread(std::bind(&GSMLCapturer::Run, this));
-}
-
-//视频的捕获
-bool GSMLCapturer::open_cam()
-{
-
-    // int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
-     _op->_ctx0=(context_t *)malloc(sizeof(context_t));
-    //for(int i=0;i<count;i++)
-	{
-        context_t * p=_op->_ctx0;
-         
-	    p->cam_fd=-1;
-	 
-         p->cam_pixfmt = V4L2_PIX_FMT_YUYV;
-         p->cam_w = 1280;
-         p->cam_h = 720;
-    //  p->frame = 0;
-         p->g_buff = NULL;
-         p->capture_dmabuf = false;  // opencv display v4l2 can't be true
-         p->fps = 30;
-
-         p->enable_verbose = false;
-
-        std::string devname="/dev/video" + std::to_string(_op->GetIndex());
-       // std::cout<<"设备:"<<devname<<std::endl;
-        //ctx.cam_devname=devname+std::to_string();
-         p->cam_fd = open(devname.c_str(), O_RDWR);  //打开视频设备
-        if( p->cam_fd==-1) 
-        {
-             ERROR_RETURN("Failed to open camera device %s: %s (%d)",
-                devname.c_str(), strerror(errno), errno);
-        }
-
-        struct v4l2_format fmt;
-        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;  
-        fmt.fmt.pix.width =  p->cam_w;
-        fmt.fmt.pix.height =  p->cam_h;
-        fmt.fmt.pix.pixelformat =  p->cam_pixfmt;    
-        fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;   
-        if (ioctl( p->cam_fd, VIDIOC_S_FMT, &fmt) < 0)   
-            ERROR_RETURN("Failed to set camera output format: %s (%d)",
-                    strerror(errno), errno);
-        /* Get the real format in case the desired is not supported */
-        memset(&fmt, 0, sizeof fmt);
-        fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        if (ioctl( p->cam_fd, VIDIOC_G_FMT, &fmt) < 0)    
-            ERROR_RETURN("Failed to get camera output format: %s (%d)",
-                    strerror(errno), errno);
-        if (fmt.fmt.pix.width !=  p->cam_w ||
-                fmt.fmt.pix.height !=  p->cam_h ||
-                fmt.fmt.pix.pixelformat !=  p->cam_pixfmt)   
-        {
-            WARN("The desired format is not supported");
-             p->cam_w = fmt.fmt.pix.width;
-             p->cam_h = fmt.fmt.pix.height;
-             p->cam_pixfmt =fmt.fmt.pix.pixelformat;
-        }
-
-        struct v4l2_streamparm streamparm;  
-        memset (&streamparm, 0x00, sizeof (struct v4l2_streamparm));
-        streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        /*
-        streamparm.parm.capture.timeperframe.numerator = 1;
-        streamparm.parm.capture.timeperframe.denominator = 3;
-        streamparm.parm.output.timeperframe.numerator = 1;
-        streamparm.parm.output.timeperframe.denominator = 3;
-        */
-        ioctl ( p->cam_fd, VIDIOC_G_PARM, &streamparm);   
-
-        printf(">>: Frame rate: %u/%u\n",streamparm.parm.capture.timeperframe.numerator,streamparm.parm.capture.timeperframe.denominator);
-
-        INFO("Camera ouput format: (%d x %d)  stride: %d, imagesize: %d, frate: %u / %u",
-                fmt.fmt.pix.width,
-                fmt.fmt.pix.height,
-                fmt.fmt.pix.bytesperline,
-                fmt.fmt.pix.sizeimage,
-                streamparm.parm.capture.timeperframe.denominator,
-                streamparm.parm.capture.timeperframe.numerator);
-    }
-        
-    return true;
-}
-void GSMLCapturer::Run()
-{
-    if(!open_cam()) return;
-	prepare_buffer();
-	start_streams();
-	_run=true;
-	struct pollfd fds[1];
-   
-	struct v4l2_buffer v4l2_buf;
-
-    long long _source = 0,_dst = 0;
-
-	while(_run)
-	{	
-		int cam_fd=-1;
-        context_t * p=nullptr;
-		//if((_op->GetType()!=RenderPosition::FRONT&&_op->GetType()!=RenderPosition::BACK)||_op->IsForward())
-        if(_op->IsForward())
-        //if(_op->GetType()!=RenderPosition::ALL)
-		{
-			cam_fd=_op->_ctx0->cam_fd;
-			p=_op->_ctx0; 
-		}
-        else{
-                cam_fd=_op->_ctx1->cam_fd;
-		     	p=_op->_ctx1; 
-            
-        }
-         
-        //assert(p!=nullptr);
-		/*
-        else
-		{
-            if(_op->IsForward())
-			 {
-                cam_fd=_ctx[0].cam_fd;
-                p=&_ctx[0]; 
-             }   
-            else 
-            {
-                cam_fd=_ctx[1].cam_fd;
-                p=&_ctx[1];
-            }
-		}
-        */
-		fds[0].fd = cam_fd;
-    	fds[0].events = POLLIN;
-		if(poll(fds, 1, 5000) > 0)
-		{
-		
-			if (fds[0].revents & POLLIN)
-            {
-			
-				/* Dequeue a camera buff */
-				memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-              
-				v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-				if (p->capture_dmabuf)
-					v4l2_buf.memory = V4L2_MEMORY_DMABUF;
-				else
-					v4l2_buf.memory = V4L2_MEMORY_MMAP;
-				
-				if (ioctl(cam_fd, VIDIOC_DQBUF, &v4l2_buf) < 0)
-					printf("Failed to dequeue camera buff: %s (%d)",
-							strerror(errno), errno);
-                
-                if(_op->GetType()==RenderPosition::FRONT)
-                {
-                    _source = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
-                    //printf("encode delay:%lld----frame:%ld\r\n", _source);
-                } 
-
-				//_ctx.frame++;
-				rtc::scoped_refptr<webrtc::I420Buffer> buffer=webrtc::I420Buffer::Create(p->cam_w,p->cam_h);
-				// rtc::scoped_refptr<webrtc::I420Buffer> buffer=webrtc::I420Buffer::Create(800,600);
-                // std::cout << v4l2_buf.index << std::endl;
-				const int conversionResult = libyuv::ConvertToI420((uint8_t*)p->g_buff[v4l2_buf.index].start, 0,
-				buffer->MutableDataY(), buffer->StrideY(),
-				buffer->MutableDataU(), buffer->StrideU(),
-				buffer->MutableDataV(), buffer->StrideV(),
-				0, 0,
-				p->cam_w,p->cam_h,
-				buffer->width(), buffer->height(),
-				libyuv::kRotate0, libyuv::FOURCC_YUYV);
-
-
-                // // 假设 p->g_buff[v4l2_buf.index].start 是 YUYV 格式的源数据
-                // unsigned char* src = static_cast<unsigned char*>(p->g_buff[v4l2_buf.index].start);
-                // int width = p->cam_w;
-                // int height = p->cam_h;
-
-                // // 创建 I420Buffer
-                // rtc::scoped_refptr<webrtc::I420Buffer> buffer = webrtc::I420Buffer::Create(
-                //     width, height,
-                //     buffer->StrideY(), // Y plane stride
-                //     buffer->StrideU(), // U plane stride
-                //     buffer->StrideV()  // V plane stride
-                // );
-
-                // // 使用 CUDA 进行 YUYV 到 I420 的转换
-                // gpuConvertYUYVtoI420(
-                //     src,
-                //     buffer->MutableDataY(), buffer->MutableDataU(), buffer->MutableDataV(),
-                //     width, height,
-                //     buffer->StrideY(), buffer->StrideU()
-                // );
-
-                // // 创建 VideoFrame 并传递给 _broadcaster
-                // webrtc::VideoFrame frame(buffer, webrtc::kVideoRotation_0, rtc::TimeNanos());
-                // _broadcaster.OnFrame(frame);
-
-                
-
-				int width = p->cam_w;
-				int height = p->cam_h;
-
-                
-				if (conversionResult >= 0)
-				{
-					webrtc::VideoFrame videoFrame(buffer, webrtc::VideoRotation::kVideoRotation_0, rtc::TimeNanos());
-					if ((p->cam_w == 0) && (p->cam_h == 0)) {
-						_broadcaster.OnFrame(videoFrame);
-
-					}
-					else
-					{
-
-						if (height == 0) {
-							height = (videoFrame.height() * width) / videoFrame.width();
-						}
-						else if (width == 0) {
-							width = (videoFrame.width() * height) / videoFrame.height();
-						}
-						int stride_y = width;
-						int stride_uv = (width + 1) / 2;
-						rtc::scoped_refptr<webrtc::I420Buffer> scaled_buffer = webrtc::I420Buffer::Create(width, height, stride_y, stride_uv, stride_uv);
-						scaled_buffer->ScaleFrom(*videoFrame.video_frame_buffer()->ToI420());
-						webrtc::VideoFrame frame = webrtc::VideoFrame(scaled_buffer, webrtc::kVideoRotation_0, rtc::TimeNanos());
-
-						_broadcaster.OnFrame(frame);  
-					}
-				}
-
-                if(_op->GetType()==RenderPosition::FRONT)
-                {
-                     _dst = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
-                     //printf("encode delay:%lld\r\n",_dst - _source);
-                }
-              
-                 if (ioctl(p->cam_fd, VIDIOC_QBUF, &v4l2_buf))
-                      printf("Failed to queue camera buffers: %s (%d)",
-                        strerror(errno), errno);
-
-                
-			}
-		}
-	//std::this_thread::sleep_for(std::chrono::milliseconds(30));
-	}
-	stop_streams();
-    close_cam();
-
-
-}
-void GSMLCapturer::Destroy() {
-	Stop();
-}
-
-void GSMLCapturer::AddOrUpdateSink(
-	rtc::VideoSinkInterface<webrtc::VideoFrame>* sink,
-	const rtc::VideoSinkWants& wants) {
-	_broadcaster.AddOrUpdateSink(sink, wants);
-}
-
- void GSMLCapturer::RemoveSink(rtc::VideoSinkInterface<webrtc::VideoFrame>* sink)
-{
-	_broadcaster.RemoveSink(sink);
-}
-bool GSMLCapturer::prepare_buffer()
-{
-   //int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
-   //for(int32_t i=0;i<count;i++)
-   { 
-       context_t * p=_op->_ctx0;
-      p->g_buff = (nv_buffer *)malloc(V4L2_BUFFERS_NUM * sizeof(nv_buffer));
-    if ( p->g_buff == NULL)
-        ERROR_RETURN("Failed to allocate global buffer context");
-
-    if ( p->capture_dmabuf) {
-        if (!request_camera_buff(p))
-            ERROR_RETURN("Failed to set up camera buff");
-    } else {
-        if (!request_camera_buff_mmap(p))
-            ERROR_RETURN("Failed to set up camera buff");
-    }
-     INFO("Succeed in preparing stream buffers");
-   }
-   
-    return true;
-}
-bool GSMLCapturer::request_camera_buff( context_t * p)
-{
-    
-  //  for(int32_t i=0;i<count;i++)
-    { 
-    //    context_t * p=&_ctx[i];
-        struct v4l2_requestbuffers rb;
-        memset(&rb, 0, sizeof(rb));
-        rb.count = V4L2_BUFFERS_NUM;
-        rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        rb.memory = V4L2_MEMORY_DMABUF;
-        if (ioctl( p->cam_fd, VIDIOC_REQBUFS, &rb) < 0)
-            ERROR_RETURN("Failed to request v4l2 buffers: %s (%d)",
-                    strerror(errno), errno);
-        if (rb.count != V4L2_BUFFERS_NUM)
-            ERROR_RETURN("V4l2 buffer number is not as desired");
-
-        for (unsigned int index = 0; index < V4L2_BUFFERS_NUM; index++)
-        {
-            struct v4l2_buffer buf;
-
-            /* Query camera v4l2 buf length */
-            memset(&buf, 0, sizeof buf);
-            buf.index = index;
-            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-            buf.memory = V4L2_MEMORY_DMABUF;
-
-            if (ioctl( p->cam_fd, VIDIOC_QUERYBUF, &buf) < 0)
-                ERROR_RETURN("Failed to query buff: %s (%d)",
-                        strerror(errno), errno);
-
-            /* TODO: add support for multi-planer
-            Enqueue empty v4l2 buff into camera capture plane */
-            buf.m.fd = (unsigned long) p->g_buff[index].dmabuff_fd;
-            if (buf.length !=  p->g_buff[index].size)
-            {
-                WARN("Camera v4l2 buf length is not expected");
-                p->g_buff[index].size = buf.length;
-            }
-
-            if (ioctl( p->cam_fd, VIDIOC_QBUF, &buf) < 0)
-                ERROR_RETURN("Failed to enqueue buffers: %s (%d)",
-                        strerror(errno), errno);
-        } 
-    }   
-    return true;
-}
-
-bool GSMLCapturer::stop_streams()
-{
-   enum v4l2_buf_type type;
-    //int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
-    //for(int32_t i=0;i<count;i++)
-    { 
-        context_t * p=_op->_ctx0;
-          for (unsigned int index = 0; index < V4L2_BUFFERS_NUM; index++)
-           {
-               
-             if(munmap(p->g_buff[index].start,p->g_buff[index].size)==-1)
-             {
-                ERROR_RETURN("munmap failed: %s (%d)", strerror(errno), errno);
-             }
-           }
-    /* Stop v4l2 streaming */
-        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        if (ioctl( p->cam_fd, VIDIOC_STREAMOFF, &type))
-            ERROR_RETURN("Failed to stop streaming: %s (%d)",
-                    strerror(errno), errno);
-
-        INFO("Camera video streaming off ...");
-     
-      
-    }
-    return true;
-}
-
-bool GSMLCapturer::start_streams()
-{
-	  enum v4l2_buf_type type;  //是否可以注释??
- //   int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
-   // for(int32_t i=0;i<count;i++)
-    { 
-        context_t * p=_op->_ctx0;
-       
-    /* Start v4l2 streaming */
-        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        if (ioctl( p->cam_fd, VIDIOC_STREAMON, &type) < 0)  
-            ERROR_RETURN("Failed to start streaming: %s (%d)",
-                    strerror(errno), errno);
-	 usleep(200);
-     INFO("Camera video streaming on ...");
-    }
-  
-    return true;
-} 
-
-bool GSMLCapturer::request_camera_buff_mmap(context_t * p)
-{
-    struct v4l2_requestbuffers rb;
- //   int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
- //   for(int32_t i=0;i<count;i++)
-    { 
-      
-        memset(&rb, 0, sizeof(rb));
-        rb.count = V4L2_BUFFERS_NUM;
-        rb.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        rb.memory = V4L2_MEMORY_MMAP;
-        if (ioctl( p->cam_fd, VIDIOC_REQBUFS, &rb) < 0)
-            ERROR_RETURN("Failed to request v4l2 buffers: %s (%d)",
-                    strerror(errno), errno);
-        if (rb.count != V4L2_BUFFERS_NUM)
-            ERROR_RETURN("V4l2 buffer number is not as desired");
-
-        for (unsigned int index = 0; index < V4L2_BUFFERS_NUM; index++)
-        {
-            struct v4l2_buffer buf;
-
-            /* Query camera v4l2 buf length */
-            memset(&buf, 0, sizeof buf);
-            buf.index = index;
-            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
-            buf.memory = V4L2_MEMORY_MMAP;
-            if (ioctl(p->cam_fd, VIDIOC_QUERYBUF, &buf) < 0)
-                ERROR_RETURN("Failed to query buff: %s (%d)",
-                        strerror(errno), errno);
-
-            p->g_buff[index].size = buf.length;
-            p->g_buff[index].start = (unsigned char *)
-                mmap (NULL /* start anywhere */,
-                        buf.length,
-                        PROT_READ | PROT_WRITE /* required */,
-                        MAP_SHARED /* recommended */,
-                        p->cam_fd, buf.m.offset);
-            if (MAP_FAILED ==  p->g_buff[index].start)
-                ERROR_RETURN("Failed to map buffers");
-
-            if (ioctl( p->cam_fd, VIDIOC_QBUF, &buf) < 0)
-                ERROR_RETURN("Failed to enqueue buffers: %s (%d)",
-                        strerror(errno), errno);
-        }
-    }    
-    return true;
-}
-void GSMLCapturer::close_cam()
-{
-   //   int32_t count=_op->GetType()==RenderPosition::FRONT_BACK?2:1;
-    //for(int32_t i=0;i<count;i++)
-    { 
-        context_t * p=_op->_ctx0;
-         
-        if(p->g_buff!=nullptr)
-          {
-           
-              free(p->g_buff);
-              p->g_buff = nullptr;
-          } 
-        if(p->cam_fd>0)
-           close(p->cam_fd);
-        
-    }
-    free(_op->_ctx0);
-}
-void GSMLCapturer::Stop()
-{
-    _run=false;
-    //if(_thread.joinable())
-        _thread.join();
-}
-
-

+ 0 - 76
ZJ_PRO_DMF_JETSON/.vscode/gsml_capturer_ori.h

@@ -1,76 +0,0 @@
-#pragma once
-#include <pc/video_track_source.h>
-#include <thread>
-#include <string>
-#include "media/base/video_broadcaster.h"
-#include "yuyvtoi420.cuh"
-#define ERROR_RETURN(fmt, ...) \
-    do { \
-        printf("ERROR: %s(): (line:%d) " fmt "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__); \
-        return false; \
-    } while(0)
-#define INFO(fmt, ...) \
-    if (p->enable_verbose) \
-        printf("INFO: %s(): (line:%d) " fmt "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__);
-
-#define WARN(fmt, ...) \
-        printf("WARN: %s(): (line:%d) " fmt "\n", __FUNCTION__, __LINE__, ##__VA_ARGS__);
-
-#define V4L2_BUFFERS_NUM    4
-class CaptureOp;
- 
-rtc::scoped_refptr<webrtc::VideoTrackSourceInterface> OpenGSMLCapture(CaptureOp* op) ;
-
- 
-class GSMLCapturer : public rtc::VideoSourceInterface<webrtc::VideoFrame>
-{
-public:
-	GSMLCapturer(CaptureOp* lhs);
-	virtual ~GSMLCapturer()=default;
-	void Start();
-	void Run();
-	void Stop();
-
-
-	void AddOrUpdateSink(rtc::VideoSinkInterface<webrtc::VideoFrame>* sink,
-		const rtc::VideoSinkWants& wants) override;
-	void RemoveSink(rtc::VideoSinkInterface<webrtc::VideoFrame>* sink) override;
-	 
-private:
-   bool open_cam();
-   void close_cam();
-   bool prepare_buffer();
-   bool start_streams();
-   bool stop_streams();
-   bool request_camera_buff(context_t * p);
-   bool request_camera_buff_mmap(context_t * p);
-
-private:
-	void Destroy();
-private:
-	rtc::VideoBroadcaster   _broadcaster;
-	std::thread _thread;
-	bool _run;
-	CaptureOp* _op;
-
-};
-
-class GSMLTrackSource : public webrtc::VideoTrackSource {
-public:
-	static rtc::scoped_refptr<GSMLTrackSource> Create(std::unique_ptr<GSMLCapturer> capturer) {
-		return new rtc::RefCountedObject<GSMLTrackSource>(std::move(capturer));
-	}
-
-protected:
-	explicit GSMLTrackSource(std::unique_ptr<GSMLCapturer> capturer)
-		: VideoTrackSource(/*remote=*/false), capturer_(std::move(capturer)) {}
-    ~GSMLTrackSource()
-    {
-       capturer_->Stop();
-    }
-private:
-	rtc::VideoSourceInterface<webrtc::VideoFrame>* source() override {
-		return capturer_.get();
-	}
-	std::unique_ptr<GSMLCapturer> capturer_;
-};

+ 0 - 243
ZJ_PRO_DMF_JETSON/.vscode/jetson_buffer.cpp

@@ -1,243 +0,0 @@
-#include "jetson_buffer.h"
-
-// Linux
-#include <sys/ioctl.h>
-
-// WebRTC
-#include <api/video/i420_buffer.h>
-#include <rtc_base/logging.h>
-#include <third_party/libyuv/include/libyuv.h>
-
-// Jetson Linux Multimedia API
-#include <nvbufsurface.h>
-#include <nvbufsurftransform.h>
-
-namespace sora {
-
-static const int kBufferAlignment = 64;
-
-rtc::scoped_refptr<JetsonBuffer> JetsonBuffer::Create(
-    webrtc::VideoType video_type,
-    int raw_width,
-    int raw_height,
-    int scaled_width,
-    int scaled_height,
-    int fd,
-    uint32_t pixfmt,
-    std::shared_ptr<JetsonJpegDecoder> decoder) {
-  return rtc::make_ref_counted<JetsonBuffer>(video_type, raw_width, raw_height,
-                                             scaled_width, scaled_height, fd,
-                                             pixfmt, decoder);
-}
-
-rtc::scoped_refptr<JetsonBuffer> JetsonBuffer::Create(
-    webrtc::VideoType video_type,
-    int raw_width,
-    int raw_height,
-    int scaled_width,
-    int scaled_height) {
-  return rtc::make_ref_counted<JetsonBuffer>(video_type, raw_width, raw_height,
-                                             scaled_width, scaled_height);
-}
-
-webrtc::VideoFrameBuffer::Type JetsonBuffer::type() const {
-  return Type::kNative;
-}
-
-webrtc::VideoType JetsonBuffer::VideoType() const {
-  return video_type_;
-}
-
-int JetsonBuffer::width() const {
-  return scaled_width_;
-}
-
-int JetsonBuffer::height() const {
-  return scaled_height_;
-}
-
-rtc::scoped_refptr<webrtc::I420BufferInterface> JetsonBuffer::ToI420() {
-  if (video_type_ == webrtc::VideoType::kMJPEG) {
-    rtc::scoped_refptr<webrtc::I420Buffer> scaled_buffer =
-        webrtc::I420Buffer::Create(scaled_width_, scaled_height_);
-    int32_t buffer_width = ((scaled_width_ + 15) / 16) * 16;
-    int32_t buffer_height = ((scaled_height_ + 15) / 16) * 16;
-
-    NvBufSurfaceAllocateParams input_params = {0};
-    input_params.params.width = buffer_width;
-    input_params.params.height = buffer_height;
-    input_params.params.layout = NVBUF_LAYOUT_PITCH;
-    input_params.params.colorFormat = NVBUF_COLOR_FORMAT_YUV420;
-    input_params.params.memType = NVBUF_MEM_SURFACE_ARRAY;
-    input_params.memtag = NvBufSurfaceTag_NONE;
-
-    NvBufSurface* dst_surf = 0;
-
-    if (NvBufSurfaceAllocate(
-            &dst_surf,
-            1, /* NvUtils では複数のバッファーを同時に初期化できるため、バッファーの数を指定する */
-            &input_params) == -1) {
-      RTC_LOG(LS_ERROR) << __FUNCTION__ << " Failed to NvBufSurfaceAllocate";
-      return scaled_buffer;
-    }
-    NvBufSurfaceParams params = dst_surf->surfaceList[0];
-
-    NvBufSurfTransformRect src_rect, dest_rect;
-    src_rect.top = 0;
-    src_rect.left = 0;
-    src_rect.width = params.width;
-    src_rect.height = params.height;
-    dest_rect.top = 0;
-    dest_rect.left = 0;
-    dest_rect.width = buffer_width;
-    dest_rect.height = buffer_height;
-
-    NvBufSurfTransformParams trans_params;
-    memset(&trans_params, 0, sizeof(trans_params));
-    trans_params.transform_flag = NVBUFSURF_TRANSFORM_FILTER;
-    trans_params.transform_flip = NvBufSurfTransform_None;
-    trans_params.transform_filter = NvBufSurfTransformInter_Algo3;
-    trans_params.src_rect = &src_rect;
-    trans_params.dst_rect = &dest_rect;
-
-    NvBufSurface* src_surf = 0;
-    if (NvBufSurfaceFromFd(fd_, (void**)(&src_surf)) == -1) {
-      RTC_LOG(LS_ERROR) << __FUNCTION__ << " Failed to NvBufSurfaceFromFd";
-      return scaled_buffer;
-    }
-
-    if (NvBufSurfTransform(src_surf, dst_surf, &trans_params) !=
-        NvBufSurfTransformError_Success) {
-      RTC_LOG(LS_ERROR) << __FUNCTION__ << " Failed to NvBufSurfTransform";
-      return scaled_buffer;
-    }
-
-    int ret;
-    void* data_addr;
-    uint8_t* dest_addr;
-    int num_planes = dst_surf->surfaceList->planeParams.num_planes;
-    int index = 0;
-    for (int plane = 0; plane < num_planes; plane++) {
-      ret = NvBufSurfaceMap(dst_surf, index, plane, NVBUF_MAP_READ);
-      if (ret == 0) {
-        NvBufSurfaceSyncForCpu(dst_surf, index, plane);
-        data_addr = dst_surf->surfaceList->mappedAddr.addr[plane];
-        int height, width;
-        if (plane == 0) {
-          dest_addr = scaled_buffer.get()->MutableDataY();
-          width = scaled_width_;
-          height = scaled_height_;
-        } else if (plane == 1) {
-          dest_addr = scaled_buffer.get()->MutableDataU();
-          width = (scaled_width_ + 1) >> 1;
-          height = (scaled_height_ + 1) >> 1;
-        } else if (plane == 2) {
-          dest_addr = scaled_buffer.get()->MutableDataV();
-          width = (scaled_width_ + 1) >> 1;
-          height = (scaled_height_ + 1) >> 1;
-        }
-        for (int i = 0; i < height; i++) {
-          memcpy(dest_addr + width * i,
-                 (uint8_t*)data_addr +
-                     dst_surf->surfaceList->planeParams.pitch[plane] * i,
-                 width);
-        }
-      }
-      NvBufSurfaceUnMap(dst_surf, index, plane);
-      if (ret == -1) {
-        RTC_LOG(LS_ERROR) << __FUNCTION__
-                          << " Failed to NvBufSurfaceMap plane=" << plane;
-        return scaled_buffer;
-      }
-    }
-
-    NvBufSurfaceDestroy(dst_surf);
-
-    return scaled_buffer;
-  } else {
-    rtc::scoped_refptr<webrtc::I420Buffer> i420_buffer =
-        webrtc::I420Buffer::Create(raw_width_, raw_height_);
-    const int conversionResult = libyuv::ConvertToI420(
-        data_.get(), length_, i420_buffer.get()->MutableDataY(),
-        i420_buffer.get()->StrideY(), i420_buffer.get()->MutableDataU(),
-        i420_buffer.get()->StrideU(), i420_buffer.get()->MutableDataV(),
-        i420_buffer.get()->StrideV(), 0, 0, raw_width_, raw_height_, raw_width_,
-        raw_height_, libyuv::kRotate0, ConvertVideoType(video_type_));
-    if (raw_width_ == scaled_width_ && raw_height_ == scaled_height_) {
-      return i420_buffer;
-    }
-    rtc::scoped_refptr<webrtc::I420Buffer> scaled_buffer =
-        webrtc::I420Buffer::Create(scaled_width_, scaled_height_);
-    scaled_buffer->ScaleFrom(*i420_buffer->ToI420());
-    return scaled_buffer;
-  }
-}
-
-int JetsonBuffer::RawWidth() const {
-  return raw_width_;
-}
-
-int JetsonBuffer::RawHeight() const {
-  return raw_height_;
-}
-
-int JetsonBuffer::DecodedFd() const {
-  return fd_;
-}
-
-uint32_t JetsonBuffer::V4L2PixelFormat() const {
-  return pixfmt_;
-}
-
-std::shared_ptr<JetsonJpegDecoder> JetsonBuffer::JpegDecoder() const {
-  return decoder_;
-}
-
-uint8_t* JetsonBuffer::Data() const {
-  return data_.get();
-}
-
-void JetsonBuffer::SetLength(size_t length) {
-  length_ = length;
-}
-
-size_t JetsonBuffer::Length() const {
-  return length_;
-}
-
-JetsonBuffer::JetsonBuffer(webrtc::VideoType video_type,
-                           int raw_width,
-                           int raw_height,
-                           int scaled_width,
-                           int scaled_height,
-                           int fd,
-                           uint32_t pixfmt,
-                           std::shared_ptr<JetsonJpegDecoder> decoder)
-    : video_type_(video_type),
-      raw_width_(raw_width),
-      raw_height_(raw_height),
-      scaled_width_(scaled_width),
-      scaled_height_(scaled_height),
-      fd_(fd),
-      pixfmt_(pixfmt),
-      decoder_(decoder),
-      data_(nullptr) {}
-
-JetsonBuffer::JetsonBuffer(webrtc::VideoType video_type,
-                           int raw_width,
-                           int raw_height,
-                           int scaled_width,
-                           int scaled_height)
-    : video_type_(video_type),
-      raw_width_(raw_width),
-      raw_height_(raw_height),
-      scaled_width_(scaled_width),
-      scaled_height_(scaled_height),
-      fd_(-1),
-      pixfmt_(0),
-      decoder_(nullptr),
-      data_(static_cast<uint8_t*>(webrtc::AlignedMalloc(
-          webrtc::CalcBufferSize(video_type, raw_width, raw_height),
-          kBufferAlignment))) {}
-
-}  // namespace sora

+ 0 - 81
ZJ_PRO_DMF_JETSON/.vscode/jetson_buffer.h

@@ -1,81 +0,0 @@
-#ifndef SORA_HWENC_JETSON_JETSON_BUFFER_H_
-#define SORA_HWENC_JETSON_JETSON_BUFFER_H_
-
-#include <linux/videodev2.h>
-#include <memory>
-
-// WebRTC
-#include <api/video/video_frame.h>
-#include <common_video/include/video_frame_buffer.h>
-#include <common_video/libyuv/include/webrtc_libyuv.h>
-#include <rtc_base/memory/aligned_malloc.h>
-
-#include "jetson_jpeg_decoder.h"
-
-namespace sora {
-
-class JetsonBuffer : public webrtc::VideoFrameBuffer {
- public:
-  static rtc::scoped_refptr<JetsonBuffer> Create(
-      webrtc::VideoType video_type,
-      int raw_width,
-      int raw_height,
-      int scaled_width,
-      int scaled_height,
-      int fd,
-      uint32_t pixfmt,
-      std::shared_ptr<JetsonJpegDecoder> decoder);
-
-  static rtc::scoped_refptr<JetsonBuffer> Create(webrtc::VideoType video_type,
-                                                 int raw_width,
-                                                 int raw_height,
-                                                 int scaled_width,
-                                                 int scaled_height);
-
-  Type type() const override;
-  webrtc::VideoType VideoType() const;
-  int width() const override;
-  int height() const override;
-  rtc::scoped_refptr<webrtc::I420BufferInterface> ToI420() override;
-
-  int RawWidth() const;
-  int RawHeight() const;
-  int DecodedFd() const;
-  uint32_t V4L2PixelFormat() const;
-  std::shared_ptr<JetsonJpegDecoder> JpegDecoder() const;
-  uint8_t* Data() const;
-  void SetLength(size_t size);
-  size_t Length() const;
-
- protected:
-  JetsonBuffer(webrtc::VideoType video_type,
-               int raw_width,
-               int raw_height,
-               int scaled_width,
-               int scaled_height,
-               int fd,
-               uint32_t pixfmt,
-               std::shared_ptr<JetsonJpegDecoder> decoder);
-
-  JetsonBuffer(webrtc::VideoType video_type,
-               int raw_width,
-               int raw_height,
-               int scaled_width,
-               int scaled_height);
-
- private:
-  webrtc::VideoType video_type_;
-  const int raw_width_;
-  const int raw_height_;
-  const int scaled_width_;
-  const int scaled_height_;
-  const int fd_;
-  const uint32_t pixfmt_;
-  const std::shared_ptr<JetsonJpegDecoder> decoder_;
-  const std::unique_ptr<uint8_t, webrtc::AlignedFreeDeleter> data_;
-  size_t length_;
-};
-
-}  // namespace sora
-
-#endif

+ 0 - 26
ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder.cpp

@@ -1,26 +0,0 @@
-#include "sora/hwenc_jetson/jetson_jpeg_decoder.h"
-
-// Jetson Linux Multimedia API
-#include <NvJpegDecoder.h>
-
-namespace sora {
-
-JetsonJpegDecoder::JetsonJpegDecoder(
-    std::shared_ptr<JetsonJpegDecoderPool> pool,
-    std::shared_ptr<NvJPEGDecoder> decoder)
-    : pool_(pool), decoder_(std::move(decoder)) {}
-
-JetsonJpegDecoder::~JetsonJpegDecoder() {
-  pool_->Push(std::move(decoder_));
-}
-
-int JetsonJpegDecoder::DecodeToFd(int& fd,
-                                  unsigned char* in_buf,
-                                  unsigned long in_buf_size,
-                                  uint32_t& pixfmt,
-                                  uint32_t& width,
-                                  uint32_t& height) {
-  return decoder_->decodeToFd(fd, in_buf, in_buf_size, pixfmt, width, height);
-}
-
-}  // namespace sora

+ 0 - 34
ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder.h

@@ -1,34 +0,0 @@
-#ifndef SORA_HWENC_JETSON_JETSON_JPEG_DECODER_H_
-#define SORA_HWENC_JETSON_JETSON_JPEG_DECODER_H_
-
-#include <memory>
-
-#include "jetson_jpeg_decoder_pool.h"
-
-class NvJPEGDecoder;
-
-namespace sora {
-
-class JetsonJpegDecoderPool;
-
-class JetsonJpegDecoder {
- public:
-  JetsonJpegDecoder(std::shared_ptr<JetsonJpegDecoderPool> pool,
-                    std::shared_ptr<NvJPEGDecoder> decoder);
-  ~JetsonJpegDecoder();
-
-  int DecodeToFd(int& fd,
-                 unsigned char* in_buf,
-                 unsigned long in_buf_size,
-                 uint32_t& pixfmt,
-                 uint32_t& width,
-                 uint32_t& height);
-
- private:
-  std::shared_ptr<JetsonJpegDecoderPool> pool_;
-  std::shared_ptr<NvJPEGDecoder> decoder_;
-};
-
-}  // namespace sora
-
-#endif

+ 0 - 38
ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder_pool.cpp

@@ -1,38 +0,0 @@
-#include "sora/hwenc_jetson/jetson_jpeg_decoder_pool.h"
-
-// WebRTC
-#include <rtc_base/logging.h>
-
-// Jetson Linux Multimedia API
-#include <NvJpegDecoder.h>
-
-namespace sora {
-
-std::shared_ptr<JetsonJpegDecoder> JetsonJpegDecoderPool::Pop() {
-  std::shared_ptr<NvJPEGDecoder> nv_decoder;
-
-  // JetPack 5.1.2 で同じフレームが送信され続ける問題が発生したため、キューを無効化した
-  // JetPack 5.1.1 では正常に動作していた
-  // momo で同様の問題に対応した際の PR: https://github.com/shiguredo/momo/pull/297/
-  // {
-  //   std::lock_guard<std::mutex> lock(mtx_);
-  //   if (decoder_queue_.size() == 0) {
-  //     nv_decoder.reset(NvJPEGDecoder::createJPEGDecoder("jpegdec"));
-  //   } else {
-  //     nv_decoder = std::move(decoder_queue_.front());
-  //     decoder_queue_.pop();
-  //   }
-  // }
-  nv_decoder.reset(NvJPEGDecoder::createJPEGDecoder("jpegdec"));
-
-  std::shared_ptr<JetsonJpegDecoder> decoder(
-      new JetsonJpegDecoder(shared_from_this(), std::move(nv_decoder)));
-  return decoder;
-}
-
-void JetsonJpegDecoderPool::Push(std::shared_ptr<NvJPEGDecoder> decoder) {
-  std::lock_guard<std::mutex> lock(mtx_);
-  // decoder_queue_.push(std::move(decoder));
-}
-
-}  // namespace sora

+ 0 - 29
ZJ_PRO_DMF_JETSON/.vscode/jetson_jpeg_decoder_pool.h

@@ -1,29 +0,0 @@
-#ifndef SORA_HWENC_JETSON_JETSON_JPEG_DECODER_POOL_H_
-#define SORA_HWENC_JETSON_JETSON_JPEG_DECODER_POOL_H_
-
-#include <memory>
-#include <mutex>
-#include <queue>
-
-#include "jetson_jpeg_decoder.h"
-
-class NvJPEGDecoder;
-
-namespace sora {
-
-class JetsonJpegDecoder;
-
-class JetsonJpegDecoderPool
-    : public std::enable_shared_from_this<JetsonJpegDecoderPool> {
- public:
-  std::shared_ptr<JetsonJpegDecoder> Pop();
-  void Push(std::shared_ptr<NvJPEGDecoder> decoder);
-
- private:
-  std::mutex mtx_;
-  std::queue<std::shared_ptr<NvJPEGDecoder>> decoder_queue_;
-};
-
-}  // namespace sora
-
-#endif

+ 0 - 16
ZJ_PRO_DMF_JETSON/.vscode/jetson_util.h

@@ -1,16 +0,0 @@
-#ifndef SORA_HWENC_JETSON_JETSON_UTIL_H_
-#define SORA_HWENC_JETSON_JETSON_UTIL_H_
-
-namespace sora {
-
-static int VideoCodecToV4L2Format(webrtc::VideoCodecType codec) {
-  return codec == webrtc::kVideoCodecVP8    ? V4L2_PIX_FMT_VP8
-         : codec == webrtc::kVideoCodecVP9  ? V4L2_PIX_FMT_VP9
-         : codec == webrtc::kVideoCodecAV1  ? V4L2_PIX_FMT_AV1
-         : codec == webrtc::kVideoCodecH264 ? V4L2_PIX_FMT_H264
-         : codec == webrtc::kVideoCodecH265 ? V4L2_PIX_FMT_H265
-                                            : 0;
-}
-
-}  // namespace sora
-#endif

+ 0 - 614
ZJ_PRO_DMF_JETSON/.vscode/jetson_v4l2_capturer.cpp

@@ -1,614 +0,0 @@
-#include "sora/hwenc_jetson/jetson_v4l2_capturer.h"
-
-// C
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-// C++
-#include <new>
-#include <string>
-
-// Linux
-#include <errno.h>
-#include <fcntl.h>
-#include <linux/videodev2.h>
-#include <sys/ioctl.h>
-#include <sys/mman.h>
-#include <sys/select.h>
-#include <unistd.h>
-
-// WebRTC
-#include <api/scoped_refptr.h>
-#include <api/video/i420_buffer.h>
-#include <media/base/video_common.h>
-#include <modules/video_capture/video_capture.h>
-#include <modules/video_capture/video_capture_factory.h>
-#include <rtc_base/logging.h>
-#include <rtc_base/ref_counted_object.h>
-#include <third_party/libyuv/include/libyuv.h>
-
-// L4T Multimedia API
-#include <NvBufSurface.h>
-
-#include "sora/hwenc_jetson/jetson_buffer.h"
-
-#define MJPEG_EOS_SEARCH_SIZE 4096
-
-namespace sora {
-
-rtc::scoped_refptr<JetsonV4L2Capturer> JetsonV4L2Capturer::Create(
-    const V4L2VideoCapturerConfig& config) {
-  rtc::scoped_refptr<JetsonV4L2Capturer> capturer;
-  std::unique_ptr<webrtc::VideoCaptureModule::DeviceInfo> device_info(
-      webrtc::VideoCaptureFactory::CreateDeviceInfo());
-  if (!device_info) {
-    RTC_LOG(LS_ERROR) << "Failed to CreateDeviceInfo";
-    return nullptr;
-  }
-
-  LogDeviceList(device_info.get());
-
-  for (int i = 0; i < device_info->NumberOfDevices(); ++i) {
-    capturer = Create(device_info.get(), config, i);
-    if (capturer) {
-      RTC_LOG(LS_INFO) << "Get Capture";
-      return capturer;
-    }
-  }
-  RTC_LOG(LS_ERROR) << "Failed to create JetsonV4L2Capturer";
-  return nullptr;
-}
-
-void JetsonV4L2Capturer::LogDeviceList(
-    webrtc::VideoCaptureModule::DeviceInfo* device_info) {
-  for (int i = 0; i < device_info->NumberOfDevices(); ++i) {
-    char device_name[256];
-    char unique_name[256];
-    if (device_info->GetDeviceName(static_cast<uint32_t>(i), device_name,
-                                   sizeof(device_name), unique_name,
-                                   sizeof(unique_name)) != 0) {
-      RTC_LOG(LS_WARNING) << "Failed to GetDeviceName(" << i << ")";
-      continue;
-    }
-    RTC_LOG(LS_INFO) << "GetDeviceName(" << i
-                     << "): device_name=" << device_name
-                     << ", unique_name=" << unique_name;
-  }
-}
-
-rtc::scoped_refptr<JetsonV4L2Capturer> JetsonV4L2Capturer::Create(
-    webrtc::VideoCaptureModule::DeviceInfo* device_info,
-    const V4L2VideoCapturerConfig& config,
-    size_t capture_device_index) {
-  char device_name[256];
-  char unique_name[256];
-  if (device_info->GetDeviceName(static_cast<uint32_t>(capture_device_index),
-                                 device_name, sizeof(device_name), unique_name,
-                                 sizeof(unique_name)) != 0) {
-    RTC_LOG(LS_WARNING) << "Failed to GetDeviceName";
-    return nullptr;
-  }
-  rtc::scoped_refptr<JetsonV4L2Capturer> v4l2_capturer =
-      rtc::make_ref_counted<JetsonV4L2Capturer>(config);
-  if (v4l2_capturer->Init((const char*)&unique_name, config.video_device) < 0) {
-    RTC_LOG(LS_WARNING) << "Failed to create JetsonV4L2Capturer(" << unique_name
-                        << ")";
-    return nullptr;
-  }
-  if (v4l2_capturer->StartCapture(config) < 0) {
-    RTC_LOG(LS_WARNING) << "Failed to start JetsonV4L2Capturer(w = "
-                        << config.width << ", h = " << config.height
-                        << ", fps = " << config.framerate << ")";
-    return nullptr;
-  }
-  return v4l2_capturer;
-}
-
-JetsonV4L2Capturer::JetsonV4L2Capturer(const V4L2VideoCapturerConfig& config)
-    : ScalableVideoTrackSource(config),
-      _deviceFd(-1),
-      _buffersAllocatedByDevice(-1),
-      _currentWidth(-1),
-      _currentHeight(-1),
-      _currentFrameRate(-1),
-      _captureStarted(false),
-      _captureVideoType(webrtc::VideoType::kI420),
-      _pool(NULL) {}
-
-bool JetsonV4L2Capturer::FindDevice(const char* deviceUniqueIdUTF8,
-                                    const std::string& device) {
-  int fd;
-  if ((fd = open(device.c_str(), O_RDONLY)) != -1) {
-    // query device capabilities
-    struct v4l2_capability cap;
-    if (ioctl(fd, VIDIOC_QUERYCAP, &cap) == 0) {
-      if (cap.bus_info[0] != 0) {
-        if (strncmp((const char*)cap.bus_info, (const char*)deviceUniqueIdUTF8,
-                    strlen((const char*)deviceUniqueIdUTF8)) ==
-            0)  // match with device id
-        {
-          close(fd);
-          return true;
-        }
-      }
-    }
-    close(fd);  // close since this is not the matching device
-  }
-  return false;
-}
-
-int32_t JetsonV4L2Capturer::Init(const char* deviceUniqueIdUTF8,
-                                 const std::string& specifiedVideoDevice) {
-  int fd;
-  bool found = false;
-
-  if (!specifiedVideoDevice.empty()) {
-    // specifiedVideoDevice が指定されてる場合はそれだけ調べる
-    if (FindDevice(deviceUniqueIdUTF8, specifiedVideoDevice)) {
-      found = true;
-      _videoDevice = specifiedVideoDevice;
-    }
-  } else {
-    // specifiedVideoDevice が指定されてない場合は頑張って探す
-    /* detect /dev/video [0-63] entries */
-    char device[32];
-    int n;
-    for (n = 0; n < 64; n++) {
-      sprintf(device, "/dev/video%d", n);
-      if (FindDevice(deviceUniqueIdUTF8, device)) {
-        found = true;
-        _videoDevice = device;  // store the video device
-        break;
-      }
-    }
-  }
-
-  if (!found) {
-    RTC_LOG(LS_INFO) << "no matching device found";
-    return -1;
-  }
-  return 0;
-}
-
-JetsonV4L2Capturer::~JetsonV4L2Capturer() {
-  StopCapture();
-  if (_deviceFd != -1)
-    close(_deviceFd);
-}
-
-int32_t JetsonV4L2Capturer::StartCapture(
-    const V4L2VideoCapturerConfig& config) {
-  if (_captureStarted) {
-    if (config.width == _currentWidth && config.height == _currentHeight) {
-      return 0;
-    } else {
-      StopCapture();
-    }
-  }
-
-  webrtc::MutexLock lock(&capture_lock_);
-  // first open /dev/video device
-  if ((_deviceFd = open(_videoDevice.c_str(), O_RDWR | O_NONBLOCK, 0)) < 0) {
-    RTC_LOG(LS_INFO) << "error in opening " << _videoDevice
-                     << " errono = " << errno;
-    return -1;
-  }
-
-  // Supported video formats in preferred order.
-  // If the requested resolution is larger than VGA, we prefer MJPEG. Go for
-  // I420 otherwise.
-  const int nFormats = 6;
-  unsigned int fmts[nFormats] = {};
-  if (config.use_native) {
-    fmts[0] = V4L2_PIX_FMT_MJPEG;
-    fmts[1] = V4L2_PIX_FMT_JPEG;
-  } else if (!config.force_i420 &&
-             (config.width > 640 || config.height > 480)) {
-    fmts[0] = V4L2_PIX_FMT_MJPEG;
-    fmts[1] = V4L2_PIX_FMT_YUV420;
-    fmts[2] = V4L2_PIX_FMT_YVU420;
-    fmts[3] = V4L2_PIX_FMT_YUYV;
-    fmts[4] = V4L2_PIX_FMT_UYVY;
-    fmts[5] = V4L2_PIX_FMT_JPEG;
-  } else {
-    fmts[0] = V4L2_PIX_FMT_YUV420;
-    fmts[1] = V4L2_PIX_FMT_YVU420;
-    fmts[2] = V4L2_PIX_FMT_YUYV;
-    fmts[3] = V4L2_PIX_FMT_UYVY;
-    fmts[4] = V4L2_PIX_FMT_MJPEG;
-    fmts[5] = V4L2_PIX_FMT_JPEG;
-  }
-
-  // Enumerate image formats.
-  struct v4l2_fmtdesc fmt;
-  int fmtsIdx = nFormats;
-  memset(&fmt, 0, sizeof(fmt));
-  fmt.index = 0;
-  fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  RTC_LOG(LS_INFO) << "Video Capture enumerats supported image formats:";
-  while (ioctl(_deviceFd, VIDIOC_ENUM_FMT, &fmt) == 0) {
-    RTC_LOG(LS_INFO) << "  { pixelformat = "
-                     << cricket::GetFourccName(fmt.pixelformat)
-                     << ", description = '" << fmt.description << "' }";
-    // Match the preferred order.
-    for (int i = 0; i < nFormats; i++) {
-      if (fmt.pixelformat == fmts[i] && i < fmtsIdx)
-        fmtsIdx = i;
-    }
-    // Keep enumerating.
-    fmt.index++;
-  }
-
-  if (fmtsIdx == nFormats) {
-    RTC_LOG(LS_INFO) << "no supporting video formats found";
-    return -1;
-  } else {
-    RTC_LOG(LS_INFO) << "We prefer format "
-                     << cricket::GetFourccName(fmts[fmtsIdx]);
-  }
-
-  struct v4l2_format video_fmt;
-  memset(&video_fmt, 0, sizeof(struct v4l2_format));
-  video_fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  video_fmt.fmt.pix.sizeimage = 0;
-  video_fmt.fmt.pix.width = config.width;
-  video_fmt.fmt.pix.height = config.height;
-  video_fmt.fmt.pix.pixelformat = fmts[fmtsIdx];
-
-  // set format and frame size now
-  if (ioctl(_deviceFd, VIDIOC_S_FMT, &video_fmt) < 0) {
-    RTC_LOG(LS_INFO) << "error in VIDIOC_S_FMT, errno = " << errno;
-    return -1;
-  }
-
-  // initialize current width and height
-  _currentWidth = video_fmt.fmt.pix.width;
-  _currentHeight = video_fmt.fmt.pix.height;
-  _currentPixelFormat = video_fmt.fmt.pix.pixelformat;
-
-  if (video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
-    _captureVideoType = webrtc::VideoType::kYUY2;
-  else if (video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUV420)
-    _captureVideoType = webrtc::VideoType::kI420;
-  else if (video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YVU420)
-    _captureVideoType = webrtc::VideoType::kYV12;
-  else if (video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_UYVY)
-    _captureVideoType = webrtc::VideoType::kUYVY;
-  else if (video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_MJPEG ||
-           video_fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_JPEG)
-    _captureVideoType = webrtc::VideoType::kMJPEG;
-
-  // Trying to set frame rate, before check driver capability.
-  bool driver_framerate_support = true;
-  struct v4l2_streamparm streamparms;
-  memset(&streamparms, 0, sizeof(streamparms));
-  streamparms.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  if (ioctl(_deviceFd, VIDIOC_G_PARM, &streamparms) < 0) {
-    RTC_LOG(LS_INFO) << "error in VIDIOC_G_PARM errno = " << errno;
-    driver_framerate_support = false;
-    // continue
-  } else {
-    // check the capability flag is set to V4L2_CAP_TIMEPERFRAME.
-    if (streamparms.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) {
-      // driver supports the feature. Set required framerate.
-      memset(&streamparms, 0, sizeof(streamparms));
-      streamparms.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-      streamparms.parm.capture.timeperframe.numerator = 1;
-      streamparms.parm.capture.timeperframe.denominator = config.framerate;
-      if (ioctl(_deviceFd, VIDIOC_S_PARM, &streamparms) < 0) {
-        RTC_LOG(LS_INFO) << "Failed to set the framerate. errno=" << errno;
-        driver_framerate_support = false;
-      } else {
-        _currentFrameRate = config.framerate;
-      }
-    }
-  }
-  // If driver doesn't support framerate control, need to hardcode.
-  // Hardcoding the value based on the frame size.
-  if (!driver_framerate_support) {
-    if (!config.use_native && _currentWidth >= 800 &&
-        _captureVideoType != webrtc::VideoType::kMJPEG) {
-      _currentFrameRate = 15;
-    } else {
-      _currentFrameRate = 30;
-    }
-  }
-
-  if (!AllocateVideoBuffers()) {
-    RTC_LOG(LS_INFO) << "failed to allocate video capture buffers";
-    return -1;
-  }
-
-  // start capture thread;
-  if (_captureThread.empty()) {
-    quit_ = false;
-    _captureThread = rtc::PlatformThread::SpawnJoinable(
-        std::bind(JetsonV4L2Capturer::CaptureThread, this), "CaptureThread",
-        rtc::ThreadAttributes().SetPriority(rtc::ThreadPriority::kHigh));
-  }
-
-  // Needed to start UVC camera - from the uvcview application
-  enum v4l2_buf_type type;
-  type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  if (ioctl(_deviceFd, VIDIOC_STREAMON, &type) == -1) {
-    RTC_LOG(LS_INFO) << "Failed to turn on stream";
-    return -1;
-  }
-
-  _captureStarted = true;
-  return 0;
-}
-
-int32_t JetsonV4L2Capturer::StopCapture() {
-  if (!_captureThread.empty()) {
-    {
-      webrtc::MutexLock lock(&capture_lock_);
-      quit_ = true;
-    }
-    _captureThread.Finalize();
-  }
-
-  webrtc::MutexLock lock(&capture_lock_);
-  if (_captureStarted) {
-    _captureStarted = false;
-
-    DeAllocateVideoBuffers();
-    close(_deviceFd);
-    _deviceFd = -1;
-  }
-
-  return 0;
-}
-
-// critical section protected by the caller
-
-bool JetsonV4L2Capturer::AllocateVideoBuffers() {
-  struct v4l2_requestbuffers rbuffer;
-  memset(&rbuffer, 0, sizeof(v4l2_requestbuffers));
-
-  rbuffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  rbuffer.memory = V4L2_MEMORY_MMAP;
-  rbuffer.count = kNoOfV4L2Bufffers;
-
-  if (ioctl(_deviceFd, VIDIOC_REQBUFS, &rbuffer) < 0) {
-    RTC_LOG(LS_INFO) << "Could not get buffers from device. errno = " << errno;
-    return false;
-  }
-
-  if (rbuffer.count > kNoOfV4L2Bufffers)
-    rbuffer.count = kNoOfV4L2Bufffers;
-
-  _buffersAllocatedByDevice = rbuffer.count;
-
-  std::unique_ptr<int[]> fds;
-  if (_captureVideoType != webrtc::VideoType::kMJPEG) {
-    fds.reset(new int[rbuffer.count]);
-    NvBufSurf::NvCommonAllocateParams params = {0};
-
-    params.memType = NVBUF_MEM_SURFACE_ARRAY;
-    params.width = _currentWidth;
-    params.height = _currentHeight;
-    params.layout = NVBUF_LAYOUT_PITCH;
-    if (_captureVideoType == webrtc::VideoType::kYUY2)
-      params.colorFormat = NVBUF_COLOR_FORMAT_YUYV;
-    else if (_captureVideoType == webrtc::VideoType::kI420)
-      params.colorFormat = NVBUF_COLOR_FORMAT_YUV420;
-    else if (_captureVideoType == webrtc::VideoType::kYV12)
-      params.colorFormat = NVBUF_COLOR_FORMAT_YVU420;
-    else if (_captureVideoType == webrtc::VideoType::kUYVY)
-      params.colorFormat = NVBUF_COLOR_FORMAT_UYVY;
-    params.memtag = NvBufSurfaceTag_CAMERA;
-    if (NvBufSurf::NvAllocate(&params, rbuffer.count, fds.get())) {
-      return false;
-    }
-  }
-
-  // Map the buffers
-  _pool = new Buffer[rbuffer.count];
-
-  for (unsigned int i = 0; i < rbuffer.count; i++) {
-    struct v4l2_buffer buffer;
-    memset(&buffer, 0, sizeof(v4l2_buffer));
-    if (fds == nullptr) {
-      buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-      buffer.memory = V4L2_MEMORY_MMAP;
-      buffer.index = i;
-
-      if (ioctl(_deviceFd, VIDIOC_QUERYBUF, &buffer) < 0) {
-        return false;
-      }
-
-      _pool[i].start = mmap(NULL, buffer.length, PROT_READ | PROT_WRITE,
-                            MAP_SHARED, _deviceFd, buffer.m.offset);
-
-      if (MAP_FAILED == _pool[i].start) {
-        for (unsigned int j = 0; j < i; j++)
-          munmap(_pool[j].start, _pool[j].length);
-        return false;
-      }
-
-      _pool[i].length = buffer.length;
-    } else {
-      buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-      buffer.memory = V4L2_MEMORY_DMABUF;
-      buffer.index = i;
-
-      if (ioctl(_deviceFd, VIDIOC_QUERYBUF, &buffer) < 0) {
-        return false;
-      }
-
-      _pool[i].fd = fds[i];
-      _pool[i].length = buffer.length;
-    }
-
-    if (ioctl(_deviceFd, VIDIOC_QBUF, &buffer) < 0) {
-      return false;
-    }
-  }
-
-  if (_captureVideoType == webrtc::VideoType::kMJPEG) {
-    jpeg_decoder_pool_.reset(new JetsonJpegDecoderPool());
-  }
-
-  return true;
-}
-
-bool JetsonV4L2Capturer::DeAllocateVideoBuffers() {
-  if (_captureVideoType == webrtc::VideoType::kMJPEG) {
-    jpeg_decoder_pool_ = nullptr;
-
-    // unmap buffers
-    for (int i = 0; i < _buffersAllocatedByDevice; i++) {
-      munmap(_pool[i].start, _pool[i].length);
-    }
-    delete[] _pool;
-
-  } else {
-    for (int i = 0; i < _buffersAllocatedByDevice; i++) {
-      NvBufSurf::NvDestroy(_pool[i].fd);
-    }
-    delete[] _pool;
-  }
-
-  // turn off stream
-  enum v4l2_buf_type type;
-  type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-  if (ioctl(_deviceFd, VIDIOC_STREAMOFF, &type) < 0) {
-    RTC_LOG(LS_INFO) << "VIDIOC_STREAMOFF error. errno: " << errno;
-  }
-
-  return true;
-}
-
-void JetsonV4L2Capturer::CaptureThread(void* obj) {
-  JetsonV4L2Capturer* capturer = static_cast<JetsonV4L2Capturer*>(obj);
-  while (capturer->CaptureProcess()) {
-  }
-}
-
-bool JetsonV4L2Capturer::CaptureProcess() {
-  int retVal = 0;
-  fd_set rSet;
-  struct timeval timeout;
-
-  FD_ZERO(&rSet);
-  FD_SET(_deviceFd, &rSet);
-  timeout.tv_sec = 1;
-  timeout.tv_usec = 0;
-
-  // _deviceFd written only in StartCapture, when this thread isn't running.
-  retVal = select(_deviceFd + 1, &rSet, NULL, NULL, &timeout);
-  {
-    webrtc::MutexLock lock(&capture_lock_);
-
-    if (quit_) {
-      return false;
-    } else if (retVal < 0 && errno != EINTR /* continue if interrupted */) {
-      // select failed
-      return false;
-    } else if (retVal == 0) {
-      // select timed out
-      return true;
-    } else if (!FD_ISSET(_deviceFd, &rSet)) {
-      // not event on camera handle
-      return true;
-    }
-
-    if (_captureStarted) {
-      struct v4l2_buffer buf;
-      memset(&buf, 0, sizeof(struct v4l2_buffer));
-      buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-      if (_captureVideoType == webrtc::VideoType::kMJPEG) {
-        buf.memory = V4L2_MEMORY_MMAP;
-      } else {
-        buf.memory = V4L2_MEMORY_DMABUF;
-      }
-      // dequeue a buffer - repeat until dequeued properly!
-      while (ioctl(_deviceFd, VIDIOC_DQBUF, &buf) < 0) {
-        if (errno != EINTR) {
-          RTC_LOG(LS_INFO) << "could not sync on a buffer on device "
-                           << strerror(errno);
-          return true;
-        }
-      }
-
-      OnCaptured(&buf);
-
-      // enqueue the buffer again
-      if (ioctl(_deviceFd, VIDIOC_QBUF, &buf) == -1) {
-        RTC_LOG(LS_INFO) << __FUNCTION__ << " Failed to enqueue capture buffer";
-      }
-    }
-  }
-  usleep(0);
-  return true;
-}
-
-void JetsonV4L2Capturer::OnCaptured(v4l2_buffer* buf) {
-  const int64_t timestamp_us = rtc::TimeMicros();
-  int adapted_width, adapted_height, crop_width, crop_height, crop_x, crop_y;
-  if (!AdaptFrame(_currentWidth, _currentHeight, timestamp_us, &adapted_width,
-                  &adapted_height, &crop_width, &crop_height, &crop_x,
-                  &crop_y)) {
-    return;
-  }
-
-  if (_captureVideoType == webrtc::VideoType::kMJPEG) {
-    uint8_t* data = (uint8_t*)_pool[buf->index].start;
-    uint32_t bytesused = buf->bytesused;
-    // 一部のカメラ (DELL WB7022) は不正なデータを送ってくることがある。
-    // これをハードウェアJPEGデコーダーに送ると Momo ごとクラッシュしてしまう。
-    // JPEG の先頭は SOI マーカー 0xffd8 で始まるのでチェックして落ちないようにする。
-    if (bytesused < 2 || data[0] != 0xff || data[1] != 0xd8) {
-      RTC_LOG(LS_WARNING) << __FUNCTION__
-                          << " Invalid JPEG buffer frame skipped";
-      return;
-    }
-
-    unsigned int eosSearchSize = MJPEG_EOS_SEARCH_SIZE;
-    uint8_t* p;
-    /* v4l2_buf.bytesused may have padding bytes for alignment
-              Search for EOF to get exact size */
-    if (eosSearchSize > bytesused)
-      eosSearchSize = bytesused;
-    for (unsigned int i = 0; i < eosSearchSize; i++) {
-      p = data + bytesused;
-      if ((*(p - 2) == 0xff) && (*(p - 1) == 0xd9)) {
-        break;
-      }
-      bytesused--;
-    }
-
-    std::shared_ptr<JetsonJpegDecoder> decoder = jpeg_decoder_pool_->Pop();
-    int fd = 0;
-    uint32_t width, height, pixfmt;
-    if (decoder->DecodeToFd(fd, data, bytesused, pixfmt, width, height) < 0) {
-      RTC_LOG(LS_ERROR) << "decodeToFd Failed";
-      return;
-    }
-    rtc::scoped_refptr<JetsonBuffer> jetson_buffer(
-        JetsonBuffer::Create(_captureVideoType, width, height, adapted_width,
-                             adapted_height, fd, pixfmt, std::move(decoder)));
-    OnFrame(webrtc::VideoFrame::Builder()
-                .set_video_frame_buffer(jetson_buffer)
-                .set_timestamp_rtp(0)
-                .set_timestamp_ms(rtc::TimeMillis())
-                .set_timestamp_us(rtc::TimeMicros())
-                .set_rotation(webrtc::kVideoRotation_0)
-                .build());
-  } else {
-    rtc::scoped_refptr<JetsonBuffer> jetson_buffer(JetsonBuffer::Create(
-        _captureVideoType, _currentWidth, _currentHeight, adapted_width,
-        adapted_height, _pool[buf->index].fd, _currentPixelFormat, nullptr));
-    OnFrame(webrtc::VideoFrame::Builder()
-                .set_video_frame_buffer(jetson_buffer)
-                .set_timestamp_rtp(0)
-                .set_timestamp_ms(rtc::TimeMillis())
-                .set_timestamp_us(rtc::TimeMicros())
-                .set_rotation(webrtc::kVideoRotation_0)
-                .build());
-  }
-}
-
-}  // namespace sora

+ 0 - 83
ZJ_PRO_DMF_JETSON/.vscode/jetson_v4l2_capturer.h

@@ -1,83 +0,0 @@
-#ifndef SORA_HWENC_JETSON_JETSON_V4L2_CAPTURER_H_
-#define SORA_HWENC_JETSON_JETSON_V4L2_CAPTURER_H_
-
-#include <stddef.h>
-#include <stdint.h>
-
-#include <memory>
-
-// Linux
-#include <linux/videodev2.h>
-
-// WebRTC
-#include <modules/video_capture/video_capture_defines.h>
-#include <modules/video_capture/video_capture_impl.h>
-#include <rtc_base/platform_thread.h>
-#include <rtc_base/synchronization/mutex.h>
-
-#include "jetson_jpeg_decoder_pool.h"
-#include "sora/scalable_track_source.h"
-#include "sora/v4l2/v4l2_video_capturer.h"
-
-namespace sora {
-
-class JetsonV4L2Capturer : public ScalableVideoTrackSource {
- public:
-  static rtc::scoped_refptr<JetsonV4L2Capturer> Create(
-      const V4L2VideoCapturerConfig& config);
-  JetsonV4L2Capturer(const V4L2VideoCapturerConfig& config);
-  ~JetsonV4L2Capturer();
-
- private:
-  static void LogDeviceList(
-      webrtc::VideoCaptureModule::DeviceInfo* device_info);
-
-  int32_t Init(const char* deviceUniqueId,
-               const std::string& specifiedVideoDevice);
-  int32_t StartCapture(const V4L2VideoCapturerConfig& config);
-
-  int32_t StopCapture();
-  bool AllocateVideoBuffers();
-  bool DeAllocateVideoBuffers();
-  void OnCaptured(v4l2_buffer* buf);
-
-  int32_t _deviceFd;
-  int32_t _currentWidth;
-  int32_t _currentHeight;
-  int32_t _currentPixelFormat;
-  int32_t _currentFrameRate;
-  webrtc::VideoType _captureVideoType;
-  struct Buffer {
-    void* start;
-    size_t length;
-    int fd;
-  };
-  Buffer* _pool;
-
- private:
-  static rtc::scoped_refptr<JetsonV4L2Capturer> Create(
-      webrtc::VideoCaptureModule::DeviceInfo* device_info,
-      const V4L2VideoCapturerConfig& config,
-      size_t capture_device_index);
-  bool FindDevice(const char* deviceUniqueIdUTF8, const std::string& device);
-
-  enum { kNoOfV4L2Bufffers = 4 };
-
-  static void CaptureThread(void*);
-  bool CaptureProcess();
-
-  rtc::PlatformThread _captureThread;
-  webrtc::Mutex capture_lock_;
-  bool quit_ RTC_GUARDED_BY(capture_lock_);
-  std::string _videoDevice;
-
-  int32_t _buffersAllocatedByDevice;
-  bool _useNative;
-  bool _captureStarted;
-
-  std::shared_ptr<JetsonJpegDecoderPool> jpeg_decoder_pool_;
-};
-
-}  // namespace sora
-
-#endif

+ 0 - 455
ZJ_PRO_DMF_JETSON/.vscode/jetson_video_decoder.cpp

@@ -1,455 +0,0 @@
-/*
- *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- *
- */
-
-#include "sora/hwenc_jetson/jetson_video_decoder.h"
-
-#include <unistd.h>
-
-// WebRTC
-#include <modules/video_coding/include/video_error_codes.h>
-#include <rtc_base/checks.h>
-#include <rtc_base/logging.h>
-#include <rtc_base/time_utils.h>
-#include <system_wrappers/include/metrics.h>
-#include <third_party/libyuv/include/libyuv/convert.h>
-
-// L4T Multimedia API
-#include <nvbufsurface.h>
-#include <nvbufsurftransform.h>
-
-// Jetson Linux Multimedia API
-#include <NvBufSurface.h>
-#include <NvVideoDecoder.h>
-
-#include "jetson_util.h"
-
-#define INIT_ERROR(cond, desc)                 \
-  if (cond) {                                  \
-    RTC_LOG(LS_ERROR) << __FUNCTION__ << desc; \
-    Release();                                 \
-    return WEBRTC_VIDEO_CODEC_ERROR;           \
-  }
-#define CHUNK_SIZE 4000000
-
-namespace sora {
-
-JetsonVideoDecoder::JetsonVideoDecoder(webrtc::VideoCodecType codec)
-    : input_format_(VideoCodecToV4L2Format(codec)),
-      decoder_(nullptr),
-      decode_complete_callback_(nullptr),
-      buffer_pool_(false, 300 /* max_number_of_buffers*/),
-      eos_(false),
-      got_error_(false),
-      dst_dma_fd_(-1) {}
-
-JetsonVideoDecoder::~JetsonVideoDecoder() {
-  Release();
-}
-
-bool JetsonVideoDecoder::IsSupported(webrtc::VideoCodecType codec) {
-  auto decoder = NvVideoDecoder::createVideoDecoder("dec0");
-  auto ret =
-      decoder->setOutputPlaneFormat(VideoCodecToV4L2Format(codec), CHUNK_SIZE);
-  delete decoder;
-  return ret >= 0;
-}
-
-bool JetsonVideoDecoder::Configure(const Settings& settings) {
-  if (JetsonConfigure() != WEBRTC_VIDEO_CODEC_OK) {
-    RTC_LOG(LS_ERROR) << __FUNCTION__ << "Failed to JetsonConfigure";
-    return false;
-  }
-  return true;
-}
-
-int32_t JetsonVideoDecoder::Decode(const webrtc::EncodedImage& input_image,
-                                   bool missing_frames,
-                                   int64_t render_time_ms) {
-  if (decoder_ == nullptr) {
-    return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
-  }
-  if (decode_complete_callback_ == NULL) {
-    return WEBRTC_VIDEO_CODEC_UNINITIALIZED;
-  }
-  if (input_image.data() == NULL && input_image.size() > 0) {
-    return WEBRTC_VIDEO_CODEC_ERR_PARAMETER;
-  }
-
-  struct v4l2_buffer v4l2_buf;
-  struct v4l2_plane planes[MAX_PLANES];
-  NvBuffer* buffer;
-
-  memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-  memset(planes, 0, sizeof(planes));
-  v4l2_buf.m.planes = planes;
-
-  RTC_LOG(LS_INFO) << __FUNCTION__ << " output_plane.getNumBuffers: "
-                   << decoder_->output_plane.getNumBuffers()
-                   << " output_plane.getNumQueuedBuffers: "
-                   << decoder_->output_plane.getNumQueuedBuffers();
-
-  if (decoder_->output_plane.getNumQueuedBuffers() ==
-      decoder_->output_plane.getNumBuffers()) {
-    if (decoder_->output_plane.dqBuffer(v4l2_buf, &buffer, NULL, -1) < 0) {
-      RTC_LOG(LS_ERROR) << "Failed to dqBuffer at decoder output_plane";
-      return WEBRTC_VIDEO_CODEC_ERROR;
-    }
-  } else {
-    buffer = decoder_->output_plane.getNthBuffer(
-        decoder_->output_plane.getNumQueuedBuffers());
-    v4l2_buf.index = decoder_->output_plane.getNumQueuedBuffers();
-  }
-
-  memcpy(buffer->planes[0].data, input_image.data(), input_image.size());
-  buffer->planes[0].bytesused = input_image.size();
-
-  v4l2_buf.m.planes[0].bytesused = buffer->planes[0].bytesused;
-
-  v4l2_buf.flags |= V4L2_BUF_FLAG_TIMESTAMP_COPY;
-  v4l2_buf.timestamp.tv_sec =
-      input_image.RtpTimestamp() / rtc::kNumMicrosecsPerSec;
-  v4l2_buf.timestamp.tv_usec =
-      input_image.RtpTimestamp() % rtc::kNumMicrosecsPerSec;
-
-  if (decoder_->output_plane.qBuffer(v4l2_buf, nullptr) < 0) {
-    RTC_LOG(LS_ERROR) << "Failed to qBuffer at encoder output_plane";
-    return WEBRTC_VIDEO_CODEC_ERROR;
-  }
-
-  RTC_LOG(LS_INFO) << __FUNCTION__
-                   << " timestamp:" << input_image.RtpTimestamp()
-                   << " bytesused:" << buffer->planes[0].bytesused;
-  return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t JetsonVideoDecoder::RegisterDecodeCompleteCallback(
-    webrtc::DecodedImageCallback* callback) {
-  decode_complete_callback_ = callback;
-  return WEBRTC_VIDEO_CODEC_OK;
-}
-
-int32_t JetsonVideoDecoder::Release() {
-  JetsonRelease();
-  buffer_pool_.Release();
-  return WEBRTC_VIDEO_CODEC_OK;
-}
-
-const char* JetsonVideoDecoder::ImplementationName() const {
-  return "Jetson Video";
-}
-
-int32_t JetsonVideoDecoder::JetsonConfigure() {
-  int ret = 0;
-
-  decoder_ = NvVideoDecoder::createVideoDecoder("dec0");
-  INIT_ERROR(!decoder_, "Failed to createVideoDecoder");
-
-  ret = decoder_->subscribeEvent(V4L2_EVENT_RESOLUTION_CHANGE, 0, 0);
-  INIT_ERROR(ret < 0,
-             "Failed to decoder subscribeEvent V4L2_EVENT_RESOLUTION_CHANGE");
-
-  ret = decoder_->setOutputPlaneFormat(input_format_, CHUNK_SIZE);
-  INIT_ERROR(ret < 0, "Failed to decoder setOutputPlaneFormat");
-
-  // 入力されるのがフレーム単位でない場合は 1 を設定する
-  ret = decoder_->setFrameInputMode(1);
-  INIT_ERROR(ret < 0, "Failed to decoder setFrameInputMode");
-
-  ret = decoder_->output_plane.setupPlane(V4L2_MEMORY_MMAP, 10, true, false);
-  INIT_ERROR(ret < 0, "Failed to setupPlane at decoder output_plane");
-
-  ret = decoder_->subscribeEvent(V4L2_EVENT_EOS, 0, 0);
-  INIT_ERROR(ret < 0, "Failed to subscribeEvent V4L2_EVENT_EOS");
-
-  ret = decoder_->output_plane.setStreamStatus(true);
-  INIT_ERROR(ret < 0, "Failed to setStreamStatus at decoder output_plane");
-
-  if (capture_loop_.empty()) {
-    eos_ = false;
-    capture_loop_ = rtc::PlatformThread::SpawnJoinable(
-        std::bind(JetsonVideoDecoder::CaptureLoopFunction, this), "CaptureLoop",
-        rtc::ThreadAttributes().SetPriority(rtc::ThreadPriority::kHigh));
-  }
-
-  return WEBRTC_VIDEO_CODEC_OK;
-}
-
-bool JetsonVideoDecoder::JetsonRelease() {
-  if (decoder_) {
-    if (!capture_loop_.empty()) {
-      eos_ = true;
-      SendEOS(decoder_);
-      while (decoder_->output_plane.getNumQueuedBuffers() > 0 && !got_error_ &&
-             !decoder_->isInError()) {
-        struct v4l2_buffer v4l2_buf;
-        struct v4l2_plane planes[MAX_PLANES];
-
-        memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-        memset(planes, 0, sizeof(planes));
-
-        v4l2_buf.m.planes = planes;
-        if (decoder_->output_plane.dqBuffer(v4l2_buf, NULL, NULL, -1) < 0) {
-          RTC_LOG(LS_ERROR)
-              << __FUNCTION__ << " Failed to dqBuffer at decoder output_plane";
-          got_error_ = true;
-          break;
-        }
-      }
-      capture_loop_.Finalize();
-    }
-    delete decoder_;
-    decoder_ = nullptr;
-  }
-  if (dst_dma_fd_ != -1) {
-    NvBufSurf::NvDestroy(dst_dma_fd_);
-    dst_dma_fd_ = -1;
-  }
-  return true;
-}
-
-void JetsonVideoDecoder::SendEOS(NvV4l2Element* element) {
-  if (element->output_plane.getStreamStatus()) {
-    struct v4l2_buffer v4l2_buf;
-    struct v4l2_plane planes[MAX_PLANES];
-    NvBuffer* buffer;
-
-    memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-    memset(planes, 0, MAX_PLANES * sizeof(struct v4l2_plane));
-    v4l2_buf.m.planes = planes;
-
-    while (element->output_plane.getNumQueuedBuffers() != 0) {
-      if (element->output_plane.dqBuffer(v4l2_buf, &buffer, NULL, 10) < 0) {
-        RTC_LOG(LS_ERROR) << "Failed to dqBuffer at encoder output_plane";
-      }
-    }
-    planes[0].bytesused = 0;
-    if (element->output_plane.qBuffer(v4l2_buf, NULL) < 0) {
-      RTC_LOG(LS_ERROR) << "Failed to qBuffer at encoder output_plane";
-    }
-  }
-}
-
-void JetsonVideoDecoder::CaptureLoopFunction(void* obj) {
-  JetsonVideoDecoder* _this = static_cast<JetsonVideoDecoder*>(obj);
-  _this->CaptureLoop();
-}
-
-void JetsonVideoDecoder::CaptureLoop() {
-  struct v4l2_event event;
-  int ret;
-  do {
-    ret = decoder_->dqEvent(event, 10);
-    if (eos_) {
-      return;
-    }
-    if (ret < 0) {
-      if (errno == EAGAIN) {
-        continue;
-      } else {
-        RTC_LOG(LS_ERROR) << __FUNCTION__ << " Failed to dqEvent at decoder";
-        got_error_ = true;
-        break;
-      }
-    }
-  } while (event.type != V4L2_EVENT_RESOLUTION_CHANGE && !got_error_);
-
-  if (!got_error_) {
-    SetCapture();
-  }
-
-  while (!(eos_ || got_error_ || decoder_->isInError())) {
-    ret = decoder_->dqEvent(event, false);
-    if (ret == 0 && event.type == V4L2_EVENT_RESOLUTION_CHANGE) {
-      SetCapture();
-      continue;
-    }
-
-    NvBuffer* buffer;
-
-    while (1) {
-      struct v4l2_buffer v4l2_buf;
-      struct v4l2_plane planes[MAX_PLANES];
-
-      memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-      memset(planes, 0, sizeof(planes));
-      v4l2_buf.m.planes = planes;
-
-      // Dequeue a filled buffer
-      if (decoder_->capture_plane.dqBuffer(v4l2_buf, &buffer, NULL, 0)) {
-        if (errno == EAGAIN) {
-          usleep(1000);
-        } else {
-          RTC_LOG(LS_ERROR)
-              << __FUNCTION__ << " Failed to dqBuffer at decoder capture_plane";
-          got_error_ = true;
-        }
-        break;
-      }
-
-      uint64_t pts = v4l2_buf.timestamp.tv_sec * rtc::kNumMicrosecsPerSec +
-                     v4l2_buf.timestamp.tv_usec;
-
-      NvBufSurf::NvCommonTransformParams transform_params;
-      memset(&transform_params, 0, sizeof(transform_params));
-      transform_params.src_top = capture_crop_->c.top;
-      transform_params.src_left = capture_crop_->c.left;
-      transform_params.src_width = capture_crop_->c.width;
-      transform_params.src_height = capture_crop_->c.height;
-      transform_params.dst_top = 0;
-      transform_params.dst_left = 0;
-      transform_params.dst_width = capture_crop_->c.width;
-      transform_params.dst_height = capture_crop_->c.height;
-      transform_params.flag = NVBUFSURF_TRANSFORM_FILTER;
-      transform_params.flip = NvBufSurfTransform_None;
-      transform_params.filter = NvBufSurfTransformInter_Algo3;
-
-      // 何が来ても YUV420 に変換する
-      ret = NvBufSurf::NvTransform(&transform_params, buffer->planes[0].fd,
-                                   dst_dma_fd_);
-      if (ret == -1) {
-        RTC_LOG(LS_ERROR) << __FUNCTION__ << " Transform failed";
-        break;
-      }
-
-      rtc::scoped_refptr<webrtc::I420Buffer> i420_buffer =
-          buffer_pool_.CreateI420Buffer(capture_crop_->c.width,
-                                        capture_crop_->c.height);
-      if (!i420_buffer.get()) {
-        // Pool has too many pending frames.
-        RTC_HISTOGRAM_BOOLEAN(
-            "WebRTC.Video.LibvpxVp8Decoder.TooManyPendingFrames", 1);
-        got_error_ = true;
-        break;
-      }
-
-      void* src_data;
-      uint8_t* dst_data;
-      int dst_stride;
-      for (uint32_t i = 0; i < MAX_PLANES; i++) {
-        if (i == 0) {
-          dst_data = i420_buffer->MutableDataY();
-          dst_stride = i420_buffer->StrideY();
-        } else if (i == 1) {
-          dst_data = i420_buffer->MutableDataU();
-          dst_stride = i420_buffer->StrideU();
-        } else if (i == 2) {
-          dst_data = i420_buffer->MutableDataV();
-          dst_stride = i420_buffer->StrideV();
-        } else {
-          break;
-        }
-
-        NvBufSurface* dst_surf = 0;
-        if (NvBufSurfaceFromFd(dst_dma_fd_, (void**)(&dst_surf)) == -1) {
-          RTC_LOG(LS_ERROR) << __FUNCTION__ << "Failed to NvBufSurfaceFromFd";
-          break;
-        }
-
-        ret = NvBufSurfaceMap(dst_surf, 0, i, NVBUF_MAP_READ);
-        NvBufSurfaceSyncForCpu(dst_surf, 0, i);
-        src_data = dst_surf->surfaceList[0].mappedAddr.addr[i];
-
-        NvBufSurfacePlaneParams params = dst_surf->surfaceList[0].planeParams;
-        for (uint32_t j = 0; j < params.height[i]; j++) {
-          memcpy(dst_data + j * dst_stride,
-                 (char*)src_data + j * params.pitch[i], params.width[i]);
-        }
-        NvBufSurfaceUnMap(dst_surf, 0, i);
-      }
-
-      webrtc::VideoFrame decoded_image =
-          webrtc::VideoFrame::Builder()
-              .set_video_frame_buffer(i420_buffer)
-              .set_timestamp_rtp(pts)
-              .build();
-      decode_complete_callback_->Decoded(decoded_image, absl::nullopt,
-                                         absl::nullopt);
-
-      if (decoder_->capture_plane.qBuffer(v4l2_buf, NULL) < 0) {
-        RTC_LOG(LS_ERROR) << __FUNCTION__
-                          << "Failed to qBuffer at capture_plane";
-        got_error_ = true;
-        break;
-      }
-    }
-  }
-}
-
-int JetsonVideoDecoder::SetCapture() {
-  int32_t ret;
-
-  struct v4l2_format format;
-  ret = decoder_->capture_plane.getFormat(format);
-  INIT_ERROR(ret < 0, "Failed to getFormat at capture_plane");
-
-  capture_crop_.reset(new v4l2_crop());
-  ret = decoder_->capture_plane.getCrop(*capture_crop_.get());
-  INIT_ERROR(ret < 0, "Failed to getCrop at capture_plane");
-
-  RTC_LOG(LS_INFO) << __FUNCTION__ << " plane format "
-                   << format.fmt.pix_mp.pixelformat << " "
-                   << format.fmt.pix_mp.width << "x"
-                   << format.fmt.pix_mp.height;
-  RTC_LOG(LS_INFO) << __FUNCTION__ << " crop " << capture_crop_->c.top << "x"
-                   << capture_crop_->c.left << " " << capture_crop_->c.width
-                   << "x" << format.fmt.pix_mp.height;
-
-  if (dst_dma_fd_ != -1) {
-    NvBufSurf::NvDestroy(dst_dma_fd_);
-    dst_dma_fd_ = -1;
-  }
-
-  NvBufSurf::NvCommonAllocateParams cParams;
-  cParams.width = capture_crop_->c.width;
-  cParams.height = capture_crop_->c.height;
-  cParams.layout = NVBUF_LAYOUT_PITCH;
-  cParams.colorFormat = NVBUF_COLOR_FORMAT_YUV420;
-  cParams.memtag = NvBufSurfaceTag_VIDEO_DEC;
-  cParams.memType = NVBUF_MEM_SURFACE_ARRAY;
-
-  ret = NvBufSurf::NvAllocate(&cParams, 1, &dst_dma_fd_);
-  INIT_ERROR(ret == -1, "failed to NvBufSurfaceAllocate");
-
-  decoder_->capture_plane.deinitPlane();
-
-  ret = decoder_->setCapturePlaneFormat(format.fmt.pix_mp.pixelformat,
-                                        format.fmt.pix_mp.width,
-                                        format.fmt.pix_mp.height);
-  INIT_ERROR(ret < 0, "Failed to setCapturePlaneFormat at capture_plane");
-
-  int32_t min_capture_buffer_size;
-  ret = decoder_->getMinimumCapturePlaneBuffers(min_capture_buffer_size);
-  INIT_ERROR(ret < 0, "Failed to getMinimumCapturePlaneBuffers");
-
-  ret = decoder_->capture_plane.setupPlane(
-      V4L2_MEMORY_MMAP, min_capture_buffer_size + 5, false, false);
-  INIT_ERROR(ret < 0, "Failed to setupPlane at capture_plane");
-
-  ret = decoder_->capture_plane.setStreamStatus(true);
-  INIT_ERROR(ret < 0, "Failed to setStreamStatus at decoder capture_plane");
-
-  for (uint32_t i = 0; i < decoder_->capture_plane.getNumBuffers(); i++) {
-    struct v4l2_buffer v4l2_buf;
-    struct v4l2_plane planes[MAX_PLANES];
-    memset(&v4l2_buf, 0, sizeof(v4l2_buf));
-    memset(planes, 0, MAX_PLANES * sizeof(struct v4l2_plane));
-    v4l2_buf.index = i;
-    v4l2_buf.m.planes = planes;
-    v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-    v4l2_buf.memory = V4L2_MEMORY_MMAP;
-    ret = decoder_->capture_plane.qBuffer(v4l2_buf, NULL);
-    INIT_ERROR(ret < 0, "Failed to qBuffer at encoder capture_plane");
-  }
-
-  return WEBRTC_VIDEO_CODEC_OK;
-}
-
-}  // namespace sora

+ 0 - 67
ZJ_PRO_DMF_JETSON/.vscode/jetson_video_decoder.h

@@ -1,67 +0,0 @@
-/*
- *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- *
- */
-
-#ifndef SORA_HWENC_JETSON_JETSON_VIDEO_DECODER_H_
-#define SORA_HWENC_JETSON_JETSON_VIDEO_DECODER_H_
-
-// WebRTC
-#include <api/video_codecs/video_decoder.h>
-#include <common_video/include/video_frame_buffer_pool.h>
-#include <rtc_base/platform_thread.h>
-
-struct v4l2_crop;
-class NvV4l2Element;
-class NvVideoDecoder;
-
-namespace sora {
-
-class JetsonVideoDecoder : public webrtc::VideoDecoder {
- public:
-  JetsonVideoDecoder(webrtc::VideoCodecType codec);
-  ~JetsonVideoDecoder() override;
-
-  static bool IsSupported(webrtc::VideoCodecType codec);
-
-  bool Configure(const Settings& settings) override;
-
-  int32_t Decode(const webrtc::EncodedImage& input_image,
-                 bool missing_frames,
-                 int64_t render_time_ms) override;
-
-  int32_t RegisterDecodeCompleteCallback(
-      webrtc::DecodedImageCallback* callback) override;
-
-  int32_t Release() override;
-
-  const char* ImplementationName() const override;
-
- private:
-  int32_t JetsonConfigure();
-  bool JetsonRelease();
-  void SendEOS(NvV4l2Element* element);
-  static void CaptureLoopFunction(void* obj);
-  void CaptureLoop();
-  int32_t SetCapture();
-
-  uint32_t input_format_;
-  NvVideoDecoder* decoder_;
-  webrtc::DecodedImageCallback* decode_complete_callback_;
-  webrtc::VideoFrameBufferPool buffer_pool_;
-  rtc::PlatformThread capture_loop_;
-  std::atomic<bool> eos_;
-  std::atomic<bool> got_error_;
-  int dst_dma_fd_;
-  std::shared_ptr<v4l2_crop> capture_crop_;
-};
-
-}  // namespace sora
-
-#endif

+ 0 - 85
ZJ_PRO_DMF_JETSON/.vscode/settings.json

@@ -1,85 +0,0 @@
-{
-    "files.associations": {
-        "*.ipp": "cpp",
-        "*.tcc": "cpp",
-        "streambuf": "cpp",
-        "cctype": "cpp",
-        "clocale": "cpp",
-        "cmath": "cpp",
-        "csetjmp": "cpp",
-        "csignal": "cpp",
-        "cstdarg": "cpp",
-        "cstddef": "cpp",
-        "cstdio": "cpp",
-        "cstdlib": "cpp",
-        "cstring": "cpp",
-        "ctime": "cpp",
-        "cwchar": "cpp",
-        "cwctype": "cpp",
-        "array": "cpp",
-        "atomic": "cpp",
-        "hash_map": "cpp",
-        "hash_set": "cpp",
-        "strstream": "cpp",
-        "bitset": "cpp",
-        "chrono": "cpp",
-        "cinttypes": "cpp",
-        "complex": "cpp",
-        "condition_variable": "cpp",
-        "cstdint": "cpp",
-        "deque": "cpp",
-        "forward_list": "cpp",
-        "list": "cpp",
-        "unordered_map": "cpp",
-        "unordered_set": "cpp",
-        "vector": "cpp",
-        "exception": "cpp",
-        "rope": "cpp",
-        "slist": "cpp",
-        "fstream": "cpp",
-        "functional": "cpp",
-        "future": "cpp",
-        "initializer_list": "cpp",
-        "iomanip": "cpp",
-        "iosfwd": "cpp",
-        "iostream": "cpp",
-        "istream": "cpp",
-        "limits": "cpp",
-        "mutex": "cpp",
-        "new": "cpp",
-        "ostream": "cpp",
-        "numeric": "cpp",
-        "ratio": "cpp",
-        "sstream": "cpp",
-        "stdexcept": "cpp",
-        "system_error": "cpp",
-        "thread": "cpp",
-        "cfenv": "cpp",
-        "regex": "cpp",
-        "tuple": "cpp",
-        "type_traits": "cpp",
-        "utility": "cpp",
-        "typeindex": "cpp",
-        "typeinfo": "cpp",
-        "valarray": "cpp",
-        "any": "cpp",
-        "codecvt": "cpp",
-        "algorithm": "cpp",
-        "filesystem": "cpp",
-        "iterator": "cpp",
-        "map": "cpp",
-        "memory": "cpp",
-        "memory_resource": "cpp",
-        "optional": "cpp",
-        "random": "cpp",
-        "set": "cpp",
-        "source_location": "cpp",
-        "string": "cpp",
-        "string_view": "cpp",
-        "shared_mutex": "cpp",
-        "variant": "cpp",
-        "bit": "cpp",
-        "charconv": "cpp",
-        "scoped_allocator": "cpp"
-    }
-}

+ 0 - 5
ZJ_PRO_DMF_JETSON/EgoSystem/.vscode/extensions.json

@@ -1,5 +0,0 @@
-{
-    "recommendations": [
-        "ms-vscode.cpptools"
-    ]
-}

+ 5 - 5
ZJ_PRO_DMF_JETSON/EgoSystem/CMakeLists.txt

@@ -61,8 +61,8 @@ endif()
 include_directories("../thirdparty/Mqtt/inlcude/")
 link_directories("../thirdparty/Mqtt/lib/")
 
-include_directories(${CUDA_INCLUDES} ./ ./include ./include/libjpeg-8b  /usr/include/libdrm)
-aux_source_directory(/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes COMMON)
+include_directories(${CUDA_INCLUDES} /usr/src/jetson_multimedia_api/include /usr/src/jetson_multimedia_api/include/libjpeg-8b  /usr/include/libdrm)
+aux_source_directory(../webrtcinterop/common/classes COMMON)
 
 add_executable(EgoSystem ${native_srcs} ${common_srcs} ${proto_srcs} ${COMMON} )
 
@@ -75,8 +75,7 @@ list(APPEND EXTERNAL_LIBS "-lpthread")
 #list(APPEND EXTERNAL_LIBS pcap)
 list(APPEND EXTERNAL_LIBS "libprotobuf.a")
 
-target_link_libraries(EgoSystem  /home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/libwebrtcinterop.a) 
-# target_link_libraries(EgoSystem  libwebrtcinterop.a) 
+target_link_libraries(EgoSystem  libwebrtcinterop.a) 
 
 target_link_libraries(EgoSystem libwebrtc.a)
 
@@ -101,4 +100,5 @@ link_directories(/usr/lib/aarch64-linux-gnu/tegra /lib/aarch64-linux-gnu /usr/lo
 target_link_libraries(EgoSystem ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so /usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so 
 /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
  /usr/lib/aarch64-linux-gnu/tegra/libnvosd.so  
- /usr/lib/aarch64-linux-gnu/libdrm.so) 
+ /usr/lib/aarch64-linux-gnu/libdrm.so)  
+# target_link_libraries(EgoSystem ${CUDA_LIBRARIES} pthread v4l2 EGL GLESv2 X11 ${LIB}) 

+ 18 - 16
ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/DependInfo.cmake

@@ -16,19 +16,22 @@ set(CMAKE_DEPENDS_CHECK_CXX
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/peer_connection.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/peer_connection.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/socket_client.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/socket_client.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/update_thread.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/update_thread.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvApplicationProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBufSurface.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBufSurface.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBuffer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBuffer.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvDrmRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvEglRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElement.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElement.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElementProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegDecoder.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegEncoder.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvLogging.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvLogging.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvUtils.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvUtils.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2Element.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
+  "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVulkanRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVulkanRenderer.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/imu_sensor.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/imu_sensor.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/main.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/main.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/message_queue.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/message_queue.cpp.o"
@@ -55,9 +58,8 @@ set(CMAKE_CXX_TARGET_INCLUDE_PATH
   "../../thirdparty/protobuf/include"
   "../../Protocol/linux"
   "../../thirdparty/Mqtt/inlcude"
-  "../."
-  ".././include"
-  ".././include/libjpeg-8b"
+  "/usr/src/jetson_multimedia_api/include"
+  "/usr/src/jetson_multimedia_api/include/libjpeg-8b"
   "/usr/include/libdrm"
   )
 

+ 16 - 13
ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/cmake_clean.cmake

@@ -11,19 +11,22 @@ file(REMOVE_RECURSE
   "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/peer_connection.cpp.o"
   "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/socket_client.cpp.o"
   "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/common/update_thread.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
-  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBufSurface.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvBuffer.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElement.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegDecoder.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegEncoder.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvLogging.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvUtils.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
+  "CMakeFiles/EgoSystem.dir/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVulkanRenderer.cpp.o"
   "CMakeFiles/EgoSystem.dir/imu_sensor.cpp.o"
   "CMakeFiles/EgoSystem.dir/main.cpp.o"
   "CMakeFiles/EgoSystem.dir/message_queue.cpp.o"

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/EgoSystem.dir/link.txt


+ 1 - 0
ZJ_PRO_DMF_JETSON/EgoSystem/build/CMakeFiles/Progress/count.txt

@@ -0,0 +1 @@
+35

+ 1 - 0
ZJ_PRO_DMF_JETSON/EgoSystem/build/config.json

@@ -55,6 +55,7 @@
         {
             "label":"right",
             "index":2
+            // "index":5
         },
         {
             "label":"dash",

+ 0 - 790
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/Linux-Clang-Debug/isenseconfig/iconfig.json

@@ -1,790 +0,0 @@
-{
-  "host_identifier": "1268522042",
-  "predefines": {
-    "cpp_compiler": "clang++",
-    "cpp_compiler_defines": {
-      "_GNU_SOURCE": "1",
-      "_LP64": "1",
-      "__AARCH64EL__": "1",
-      "__AARCH64_CMODEL_SMALL__": "1",
-      "__ARM_64BIT_STATE": "1",
-      "__ARM_ACLE": "200",
-      "__ARM_ALIGN_MAX_STACK_PWR": "4",
-      "__ARM_ARCH": "8",
-      "__ARM_ARCH_ISA_A64": "1",
-      "__ARM_ARCH_PROFILE": "'A'",
-      "__ARM_FEATURE_CLZ": "1",
-      "__ARM_FEATURE_DIRECTED_ROUNDING": "1",
-      "__ARM_FEATURE_DIV": "1",
-      "__ARM_FEATURE_FMA": "1",
-      "__ARM_FEATURE_IDIV": "1",
-      "__ARM_FEATURE_LDREX": "0xF",
-      "__ARM_FEATURE_NUMERIC_MAXMIN": "1",
-      "__ARM_FEATURE_UNALIGNED": "1",
-      "__ARM_FP": "0xE",
-      "__ARM_FP16_ARGS": "1",
-      "__ARM_FP16_FORMAT_IEEE": "1",
-      "__ARM_NEON": "1",
-      "__ARM_NEON_FP": "0xE",
-      "__ARM_PCS_AAPCS64": "1",
-      "__ARM_SIZEOF_MINIMAL_ENUM": "4",
-      "__ARM_SIZEOF_WCHAR_T": "4",
-      "__ATOMIC_ACQUIRE": "2",
-      "__ATOMIC_ACQ_REL": "4",
-      "__ATOMIC_CONSUME": "1",
-      "__ATOMIC_RELAXED": "0",
-      "__ATOMIC_RELEASE": "3",
-      "__ATOMIC_SEQ_CST": "5",
-      "__BIGGEST_ALIGNMENT__": "16",
-      "__BYTE_ORDER__": "__ORDER_LITTLE_ENDIAN__",
-      "__CHAR16_TYPE__": "unsigned short",
-      "__CHAR32_TYPE__": "unsigned int",
-      "__CHAR_BIT__": "8",
-      "__CHAR_UNSIGNED__": "1",
-      "__CLANG_ATOMIC_BOOL_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR16_T_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR32_T_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_INT_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_LLONG_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_LONG_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_POINTER_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_SHORT_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_WCHAR_T_LOCK_FREE": "2",
-      "__CONSTANT_CFSTRINGS__": "1",
-      "__DBL_DECIMAL_DIG__": "17",
-      "__DBL_DENORM_MIN__": "4.9406564584124654e-324",
-      "__DBL_DIG__": "15",
-      "__DBL_EPSILON__": "2.2204460492503131e-16",
-      "__DBL_HAS_DENORM__": "1",
-      "__DBL_HAS_INFINITY__": "1",
-      "__DBL_HAS_QUIET_NAN__": "1",
-      "__DBL_MANT_DIG__": "53",
-      "__DBL_MAX_10_EXP__": "308",
-      "__DBL_MAX_EXP__": "1024",
-      "__DBL_MAX__": "1.7976931348623157e+308",
-      "__DBL_MIN_10_EXP__": "(-307)",
-      "__DBL_MIN_EXP__": "(-1021)",
-      "__DBL_MIN__": "2.2250738585072014e-308",
-      "__DECIMAL_DIG__": "__LDBL_DECIMAL_DIG__",
-      "__DEPRECATED": "1",
-      "__ELF__": "1",
-      "__EXCEPTIONS": "1",
-      "__FINITE_MATH_ONLY__": "0",
-      "__FLT16_DECIMAL_DIG__": "5",
-      "__FLT16_DENORM_MIN__": "5.9604644775390625e-8F16",
-      "__FLT16_DIG__": "3",
-      "__FLT16_EPSILON__": "9.765625e-4F16",
-      "__FLT16_HAS_DENORM__": "1",
-      "__FLT16_HAS_INFINITY__": "1",
-      "__FLT16_HAS_QUIET_NAN__": "1",
-      "__FLT16_MANT_DIG__": "11",
-      "__FLT16_MAX_10_EXP__": "4",
-      "__FLT16_MAX_EXP__": "16",
-      "__FLT16_MAX__": "6.5504e+4F16",
-      "__FLT16_MIN_10_EXP__": "(-4)",
-      "__FLT16_MIN_EXP__": "(-13)",
-      "__FLT16_MIN__": "6.103515625e-5F16",
-      "__FLT_DECIMAL_DIG__": "9",
-      "__FLT_DENORM_MIN__": "1.40129846e-45F",
-      "__FLT_DIG__": "6",
-      "__FLT_EPSILON__": "1.19209290e-7F",
-      "__FLT_EVAL_METHOD__": "0",
-      "__FLT_HAS_DENORM__": "1",
-      "__FLT_HAS_INFINITY__": "1",
-      "__FLT_HAS_QUIET_NAN__": "1",
-      "__FLT_MANT_DIG__": "24",
-      "__FLT_MAX_10_EXP__": "38",
-      "__FLT_MAX_EXP__": "128",
-      "__FLT_MAX__": "3.40282347e+38F",
-      "__FLT_MIN_10_EXP__": "(-37)",
-      "__FLT_MIN_EXP__": "(-125)",
-      "__FLT_MIN__": "1.17549435e-38F",
-      "__FLT_RADIX__": "2",
-      "__GCC_ATOMIC_BOOL_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR16_T_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR32_T_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR_LOCK_FREE": "2",
-      "__GCC_ATOMIC_INT_LOCK_FREE": "2",
-      "__GCC_ATOMIC_LLONG_LOCK_FREE": "2",
-      "__GCC_ATOMIC_LONG_LOCK_FREE": "2",
-      "__GCC_ATOMIC_POINTER_LOCK_FREE": "2",
-      "__GCC_ATOMIC_SHORT_LOCK_FREE": "2",
-      "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL": "1",
-      "__GCC_ATOMIC_WCHAR_T_LOCK_FREE": "2",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8": "1",
-      "__GLIBCXX_BITSIZE_INT_N_0": "128",
-      "__GLIBCXX_TYPE_INT_N_0": "__int128",
-      "__GNUC_GNU_INLINE__": "1",
-      "__GNUC_MINOR__": "2",
-      "__GNUC_PATCHLEVEL__": "1",
-      "__GNUC__": "4",
-      "__GNUG__": "4",
-      "__GXX_ABI_VERSION": "1002",
-      "__GXX_EXPERIMENTAL_CXX0X__": "1",
-      "__GXX_RTTI": "1",
-      "__GXX_WEAK__": "1",
-      "__INT16_C_SUFFIX__": "",
-      "__INT16_FMTd__": "\"hd\"",
-      "__INT16_FMTi__": "\"hi\"",
-      "__INT16_MAX__": "32767",
-      "__INT16_TYPE__": "short",
-      "__INT32_C_SUFFIX__": "",
-      "__INT32_FMTd__": "\"d\"",
-      "__INT32_FMTi__": "\"i\"",
-      "__INT32_MAX__": "2147483647",
-      "__INT32_TYPE__": "int",
-      "__INT64_C_SUFFIX__": "L",
-      "__INT64_FMTd__": "\"ld\"",
-      "__INT64_FMTi__": "\"li\"",
-      "__INT64_MAX__": "9223372036854775807L",
-      "__INT64_TYPE__": "long int",
-      "__INT8_C_SUFFIX__": "",
-      "__INT8_FMTd__": "\"hhd\"",
-      "__INT8_FMTi__": "\"hhi\"",
-      "__INT8_MAX__": "127",
-      "__INT8_TYPE__": "signed char",
-      "__INTMAX_C_SUFFIX__": "L",
-      "__INTMAX_FMTd__": "\"ld\"",
-      "__INTMAX_FMTi__": "\"li\"",
-      "__INTMAX_MAX__": "9223372036854775807L",
-      "__INTMAX_TYPE__": "long int",
-      "__INTMAX_WIDTH__": "64",
-      "__INTPTR_FMTd__": "\"ld\"",
-      "__INTPTR_FMTi__": "\"li\"",
-      "__INTPTR_MAX__": "9223372036854775807L",
-      "__INTPTR_TYPE__": "long int",
-      "__INTPTR_WIDTH__": "64",
-      "__INT_FAST16_FMTd__": "\"hd\"",
-      "__INT_FAST16_FMTi__": "\"hi\"",
-      "__INT_FAST16_MAX__": "32767",
-      "__INT_FAST16_TYPE__": "short",
-      "__INT_FAST32_FMTd__": "\"d\"",
-      "__INT_FAST32_FMTi__": "\"i\"",
-      "__INT_FAST32_MAX__": "2147483647",
-      "__INT_FAST32_TYPE__": "int",
-      "__INT_FAST64_FMTd__": "\"ld\"",
-      "__INT_FAST64_FMTi__": "\"li\"",
-      "__INT_FAST64_MAX__": "9223372036854775807L",
-      "__INT_FAST64_TYPE__": "long int",
-      "__INT_FAST8_FMTd__": "\"hhd\"",
-      "__INT_FAST8_FMTi__": "\"hhi\"",
-      "__INT_FAST8_MAX__": "127",
-      "__INT_FAST8_TYPE__": "signed char",
-      "__INT_LEAST16_FMTd__": "\"hd\"",
-      "__INT_LEAST16_FMTi__": "\"hi\"",
-      "__INT_LEAST16_MAX__": "32767",
-      "__INT_LEAST16_TYPE__": "short",
-      "__INT_LEAST32_FMTd__": "\"d\"",
-      "__INT_LEAST32_FMTi__": "\"i\"",
-      "__INT_LEAST32_MAX__": "2147483647",
-      "__INT_LEAST32_TYPE__": "int",
-      "__INT_LEAST64_FMTd__": "\"ld\"",
-      "__INT_LEAST64_FMTi__": "\"li\"",
-      "__INT_LEAST64_MAX__": "9223372036854775807L",
-      "__INT_LEAST64_TYPE__": "long int",
-      "__INT_LEAST8_FMTd__": "\"hhd\"",
-      "__INT_LEAST8_FMTi__": "\"hhi\"",
-      "__INT_LEAST8_MAX__": "127",
-      "__INT_LEAST8_TYPE__": "signed char",
-      "__INT_MAX__": "2147483647",
-      "__LDBL_DECIMAL_DIG__": "36",
-      "__LDBL_DENORM_MIN__": "6.47517511943802511092443895822764655e-4966L",
-      "__LDBL_DIG__": "33",
-      "__LDBL_EPSILON__": "1.92592994438723585305597794258492732e-34L",
-      "__LDBL_HAS_DENORM__": "1",
-      "__LDBL_HAS_INFINITY__": "1",
-      "__LDBL_HAS_QUIET_NAN__": "1",
-      "__LDBL_MANT_DIG__": "113",
-      "__LDBL_MAX_10_EXP__": "4932",
-      "__LDBL_MAX_EXP__": "16384",
-      "__LDBL_MAX__": "1.18973149535723176508575932662800702e+4932L",
-      "__LDBL_MIN_10_EXP__": "(-4931)",
-      "__LDBL_MIN_EXP__": "(-16381)",
-      "__LDBL_MIN__": "3.36210314311209350626267781732175260e-4932L",
-      "__LITTLE_ENDIAN__": "1",
-      "__LONG_LONG_MAX__": "9223372036854775807LL",
-      "__LONG_MAX__": "9223372036854775807L",
-      "__LP64__": "1",
-      "__NO_INLINE__": "1",
-      "__OBJC_BOOL_IS_BOOL": "0",
-      "__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES": "3",
-      "__OPENCL_MEMORY_SCOPE_DEVICE": "2",
-      "__OPENCL_MEMORY_SCOPE_SUB_GROUP": "4",
-      "__OPENCL_MEMORY_SCOPE_WORK_GROUP": "1",
-      "__OPENCL_MEMORY_SCOPE_WORK_ITEM": "0",
-      "__ORDER_BIG_ENDIAN__": "4321",
-      "__ORDER_LITTLE_ENDIAN__": "1234",
-      "__ORDER_PDP_ENDIAN__": "3412",
-      "__POINTER_WIDTH__": "64",
-      "__PRAGMA_REDEFINE_EXTNAME": "1",
-      "__PTRDIFF_FMTd__": "\"ld\"",
-      "__PTRDIFF_FMTi__": "\"li\"",
-      "__PTRDIFF_MAX__": "9223372036854775807L",
-      "__PTRDIFF_TYPE__": "long int",
-      "__PTRDIFF_WIDTH__": "64",
-      "__SCHAR_MAX__": "127",
-      "__SHRT_MAX__": "32767",
-      "__SIG_ATOMIC_MAX__": "2147483647",
-      "__SIG_ATOMIC_WIDTH__": "32",
-      "__SIZEOF_DOUBLE__": "8",
-      "__SIZEOF_FLOAT__": "4",
-      "__SIZEOF_INT128__": "16",
-      "__SIZEOF_INT__": "4",
-      "__SIZEOF_LONG_DOUBLE__": "16",
-      "__SIZEOF_LONG_LONG__": "8",
-      "__SIZEOF_LONG__": "8",
-      "__SIZEOF_POINTER__": "8",
-      "__SIZEOF_PTRDIFF_T__": "8",
-      "__SIZEOF_SHORT__": "2",
-      "__SIZEOF_SIZE_T__": "8",
-      "__SIZEOF_WCHAR_T__": "4",
-      "__SIZEOF_WINT_T__": "4",
-      "__SIZE_FMTX__": "\"lX\"",
-      "__SIZE_FMTo__": "\"lo\"",
-      "__SIZE_FMTu__": "\"lu\"",
-      "__SIZE_FMTx__": "\"lx\"",
-      "__SIZE_MAX__": "18446744073709551615UL",
-      "__SIZE_TYPE__": "long unsigned int",
-      "__SIZE_WIDTH__": "64",
-      "__STDCPP_DEFAULT_NEW_ALIGNMENT__": "16UL",
-      "__STDCPP_THREADS__": "1",
-      "__STDC_HOSTED__": "1",
-      "__STDC_UTF_16__": "1",
-      "__STDC_UTF_32__": "1",
-      "__STDC__": "1",
-      "__UINT16_C_SUFFIX__": "",
-      "__UINT16_FMTX__": "\"hX\"",
-      "__UINT16_FMTo__": "\"ho\"",
-      "__UINT16_FMTu__": "\"hu\"",
-      "__UINT16_FMTx__": "\"hx\"",
-      "__UINT16_MAX__": "65535",
-      "__UINT16_TYPE__": "unsigned short",
-      "__UINT32_C_SUFFIX__": "U",
-      "__UINT32_FMTX__": "\"X\"",
-      "__UINT32_FMTo__": "\"o\"",
-      "__UINT32_FMTu__": "\"u\"",
-      "__UINT32_FMTx__": "\"x\"",
-      "__UINT32_MAX__": "4294967295U",
-      "__UINT32_TYPE__": "unsigned int",
-      "__UINT64_C_SUFFIX__": "UL",
-      "__UINT64_FMTX__": "\"lX\"",
-      "__UINT64_FMTo__": "\"lo\"",
-      "__UINT64_FMTu__": "\"lu\"",
-      "__UINT64_FMTx__": "\"lx\"",
-      "__UINT64_MAX__": "18446744073709551615UL",
-      "__UINT64_TYPE__": "long unsigned int",
-      "__UINT8_C_SUFFIX__": "",
-      "__UINT8_FMTX__": "\"hhX\"",
-      "__UINT8_FMTo__": "\"hho\"",
-      "__UINT8_FMTu__": "\"hhu\"",
-      "__UINT8_FMTx__": "\"hhx\"",
-      "__UINT8_MAX__": "255",
-      "__UINT8_TYPE__": "unsigned char",
-      "__UINTMAX_C_SUFFIX__": "UL",
-      "__UINTMAX_FMTX__": "\"lX\"",
-      "__UINTMAX_FMTo__": "\"lo\"",
-      "__UINTMAX_FMTu__": "\"lu\"",
-      "__UINTMAX_FMTx__": "\"lx\"",
-      "__UINTMAX_MAX__": "18446744073709551615UL",
-      "__UINTMAX_TYPE__": "long unsigned int",
-      "__UINTMAX_WIDTH__": "64",
-      "__UINTPTR_FMTX__": "\"lX\"",
-      "__UINTPTR_FMTo__": "\"lo\"",
-      "__UINTPTR_FMTu__": "\"lu\"",
-      "__UINTPTR_FMTx__": "\"lx\"",
-      "__UINTPTR_MAX__": "18446744073709551615UL",
-      "__UINTPTR_TYPE__": "long unsigned int",
-      "__UINTPTR_WIDTH__": "64",
-      "__UINT_FAST16_FMTX__": "\"hX\"",
-      "__UINT_FAST16_FMTo__": "\"ho\"",
-      "__UINT_FAST16_FMTu__": "\"hu\"",
-      "__UINT_FAST16_FMTx__": "\"hx\"",
-      "__UINT_FAST16_MAX__": "65535",
-      "__UINT_FAST16_TYPE__": "unsigned short",
-      "__UINT_FAST32_FMTX__": "\"X\"",
-      "__UINT_FAST32_FMTo__": "\"o\"",
-      "__UINT_FAST32_FMTu__": "\"u\"",
-      "__UINT_FAST32_FMTx__": "\"x\"",
-      "__UINT_FAST32_MAX__": "4294967295U",
-      "__UINT_FAST32_TYPE__": "unsigned int",
-      "__UINT_FAST64_FMTX__": "\"lX\"",
-      "__UINT_FAST64_FMTo__": "\"lo\"",
-      "__UINT_FAST64_FMTu__": "\"lu\"",
-      "__UINT_FAST64_FMTx__": "\"lx\"",
-      "__UINT_FAST64_MAX__": "18446744073709551615UL",
-      "__UINT_FAST64_TYPE__": "long unsigned int",
-      "__UINT_FAST8_FMTX__": "\"hhX\"",
-      "__UINT_FAST8_FMTo__": "\"hho\"",
-      "__UINT_FAST8_FMTu__": "\"hhu\"",
-      "__UINT_FAST8_FMTx__": "\"hhx\"",
-      "__UINT_FAST8_MAX__": "255",
-      "__UINT_FAST8_TYPE__": "unsigned char",
-      "__UINT_LEAST16_FMTX__": "\"hX\"",
-      "__UINT_LEAST16_FMTo__": "\"ho\"",
-      "__UINT_LEAST16_FMTu__": "\"hu\"",
-      "__UINT_LEAST16_FMTx__": "\"hx\"",
-      "__UINT_LEAST16_MAX__": "65535",
-      "__UINT_LEAST16_TYPE__": "unsigned short",
-      "__UINT_LEAST32_FMTX__": "\"X\"",
-      "__UINT_LEAST32_FMTo__": "\"o\"",
-      "__UINT_LEAST32_FMTu__": "\"u\"",
-      "__UINT_LEAST32_FMTx__": "\"x\"",
-      "__UINT_LEAST32_MAX__": "4294967295U",
-      "__UINT_LEAST32_TYPE__": "unsigned int",
-      "__UINT_LEAST64_FMTX__": "\"lX\"",
-      "__UINT_LEAST64_FMTo__": "\"lo\"",
-      "__UINT_LEAST64_FMTu__": "\"lu\"",
-      "__UINT_LEAST64_FMTx__": "\"lx\"",
-      "__UINT_LEAST64_MAX__": "18446744073709551615UL",
-      "__UINT_LEAST64_TYPE__": "long unsigned int",
-      "__UINT_LEAST8_FMTX__": "\"hhX\"",
-      "__UINT_LEAST8_FMTo__": "\"hho\"",
-      "__UINT_LEAST8_FMTu__": "\"hhu\"",
-      "__UINT_LEAST8_FMTx__": "\"hhx\"",
-      "__UINT_LEAST8_MAX__": "255",
-      "__UINT_LEAST8_TYPE__": "unsigned char",
-      "__USER_LABEL_PREFIX__": "",
-      "__VERSION__": "\"Ubuntu Clang 12.0.1\"",
-      "__WCHAR_MAX__": "4294967295U",
-      "__WCHAR_TYPE__": "unsigned int",
-      "__WCHAR_UNSIGNED__": "1",
-      "__WCHAR_WIDTH__": "32",
-      "__WINT_MAX__": "4294967295U",
-      "__WINT_TYPE__": "unsigned int",
-      "__WINT_UNSIGNED__": "1",
-      "__WINT_WIDTH__": "32",
-      "__aarch64__": "1",
-      "__clang__": "1",
-      "__clang_major__": "12",
-      "__clang_minor__": "0",
-      "__clang_patchlevel__": "1",
-      "__clang_version__": "\"12.0.1 \"",
-      "__cplusplus": "201402L",
-      "__cpp_aggregate_nsdmi": "201304L",
-      "__cpp_alias_templates": "200704L",
-      "__cpp_attributes": "200809L",
-      "__cpp_binary_literals": "201304L",
-      "__cpp_constexpr": "201304L",
-      "__cpp_constexpr_in_decltype": "201711L",
-      "__cpp_decltype": "200707L",
-      "__cpp_decltype_auto": "201304L",
-      "__cpp_delegating_constructors": "200604L",
-      "__cpp_digit_separators": "201309L",
-      "__cpp_exceptions": "199711L",
-      "__cpp_generic_lambdas": "201304L",
-      "__cpp_impl_destroying_delete": "201806L",
-      "__cpp_inheriting_constructors": "201511L",
-      "__cpp_init_captures": "201304L",
-      "__cpp_initializer_lists": "200806L",
-      "__cpp_lambdas": "200907L",
-      "__cpp_nsdmi": "200809L",
-      "__cpp_range_based_for": "200907",
-      "__cpp_raw_strings": "200710L",
-      "__cpp_ref_qualifiers": "200710L",
-      "__cpp_return_type_deduction": "201304L",
-      "__cpp_rtti": "199711L",
-      "__cpp_rvalue_references": "200610L",
-      "__cpp_static_assert": "200410",
-      "__cpp_threadsafe_static_init": "200806L",
-      "__cpp_unicode_characters": "200704L",
-      "__cpp_unicode_literals": "200710L",
-      "__cpp_user_defined_literals": "200809L",
-      "__cpp_variable_templates": "201304L",
-      "__cpp_variadic_templates": "200704L",
-      "__gnu_linux__": "1",
-      "__linux": "1",
-      "__linux__": "1",
-      "__llvm__": "1",
-      "__private_extern__": "extern",
-      "__unix": "1",
-      "__unix__": "1",
-      "linux": "1",
-      "unix": "1"
-    },
-    "cpp_user_defines": {},
-    "cpp_user_undefines": [],
-    "c_compiler": "clang",
-    "c_compiler_defines": {
-      "_LP64": "1",
-      "__AARCH64EL__": "1",
-      "__AARCH64_CMODEL_SMALL__": "1",
-      "__ARM_64BIT_STATE": "1",
-      "__ARM_ACLE": "200",
-      "__ARM_ALIGN_MAX_STACK_PWR": "4",
-      "__ARM_ARCH": "8",
-      "__ARM_ARCH_ISA_A64": "1",
-      "__ARM_ARCH_PROFILE": "'A'",
-      "__ARM_FEATURE_CLZ": "1",
-      "__ARM_FEATURE_DIRECTED_ROUNDING": "1",
-      "__ARM_FEATURE_DIV": "1",
-      "__ARM_FEATURE_FMA": "1",
-      "__ARM_FEATURE_IDIV": "1",
-      "__ARM_FEATURE_LDREX": "0xF",
-      "__ARM_FEATURE_NUMERIC_MAXMIN": "1",
-      "__ARM_FEATURE_UNALIGNED": "1",
-      "__ARM_FP": "0xE",
-      "__ARM_FP16_ARGS": "1",
-      "__ARM_FP16_FORMAT_IEEE": "1",
-      "__ARM_NEON": "1",
-      "__ARM_NEON_FP": "0xE",
-      "__ARM_PCS_AAPCS64": "1",
-      "__ARM_SIZEOF_MINIMAL_ENUM": "4",
-      "__ARM_SIZEOF_WCHAR_T": "4",
-      "__ATOMIC_ACQUIRE": "2",
-      "__ATOMIC_ACQ_REL": "4",
-      "__ATOMIC_CONSUME": "1",
-      "__ATOMIC_RELAXED": "0",
-      "__ATOMIC_RELEASE": "3",
-      "__ATOMIC_SEQ_CST": "5",
-      "__BIGGEST_ALIGNMENT__": "16",
-      "__BYTE_ORDER__": "__ORDER_LITTLE_ENDIAN__",
-      "__CHAR16_TYPE__": "unsigned short",
-      "__CHAR32_TYPE__": "unsigned int",
-      "__CHAR_BIT__": "8",
-      "__CHAR_UNSIGNED__": "1",
-      "__CLANG_ATOMIC_BOOL_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR16_T_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR32_T_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_CHAR_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_INT_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_LLONG_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_LONG_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_POINTER_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_SHORT_LOCK_FREE": "2",
-      "__CLANG_ATOMIC_WCHAR_T_LOCK_FREE": "2",
-      "__CONSTANT_CFSTRINGS__": "1",
-      "__DBL_DECIMAL_DIG__": "17",
-      "__DBL_DENORM_MIN__": "4.9406564584124654e-324",
-      "__DBL_DIG__": "15",
-      "__DBL_EPSILON__": "2.2204460492503131e-16",
-      "__DBL_HAS_DENORM__": "1",
-      "__DBL_HAS_INFINITY__": "1",
-      "__DBL_HAS_QUIET_NAN__": "1",
-      "__DBL_MANT_DIG__": "53",
-      "__DBL_MAX_10_EXP__": "308",
-      "__DBL_MAX_EXP__": "1024",
-      "__DBL_MAX__": "1.7976931348623157e+308",
-      "__DBL_MIN_10_EXP__": "(-307)",
-      "__DBL_MIN_EXP__": "(-1021)",
-      "__DBL_MIN__": "2.2250738585072014e-308",
-      "__DECIMAL_DIG__": "__LDBL_DECIMAL_DIG__",
-      "__ELF__": "1",
-      "__FINITE_MATH_ONLY__": "0",
-      "__FLT16_DECIMAL_DIG__": "5",
-      "__FLT16_DENORM_MIN__": "5.9604644775390625e-8F16",
-      "__FLT16_DIG__": "3",
-      "__FLT16_EPSILON__": "9.765625e-4F16",
-      "__FLT16_HAS_DENORM__": "1",
-      "__FLT16_HAS_INFINITY__": "1",
-      "__FLT16_HAS_QUIET_NAN__": "1",
-      "__FLT16_MANT_DIG__": "11",
-      "__FLT16_MAX_10_EXP__": "4",
-      "__FLT16_MAX_EXP__": "16",
-      "__FLT16_MAX__": "6.5504e+4F16",
-      "__FLT16_MIN_10_EXP__": "(-4)",
-      "__FLT16_MIN_EXP__": "(-13)",
-      "__FLT16_MIN__": "6.103515625e-5F16",
-      "__FLT_DECIMAL_DIG__": "9",
-      "__FLT_DENORM_MIN__": "1.40129846e-45F",
-      "__FLT_DIG__": "6",
-      "__FLT_EPSILON__": "1.19209290e-7F",
-      "__FLT_EVAL_METHOD__": "0",
-      "__FLT_HAS_DENORM__": "1",
-      "__FLT_HAS_INFINITY__": "1",
-      "__FLT_HAS_QUIET_NAN__": "1",
-      "__FLT_MANT_DIG__": "24",
-      "__FLT_MAX_10_EXP__": "38",
-      "__FLT_MAX_EXP__": "128",
-      "__FLT_MAX__": "3.40282347e+38F",
-      "__FLT_MIN_10_EXP__": "(-37)",
-      "__FLT_MIN_EXP__": "(-125)",
-      "__FLT_MIN__": "1.17549435e-38F",
-      "__FLT_RADIX__": "2",
-      "__GCC_ATOMIC_BOOL_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR16_T_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR32_T_LOCK_FREE": "2",
-      "__GCC_ATOMIC_CHAR_LOCK_FREE": "2",
-      "__GCC_ATOMIC_INT_LOCK_FREE": "2",
-      "__GCC_ATOMIC_LLONG_LOCK_FREE": "2",
-      "__GCC_ATOMIC_LONG_LOCK_FREE": "2",
-      "__GCC_ATOMIC_POINTER_LOCK_FREE": "2",
-      "__GCC_ATOMIC_SHORT_LOCK_FREE": "2",
-      "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL": "1",
-      "__GCC_ATOMIC_WCHAR_T_LOCK_FREE": "2",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4": "1",
-      "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8": "1",
-      "__GNUC_MINOR__": "2",
-      "__GNUC_PATCHLEVEL__": "1",
-      "__GNUC_STDC_INLINE__": "1",
-      "__GNUC__": "4",
-      "__GXX_ABI_VERSION": "1002",
-      "__INT16_C_SUFFIX__": "",
-      "__INT16_FMTd__": "\"hd\"",
-      "__INT16_FMTi__": "\"hi\"",
-      "__INT16_MAX__": "32767",
-      "__INT16_TYPE__": "short",
-      "__INT32_C_SUFFIX__": "",
-      "__INT32_FMTd__": "\"d\"",
-      "__INT32_FMTi__": "\"i\"",
-      "__INT32_MAX__": "2147483647",
-      "__INT32_TYPE__": "int",
-      "__INT64_C_SUFFIX__": "L",
-      "__INT64_FMTd__": "\"ld\"",
-      "__INT64_FMTi__": "\"li\"",
-      "__INT64_MAX__": "9223372036854775807L",
-      "__INT64_TYPE__": "long int",
-      "__INT8_C_SUFFIX__": "",
-      "__INT8_FMTd__": "\"hhd\"",
-      "__INT8_FMTi__": "\"hhi\"",
-      "__INT8_MAX__": "127",
-      "__INT8_TYPE__": "signed char",
-      "__INTMAX_C_SUFFIX__": "L",
-      "__INTMAX_FMTd__": "\"ld\"",
-      "__INTMAX_FMTi__": "\"li\"",
-      "__INTMAX_MAX__": "9223372036854775807L",
-      "__INTMAX_TYPE__": "long int",
-      "__INTMAX_WIDTH__": "64",
-      "__INTPTR_FMTd__": "\"ld\"",
-      "__INTPTR_FMTi__": "\"li\"",
-      "__INTPTR_MAX__": "9223372036854775807L",
-      "__INTPTR_TYPE__": "long int",
-      "__INTPTR_WIDTH__": "64",
-      "__INT_FAST16_FMTd__": "\"hd\"",
-      "__INT_FAST16_FMTi__": "\"hi\"",
-      "__INT_FAST16_MAX__": "32767",
-      "__INT_FAST16_TYPE__": "short",
-      "__INT_FAST32_FMTd__": "\"d\"",
-      "__INT_FAST32_FMTi__": "\"i\"",
-      "__INT_FAST32_MAX__": "2147483647",
-      "__INT_FAST32_TYPE__": "int",
-      "__INT_FAST64_FMTd__": "\"ld\"",
-      "__INT_FAST64_FMTi__": "\"li\"",
-      "__INT_FAST64_MAX__": "9223372036854775807L",
-      "__INT_FAST64_TYPE__": "long int",
-      "__INT_FAST8_FMTd__": "\"hhd\"",
-      "__INT_FAST8_FMTi__": "\"hhi\"",
-      "__INT_FAST8_MAX__": "127",
-      "__INT_FAST8_TYPE__": "signed char",
-      "__INT_LEAST16_FMTd__": "\"hd\"",
-      "__INT_LEAST16_FMTi__": "\"hi\"",
-      "__INT_LEAST16_MAX__": "32767",
-      "__INT_LEAST16_TYPE__": "short",
-      "__INT_LEAST32_FMTd__": "\"d\"",
-      "__INT_LEAST32_FMTi__": "\"i\"",
-      "__INT_LEAST32_MAX__": "2147483647",
-      "__INT_LEAST32_TYPE__": "int",
-      "__INT_LEAST64_FMTd__": "\"ld\"",
-      "__INT_LEAST64_FMTi__": "\"li\"",
-      "__INT_LEAST64_MAX__": "9223372036854775807L",
-      "__INT_LEAST64_TYPE__": "long int",
-      "__INT_LEAST8_FMTd__": "\"hhd\"",
-      "__INT_LEAST8_FMTi__": "\"hhi\"",
-      "__INT_LEAST8_MAX__": "127",
-      "__INT_LEAST8_TYPE__": "signed char",
-      "__INT_MAX__": "2147483647",
-      "__LDBL_DECIMAL_DIG__": "36",
-      "__LDBL_DENORM_MIN__": "6.47517511943802511092443895822764655e-4966L",
-      "__LDBL_DIG__": "33",
-      "__LDBL_EPSILON__": "1.92592994438723585305597794258492732e-34L",
-      "__LDBL_HAS_DENORM__": "1",
-      "__LDBL_HAS_INFINITY__": "1",
-      "__LDBL_HAS_QUIET_NAN__": "1",
-      "__LDBL_MANT_DIG__": "113",
-      "__LDBL_MAX_10_EXP__": "4932",
-      "__LDBL_MAX_EXP__": "16384",
-      "__LDBL_MAX__": "1.18973149535723176508575932662800702e+4932L",
-      "__LDBL_MIN_10_EXP__": "(-4931)",
-      "__LDBL_MIN_EXP__": "(-16381)",
-      "__LDBL_MIN__": "3.36210314311209350626267781732175260e-4932L",
-      "__LITTLE_ENDIAN__": "1",
-      "__LONG_LONG_MAX__": "9223372036854775807LL",
-      "__LONG_MAX__": "9223372036854775807L",
-      "__LP64__": "1",
-      "__NO_INLINE__": "1",
-      "__OBJC_BOOL_IS_BOOL": "0",
-      "__OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES": "3",
-      "__OPENCL_MEMORY_SCOPE_DEVICE": "2",
-      "__OPENCL_MEMORY_SCOPE_SUB_GROUP": "4",
-      "__OPENCL_MEMORY_SCOPE_WORK_GROUP": "1",
-      "__OPENCL_MEMORY_SCOPE_WORK_ITEM": "0",
-      "__ORDER_BIG_ENDIAN__": "4321",
-      "__ORDER_LITTLE_ENDIAN__": "1234",
-      "__ORDER_PDP_ENDIAN__": "3412",
-      "__POINTER_WIDTH__": "64",
-      "__PRAGMA_REDEFINE_EXTNAME": "1",
-      "__PTRDIFF_FMTd__": "\"ld\"",
-      "__PTRDIFF_FMTi__": "\"li\"",
-      "__PTRDIFF_MAX__": "9223372036854775807L",
-      "__PTRDIFF_TYPE__": "long int",
-      "__PTRDIFF_WIDTH__": "64",
-      "__SCHAR_MAX__": "127",
-      "__SHRT_MAX__": "32767",
-      "__SIG_ATOMIC_MAX__": "2147483647",
-      "__SIG_ATOMIC_WIDTH__": "32",
-      "__SIZEOF_DOUBLE__": "8",
-      "__SIZEOF_FLOAT__": "4",
-      "__SIZEOF_INT128__": "16",
-      "__SIZEOF_INT__": "4",
-      "__SIZEOF_LONG_DOUBLE__": "16",
-      "__SIZEOF_LONG_LONG__": "8",
-      "__SIZEOF_LONG__": "8",
-      "__SIZEOF_POINTER__": "8",
-      "__SIZEOF_PTRDIFF_T__": "8",
-      "__SIZEOF_SHORT__": "2",
-      "__SIZEOF_SIZE_T__": "8",
-      "__SIZEOF_WCHAR_T__": "4",
-      "__SIZEOF_WINT_T__": "4",
-      "__SIZE_FMTX__": "\"lX\"",
-      "__SIZE_FMTo__": "\"lo\"",
-      "__SIZE_FMTu__": "\"lu\"",
-      "__SIZE_FMTx__": "\"lx\"",
-      "__SIZE_MAX__": "18446744073709551615UL",
-      "__SIZE_TYPE__": "long unsigned int",
-      "__SIZE_WIDTH__": "64",
-      "__STDC_HOSTED__": "1",
-      "__STDC_UTF_16__": "1",
-      "__STDC_UTF_32__": "1",
-      "__STDC_VERSION__": "201710L",
-      "__STDC__": "1",
-      "__UINT16_C_SUFFIX__": "",
-      "__UINT16_FMTX__": "\"hX\"",
-      "__UINT16_FMTo__": "\"ho\"",
-      "__UINT16_FMTu__": "\"hu\"",
-      "__UINT16_FMTx__": "\"hx\"",
-      "__UINT16_MAX__": "65535",
-      "__UINT16_TYPE__": "unsigned short",
-      "__UINT32_C_SUFFIX__": "U",
-      "__UINT32_FMTX__": "\"X\"",
-      "__UINT32_FMTo__": "\"o\"",
-      "__UINT32_FMTu__": "\"u\"",
-      "__UINT32_FMTx__": "\"x\"",
-      "__UINT32_MAX__": "4294967295U",
-      "__UINT32_TYPE__": "unsigned int",
-      "__UINT64_C_SUFFIX__": "UL",
-      "__UINT64_FMTX__": "\"lX\"",
-      "__UINT64_FMTo__": "\"lo\"",
-      "__UINT64_FMTu__": "\"lu\"",
-      "__UINT64_FMTx__": "\"lx\"",
-      "__UINT64_MAX__": "18446744073709551615UL",
-      "__UINT64_TYPE__": "long unsigned int",
-      "__UINT8_C_SUFFIX__": "",
-      "__UINT8_FMTX__": "\"hhX\"",
-      "__UINT8_FMTo__": "\"hho\"",
-      "__UINT8_FMTu__": "\"hhu\"",
-      "__UINT8_FMTx__": "\"hhx\"",
-      "__UINT8_MAX__": "255",
-      "__UINT8_TYPE__": "unsigned char",
-      "__UINTMAX_C_SUFFIX__": "UL",
-      "__UINTMAX_FMTX__": "\"lX\"",
-      "__UINTMAX_FMTo__": "\"lo\"",
-      "__UINTMAX_FMTu__": "\"lu\"",
-      "__UINTMAX_FMTx__": "\"lx\"",
-      "__UINTMAX_MAX__": "18446744073709551615UL",
-      "__UINTMAX_TYPE__": "long unsigned int",
-      "__UINTMAX_WIDTH__": "64",
-      "__UINTPTR_FMTX__": "\"lX\"",
-      "__UINTPTR_FMTo__": "\"lo\"",
-      "__UINTPTR_FMTu__": "\"lu\"",
-      "__UINTPTR_FMTx__": "\"lx\"",
-      "__UINTPTR_MAX__": "18446744073709551615UL",
-      "__UINTPTR_TYPE__": "long unsigned int",
-      "__UINTPTR_WIDTH__": "64",
-      "__UINT_FAST16_FMTX__": "\"hX\"",
-      "__UINT_FAST16_FMTo__": "\"ho\"",
-      "__UINT_FAST16_FMTu__": "\"hu\"",
-      "__UINT_FAST16_FMTx__": "\"hx\"",
-      "__UINT_FAST16_MAX__": "65535",
-      "__UINT_FAST16_TYPE__": "unsigned short",
-      "__UINT_FAST32_FMTX__": "\"X\"",
-      "__UINT_FAST32_FMTo__": "\"o\"",
-      "__UINT_FAST32_FMTu__": "\"u\"",
-      "__UINT_FAST32_FMTx__": "\"x\"",
-      "__UINT_FAST32_MAX__": "4294967295U",
-      "__UINT_FAST32_TYPE__": "unsigned int",
-      "__UINT_FAST64_FMTX__": "\"lX\"",
-      "__UINT_FAST64_FMTo__": "\"lo\"",
-      "__UINT_FAST64_FMTu__": "\"lu\"",
-      "__UINT_FAST64_FMTx__": "\"lx\"",
-      "__UINT_FAST64_MAX__": "18446744073709551615UL",
-      "__UINT_FAST64_TYPE__": "long unsigned int",
-      "__UINT_FAST8_FMTX__": "\"hhX\"",
-      "__UINT_FAST8_FMTo__": "\"hho\"",
-      "__UINT_FAST8_FMTu__": "\"hhu\"",
-      "__UINT_FAST8_FMTx__": "\"hhx\"",
-      "__UINT_FAST8_MAX__": "255",
-      "__UINT_FAST8_TYPE__": "unsigned char",
-      "__UINT_LEAST16_FMTX__": "\"hX\"",
-      "__UINT_LEAST16_FMTo__": "\"ho\"",
-      "__UINT_LEAST16_FMTu__": "\"hu\"",
-      "__UINT_LEAST16_FMTx__": "\"hx\"",
-      "__UINT_LEAST16_MAX__": "65535",
-      "__UINT_LEAST16_TYPE__": "unsigned short",
-      "__UINT_LEAST32_FMTX__": "\"X\"",
-      "__UINT_LEAST32_FMTo__": "\"o\"",
-      "__UINT_LEAST32_FMTu__": "\"u\"",
-      "__UINT_LEAST32_FMTx__": "\"x\"",
-      "__UINT_LEAST32_MAX__": "4294967295U",
-      "__UINT_LEAST32_TYPE__": "unsigned int",
-      "__UINT_LEAST64_FMTX__": "\"lX\"",
-      "__UINT_LEAST64_FMTo__": "\"lo\"",
-      "__UINT_LEAST64_FMTu__": "\"lu\"",
-      "__UINT_LEAST64_FMTx__": "\"lx\"",
-      "__UINT_LEAST64_MAX__": "18446744073709551615UL",
-      "__UINT_LEAST64_TYPE__": "long unsigned int",
-      "__UINT_LEAST8_FMTX__": "\"hhX\"",
-      "__UINT_LEAST8_FMTo__": "\"hho\"",
-      "__UINT_LEAST8_FMTu__": "\"hhu\"",
-      "__UINT_LEAST8_FMTx__": "\"hhx\"",
-      "__UINT_LEAST8_MAX__": "255",
-      "__UINT_LEAST8_TYPE__": "unsigned char",
-      "__USER_LABEL_PREFIX__": "",
-      "__VERSION__": "\"Ubuntu Clang 12.0.1\"",
-      "__WCHAR_MAX__": "4294967295U",
-      "__WCHAR_TYPE__": "unsigned int",
-      "__WCHAR_UNSIGNED__": "1",
-      "__WCHAR_WIDTH__": "32",
-      "__WINT_MAX__": "4294967295U",
-      "__WINT_TYPE__": "unsigned int",
-      "__WINT_UNSIGNED__": "1",
-      "__WINT_WIDTH__": "32",
-      "__aarch64__": "1",
-      "__clang__": "1",
-      "__clang_major__": "12",
-      "__clang_minor__": "0",
-      "__clang_patchlevel__": "1",
-      "__clang_version__": "\"12.0.1 \"",
-      "__gnu_linux__": "1",
-      "__linux": "1",
-      "__linux__": "1",
-      "__llvm__": "1",
-      "__unix": "1",
-      "__unix__": "1",
-      "linux": "1",
-      "unix": "1"
-    },
-    "c_user_defines": {},
-    "c_user_undefines": []
-  },
-  "target_sizes": {
-    "char_bit": 8,
-    "short": 2,
-    "int": 4,
-    "long": 8,
-    "float": 4,
-    "double": 8,
-    "long_double": 16,
-    "pointer": 8,
-    "ldbl_mant_dig": 113,
-    "char": 1
-  },
-  "wchar_t_type": "unsigned int",
-  "ptrdiff_t_type": "long",
-  "size_t_type": "unsigned long",
-  "supports_x86_64": true
-}

+ 0 - 1
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/.cmake/api/v1/query/client-MicrosoftVS/query.json

@@ -1 +0,0 @@
-{"requests":[{"kind":"cache","version":2},{"kind":"cmakeFiles","version":1},{"kind":"codemodel","version":2},{"kind":"toolchains","version":1}]}

+ 0 - 369
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeCache.txt

@@ -1,369 +0,0 @@
-# This is the CMakeCache file.
-# For build in directory: c:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem/out/build/x64-Debug
-# It was generated by CMake: C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe
-# You can edit this file to change values found and used by cmake.
-# If you do not want to change any of the values, simply exit the editor.
-# If you do want to change a value, simply edit, save, and exit the editor.
-# The syntax for the file is as follows:
-# KEY:TYPE=VALUE
-# KEY is the name of a variable in the cache.
-# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
-# VALUE is the current value for the KEY.
-
-########################
-# EXTERNAL cache entries
-########################
-
-//Path to a program.
-CMAKE_AR:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/lib.exe
-
-//No help, variable specified on the command line.
-CMAKE_BUILD_TYPE:STRING=Debug
-
-//CXX compiler
-CMAKE_CXX_COMPILER:STRING=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe
-
-//Flags used by the CXX compiler during all build types.
-CMAKE_CXX_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3 /GR /EHsc
-
-//Flags used by the CXX compiler during DEBUG builds.
-CMAKE_CXX_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
-
-//Flags used by the CXX compiler during MINSIZEREL builds.
-CMAKE_CXX_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
-
-//Flags used by the CXX compiler during RELEASE builds.
-CMAKE_CXX_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
-
-//Flags used by the CXX compiler during RELWITHDEBINFO builds.
-CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
-
-//Libraries linked by default with all C++ applications.
-CMAKE_CXX_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
-
-//C compiler
-CMAKE_C_COMPILER:STRING=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe
-
-//Flags used by the C compiler during all build types.
-CMAKE_C_FLAGS:STRING=/DWIN32 /D_WINDOWS /W3
-
-//Flags used by the C compiler during DEBUG builds.
-CMAKE_C_FLAGS_DEBUG:STRING=/MDd /Zi /Ob0 /Od /RTC1
-
-//Flags used by the C compiler during MINSIZEREL builds.
-CMAKE_C_FLAGS_MINSIZEREL:STRING=/MD /O1 /Ob1 /DNDEBUG
-
-//Flags used by the C compiler during RELEASE builds.
-CMAKE_C_FLAGS_RELEASE:STRING=/MD /O2 /Ob2 /DNDEBUG
-
-//Flags used by the C compiler during RELWITHDEBINFO builds.
-CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=/MD /Zi /O2 /Ob1 /DNDEBUG
-
-//Libraries linked by default with all C applications.
-CMAKE_C_STANDARD_LIBRARIES:STRING=kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
-
-//Flags used by the linker during all build types.
-CMAKE_EXE_LINKER_FLAGS:STRING=/machine:x64
-
-//Flags used by the linker during DEBUG builds.
-CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
-
-//Flags used by the linker during MINSIZEREL builds.
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during RELEASE builds.
-CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during RELWITHDEBINFO builds.
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
-
-//Enable/Disable output of compile commands during generation.
-CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
-
-//Value Computed by CMake.
-CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=C:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem/out/build/x64-Debug/CMakeFiles/pkgRedirects
-
-//No help, variable specified on the command line.
-CMAKE_INSTALL_PREFIX:PATH=C:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem/out/install/x64-Debug
-
-//Path to a program.
-CMAKE_LINKER:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/link.exe
-
-//make program
-CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe
-
-//Flags used by the linker during the creation of modules during
-// all build types.
-CMAKE_MODULE_LINKER_FLAGS:STRING=/machine:x64
-
-//Flags used by the linker during the creation of modules during
-// DEBUG builds.
-CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
-
-//Flags used by the linker during the creation of modules during
-// MINSIZEREL builds.
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during the creation of modules during
-// RELEASE builds.
-CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during the creation of modules during
-// RELWITHDEBINFO builds.
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
-
-//Path to a program.
-CMAKE_MT:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64/mt.exe
-
-//Value Computed by CMake
-CMAKE_PROJECT_DESCRIPTION:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
-
-//Value Computed by CMake
-CMAKE_PROJECT_NAME:STATIC=EgoSystem
-
-//Value Computed by CMake
-CMAKE_PROJECT_VERSION:STATIC=1.0.0
-
-//Value Computed by CMake
-CMAKE_PROJECT_VERSION_MAJOR:STATIC=1
-
-//Value Computed by CMake
-CMAKE_PROJECT_VERSION_MINOR:STATIC=0
-
-//Value Computed by CMake
-CMAKE_PROJECT_VERSION_PATCH:STATIC=0
-
-//Value Computed by CMake
-CMAKE_PROJECT_VERSION_TWEAK:STATIC=
-
-//RC compiler
-CMAKE_RC_COMPILER:FILEPATH=C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64/rc.exe
-
-//Flags for Windows Resource Compiler during all build types.
-CMAKE_RC_FLAGS:STRING=-DWIN32
-
-//Flags for Windows Resource Compiler during DEBUG builds.
-CMAKE_RC_FLAGS_DEBUG:STRING=-D_DEBUG
-
-//Flags for Windows Resource Compiler during MINSIZEREL builds.
-CMAKE_RC_FLAGS_MINSIZEREL:STRING=
-
-//Flags for Windows Resource Compiler during RELEASE builds.
-CMAKE_RC_FLAGS_RELEASE:STRING=
-
-//Flags for Windows Resource Compiler during RELWITHDEBINFO builds.
-CMAKE_RC_FLAGS_RELWITHDEBINFO:STRING=
-
-//Flags used by the linker during the creation of shared libraries
-// during all build types.
-CMAKE_SHARED_LINKER_FLAGS:STRING=/machine:x64
-
-//Flags used by the linker during the creation of shared libraries
-// during DEBUG builds.
-CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=/debug /INCREMENTAL
-
-//Flags used by the linker during the creation of shared libraries
-// during MINSIZEREL builds.
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during the creation of shared libraries
-// during RELEASE builds.
-CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=/INCREMENTAL:NO
-
-//Flags used by the linker during the creation of shared libraries
-// during RELWITHDEBINFO builds.
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=/debug /INCREMENTAL
-
-//If set, runtime paths are not added when installing shared libraries,
-// but are added when building.
-CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
-
-//If set, runtime paths are not added when using shared libraries.
-CMAKE_SKIP_RPATH:BOOL=NO
-
-//Flags used by the linker during the creation of static libraries
-// during all build types.
-CMAKE_STATIC_LINKER_FLAGS:STRING=/machine:x64
-
-//Flags used by the linker during the creation of static libraries
-// during DEBUG builds.
-CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during MINSIZEREL builds.
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELEASE builds.
-CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
-
-//Flags used by the linker during the creation of static libraries
-// during RELWITHDEBINFO builds.
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
-
-//If this value is on, makefiles will be generated without the
-// .SILENT directive, and all commands will be echoed to the console
-// during the make.  This is useful for debugging only. With Visual
-// Studio IDE projects all commands are done without /nologo.
-CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
-
-//Value Computed by CMake
-EgoSystem_BINARY_DIR:STATIC=C:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem/out/build/x64-Debug
-
-//Value Computed by CMake
-EgoSystem_IS_TOP_LEVEL:STATIC=ON
-
-//Value Computed by CMake
-EgoSystem_SOURCE_DIR:STATIC=C:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem
-
-//Arguments to supply to pkg-config
-PKG_CONFIG_ARGN:STRING=
-
-//pkg-config executable
-PKG_CONFIG_EXECUTABLE:FILEPATH=PKG_CONFIG_EXECUTABLE-NOTFOUND
-
-
-########################
-# INTERNAL cache entries
-########################
-
-//ADVANCED property for variable: CMAKE_AR
-CMAKE_AR-ADVANCED:INTERNAL=1
-//This is the directory where this CMakeCache.txt was created
-CMAKE_CACHEFILE_DIR:INTERNAL=c:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem/out/build/x64-Debug
-//Major version of cmake used to create the current loaded cache
-CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
-//Minor version of cmake used to create the current loaded cache
-CMAKE_CACHE_MINOR_VERSION:INTERNAL=25
-//Patch version of cmake used to create the current loaded cache
-CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
-//Path to CMake executable.
-CMAKE_COMMAND:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cmake.exe
-//Path to cpack program executable.
-CMAKE_CPACK_COMMAND:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/cpack.exe
-//Path to ctest program executable.
-CMAKE_CTEST_COMMAND:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin/ctest.exe
-//ADVANCED property for variable: CMAKE_CXX_COMPILER
-CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS
-CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
-CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
-CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
-CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
-CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES
-CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_COMPILER
-CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS
-CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
-CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
-CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
-CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
-CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES
-CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1
-//Executable file format
-CMAKE_EXECUTABLE_FORMAT:INTERNAL=Unknown
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
-CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
-CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
-CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
-CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
-CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
-//Name of external makefile project generator.
-CMAKE_EXTRA_GENERATOR:INTERNAL=
-//Name of generator.
-CMAKE_GENERATOR:INTERNAL=Ninja
-//Generator instance identifier.
-CMAKE_GENERATOR_INSTANCE:INTERNAL=
-//Name of generator platform.
-CMAKE_GENERATOR_PLATFORM:INTERNAL=
-//Name of generator toolset.
-CMAKE_GENERATOR_TOOLSET:INTERNAL=
-//Source directory with the top level CMakeLists.txt file for this
-// project
-CMAKE_HOME_DIRECTORY:INTERNAL=C:/Users/雷蛇/Desktop/project0405/EgoZJ/EgoSystem
-//ADVANCED property for variable: CMAKE_LINKER
-CMAKE_LINKER-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
-CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
-CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
-CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
-CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_MT
-CMAKE_MT-ADVANCED:INTERNAL=1
-//number of local generators
-CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
-//Platform information initialized
-CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
-//noop for ranlib
-CMAKE_RANLIB:INTERNAL=:
-//ADVANCED property for variable: CMAKE_RC_COMPILER
-CMAKE_RC_COMPILER-ADVANCED:INTERNAL=1
-CMAKE_RC_COMPILER_WORKS:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RC_FLAGS
-CMAKE_RC_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RC_FLAGS_DEBUG
-CMAKE_RC_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RC_FLAGS_MINSIZEREL
-CMAKE_RC_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RC_FLAGS_RELEASE
-CMAKE_RC_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_RC_FLAGS_RELWITHDEBINFO
-CMAKE_RC_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//Path to CMake installation.
-CMAKE_ROOT:INTERNAL=C:/Program Files/Microsoft Visual Studio/2022/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.25
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
-CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
-CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
-CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
-CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
-CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_SKIP_RPATH
-CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
-CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
-CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
-CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
-CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
-CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
-CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: PKG_CONFIG_ARGN
-PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
-//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
-PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
-

+ 0 - 72
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeCCompiler.cmake

@@ -1,72 +0,0 @@
-set(CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe")
-set(CMAKE_C_COMPILER_ARG1 "")
-set(CMAKE_C_COMPILER_ID "MSVC")
-set(CMAKE_C_COMPILER_VERSION "19.35.32216.1")
-set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_C_COMPILER_WRAPPER "")
-set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "90")
-set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "OFF")
-set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17")
-set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
-set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
-set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
-set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
-set(CMAKE_C23_COMPILE_FEATURES "")
-
-set(CMAKE_C_PLATFORM_ID "Windows")
-set(CMAKE_C_SIMULATE_ID "")
-set(CMAKE_C_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_C_SIMULATE_VERSION "")
-set(CMAKE_C_COMPILER_ARCHITECTURE_ID x64)
-
-set(MSVC_C_ARCHITECTURE_ID x64)
-
-set(CMAKE_AR "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/lib.exe")
-set(CMAKE_C_COMPILER_AR "")
-set(CMAKE_RANLIB ":")
-set(CMAKE_C_COMPILER_RANLIB "")
-set(CMAKE_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/link.exe")
-set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64/mt.exe")
-set(CMAKE_COMPILER_IS_GNUCC )
-set(CMAKE_C_COMPILER_LOADED 1)
-set(CMAKE_C_COMPILER_WORKS TRUE)
-set(CMAKE_C_ABI_COMPILED TRUE)
-
-set(CMAKE_C_COMPILER_ENV_VAR "CC")
-
-set(CMAKE_C_COMPILER_ID_RUN 1)
-set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
-set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
-set(CMAKE_C_LINKER_PREFERENCE 10)
-
-# Save compiler ABI information.
-set(CMAKE_C_SIZEOF_DATA_PTR "8")
-set(CMAKE_C_COMPILER_ABI "")
-set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
-set(CMAKE_C_LIBRARY_ARCHITECTURE "")
-
-if(CMAKE_C_SIZEOF_DATA_PTR)
-  set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_C_COMPILER_ABI)
-  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
-endif()
-
-if(CMAKE_C_LIBRARY_ARCHITECTURE)
-  set(CMAKE_LIBRARY_ARCHITECTURE "")
-endif()
-
-set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "注意: 包含文件:  ")
-if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
-  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "")
-set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
-set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "")
-set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

+ 0 - 83
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeCXXCompiler.cmake

@@ -1,83 +0,0 @@
-set(CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/cl.exe")
-set(CMAKE_CXX_COMPILER_ARG1 "")
-set(CMAKE_CXX_COMPILER_ID "MSVC")
-set(CMAKE_CXX_COMPILER_VERSION "19.35.32216.1")
-set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
-set(CMAKE_CXX_COMPILER_WRAPPER "")
-set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14")
-set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "OFF")
-set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23")
-set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
-set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
-set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
-set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
-set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
-set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
-
-set(CMAKE_CXX_PLATFORM_ID "Windows")
-set(CMAKE_CXX_SIMULATE_ID "")
-set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "")
-set(CMAKE_CXX_SIMULATE_VERSION "")
-set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID x64)
-
-set(MSVC_CXX_ARCHITECTURE_ID x64)
-
-set(CMAKE_AR "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/lib.exe")
-set(CMAKE_CXX_COMPILER_AR "")
-set(CMAKE_RANLIB ":")
-set(CMAKE_CXX_COMPILER_RANLIB "")
-set(CMAKE_LINKER "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.35.32215/bin/Hostx64/x64/link.exe")
-set(CMAKE_MT "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64/mt.exe")
-set(CMAKE_COMPILER_IS_GNUCXX )
-set(CMAKE_CXX_COMPILER_LOADED 1)
-set(CMAKE_CXX_COMPILER_WORKS TRUE)
-set(CMAKE_CXX_ABI_COMPILED TRUE)
-
-set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
-
-set(CMAKE_CXX_COMPILER_ID_RUN 1)
-set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
-set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
-
-foreach (lang C OBJC OBJCXX)
-  if (CMAKE_${lang}_COMPILER_ID_RUN)
-    foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
-      list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
-    endforeach()
-  endif()
-endforeach()
-
-set(CMAKE_CXX_LINKER_PREFERENCE 30)
-set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
-
-# Save compiler ABI information.
-set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
-set(CMAKE_CXX_COMPILER_ABI "")
-set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
-set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
-
-if(CMAKE_CXX_SIZEOF_DATA_PTR)
-  set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
-endif()
-
-if(CMAKE_CXX_COMPILER_ABI)
-  set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
-endif()
-
-if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
-  set(CMAKE_LIBRARY_ARCHITECTURE "")
-endif()
-
-set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "注意: 包含文件:  ")
-if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
-  set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
-endif()
-
-
-
-
-
-set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "")
-set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
-set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
-set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")

+ 0 - 6
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeRCCompiler.cmake

@@ -1,6 +0,0 @@
-set(CMAKE_RC_COMPILER "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x64/rc.exe")
-set(CMAKE_RC_COMPILER_ARG1 "")
-set(CMAKE_RC_COMPILER_LOADED 1)
-set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC)
-set(CMAKE_RC_OUTPUT_EXTENSION .res)
-set(CMAKE_RC_COMPILER_ENV_VAR "RC")

+ 0 - 15
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CMakeSystem.cmake

@@ -1,15 +0,0 @@
-set(CMAKE_HOST_SYSTEM "Windows-10.0.22621")
-set(CMAKE_HOST_SYSTEM_NAME "Windows")
-set(CMAKE_HOST_SYSTEM_VERSION "10.0.22621")
-set(CMAKE_HOST_SYSTEM_PROCESSOR "AMD64")
-
-
-
-set(CMAKE_SYSTEM "Windows-10.0.22621")
-set(CMAKE_SYSTEM_NAME "Windows")
-set(CMAKE_SYSTEM_VERSION "10.0.22621")
-set(CMAKE_SYSTEM_PROCESSOR "AMD64")
-
-set(CMAKE_CROSSCOMPILING "FALSE")
-
-set(CMAKE_SYSTEM_LOADED 1)

+ 0 - 868
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CompilerIdC/CMakeCCompilerId.c

@@ -1,868 +0,0 @@
-#ifdef __cplusplus
-# error "A C++ compiler has been selected for C."
-#endif
-
-#if defined(__18CXX)
-# define ID_VOID_MAIN
-#endif
-#if defined(__CLASSIC_C__)
-/* cv-qualifiers did not exist in K&R C */
-# define const
-# define volatile
-#endif
-
-#if !defined(__has_include)
-/* If the compiler does not have __has_include, pretend the answer is
-   always no.  */
-#  define __has_include(x) 0
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
-   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
-
-#if defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_ID "GNU"
-# endif
-  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
-     except that a few beta releases use the old format with V=2021.  */
-# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-#  if defined(__INTEL_COMPILER_UPDATE)
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-#  else
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
-#  endif
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
-   /* The third version component from --version is an update index,
-      but no macro is provided for it.  */
-#  define COMPILER_VERSION_PATCH DEC(0)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
-   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
-# define COMPILER_ID "IntelLLVM"
-#if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-#endif
-/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
- * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
- * VVVV is no smaller than the current year when a version is released.
- */
-#if __INTEL_LLVM_COMPILER < 1000000L
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
-#else
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
-#endif
-#if defined(_MSC_VER)
-  /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-#endif
-#if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#endif
-#if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
-  /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
-   /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
-   /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_C)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_C >= 0x5100
-   /* __SUNPRO_C = 0xVRRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
-# else
-   /* __SUNPRO_CC = 0xVRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_C    & 0xF)
-# endif
-
-#elif defined(__HP_cc)
-# define COMPILER_ID "HP"
-  /* __HP_cc = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_cc     % 100)
-
-#elif defined(__DECC)
-# define COMPILER_ID "Compaq"
-  /* __DECC_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000  % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECC_VER         % 10000)
-
-#elif defined(__IBMC__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__open_xl__) && defined(__clang__)
-# define COMPILER_ID "IBMClang"
-# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
-# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
-# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
-
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
-# define COMPILER_ID "XL"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
-# define COMPILER_ID "VisualAge"
-  /* __IBMC__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMC__    % 10)
-
-#elif defined(__NVCOMPILER)
-# define COMPILER_ID "NVHPC"
-# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
-# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
-# if defined(__NVCOMPILER_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
-# endif
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
-  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
-
-#elif defined(__CLANG_FUJITSU)
-# define COMPILER_ID "FujitsuClang"
-# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# define COMPILER_VERSION_INTERNAL_STR __clang_version__
-
-
-#elif defined(__FUJITSU)
-# define COMPILER_ID "Fujitsu"
-# if defined(__FCC_version__)
-#   define COMPILER_VERSION __FCC_version__
-# elif defined(__FCC_major__)
-#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# endif
-# if defined(__fcc_version)
-#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
-# elif defined(__FCC_VERSION)
-#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
-# endif
-
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
-# endif
-
-#elif defined(__TASKING__)
-# define COMPILER_ID "Tasking"
-  # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
-  # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
-# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
-
-#elif defined(__TINYC__)
-# define COMPILER_ID "TinyCC"
-
-#elif defined(__BCC__)
-# define COMPILER_ID "Bruce"
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
-  /* __ARMCC_VERSION = VRRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
-#else
-  /* __ARMCC_VERSION = VRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
-# define COMPILER_ID "LCC"
-# define COMPILER_VERSION_MAJOR DEC(1)
-# if defined(__LCC__)
-#  define COMPILER_VERSION_MINOR DEC(__LCC__- 100)
-# endif
-# if defined(__LCC_MINOR__)
-#  define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
-# endif
-# if defined(__GNUC__) && defined(__GNUC_MINOR__)
-#  define SIMULATE_ID "GNU"
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#  if defined(__GNUC_PATCHLEVEL__)
-#   define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#  endif
-# endif
-
-#elif defined(__GNUC__)
-# define COMPILER_ID "GNU"
-# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# if defined(__GNUC_MINOR__)
-#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
-  /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-#  if _MSC_VER >= 1400
-    /* _MSC_FULL_VER = VVRRPPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-#  else
-    /* _MSC_FULL_VER = VVRRPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-#  endif
-# endif
-# if defined(_MSC_BUILD)
-#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(_ADI_COMPILER)
-# define COMPILER_ID "ADSP"
-#if defined(__VERSIONNUM__)
-  /* __VERSIONNUM__ = 0xVVRRPPTT */
-#  define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
-#  define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
-#  define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
-#  define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
-# define COMPILER_ID "SDCC"
-# if defined(__SDCC_VERSION_MAJOR)
-#  define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
-#  define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
-#  define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
-# else
-  /* SDCC = VRP */
-#  define COMPILER_VERSION_MAJOR DEC(SDCC/100)
-#  define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
-#  define COMPILER_VERSION_PATCH DEC(SDCC    % 10)
-# endif
-
-
-/* These compilers are either not known or too old to define an
-  identification macro.  Try to identify the platform and guess that
-  it is the native compiler.  */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name.  */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__MSYS__)
-# define PLATFORM_ID "MSYS"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-#  define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-#  define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-#  define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-#  define PLATFORM_ID "Windows3x"
-
-# elif defined(__VXWORKS__)
-#  define PLATFORM_ID "VxWorks"
-
-# else /* unknown platform */
-#  define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-#  define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-#  define PLATFORM_ID "Integrity"
-# endif
-
-# elif defined(_ADI_COMPILER)
-#  define PLATFORM_ID "ADSP"
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
-   the architecture of the compiler being used.  This is because
-   the compilers do not have flags that can change the architecture,
-   but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-#  define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_ARM64EC)
-#  define ARCHITECTURE_ID "ARM64EC"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-#  define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-#  if _M_ARM == 4
-#   define ARCHITECTURE_ID "ARMV4I"
-#  elif _M_ARM == 5
-#   define ARCHITECTURE_ID "ARMV5I"
-#  else
-#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-#  endif
-
-# elif defined(_M_MIPS)
-#  define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-#  define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-#  define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-#  define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-#  define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-#  define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-#  define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-#  define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-#  define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__ICCSTM8__)
-#  define ARCHITECTURE_ID "STM8"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-#  define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-#  define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__TI_COMPILER_VERSION__)
-# if defined(__TI_ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__MSP430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__TMS320C28XX__)
-#  define ARCHITECTURE_ID "TMS320C28x"
-
-# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
-#  define ARCHITECTURE_ID "TMS320C6x"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-# elif defined(__ADSPSHARC__)
-#  define ARCHITECTURE_ID "SHARC"
-
-# elif defined(__ADSPBLACKFIN__)
-#  define ARCHITECTURE_ID "Blackfin"
-
-#elif defined(__TASKING__)
-
-# if defined(__CTC__) || defined(__CPTC__)
-#  define ARCHITECTURE_ID "TriCore"
-
-# elif defined(__CMCS__)
-#  define ARCHITECTURE_ID "MCS"
-
-# elif defined(__CARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__CARC__)
-#  define ARCHITECTURE_ID "ARC"
-
-# elif defined(__C51__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__CPCP__)
-#  define ARCHITECTURE_ID "PCP"
-
-# else
-#  define ARCHITECTURE_ID ""
-# endif
-
-#else
-#  define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals.  */
-#define DEC(n)                   \
-  ('0' + (((n) / 10000000)%10)), \
-  ('0' + (((n) / 1000000)%10)),  \
-  ('0' + (((n) / 100000)%10)),   \
-  ('0' + (((n) / 10000)%10)),    \
-  ('0' + (((n) / 1000)%10)),     \
-  ('0' + (((n) / 100)%10)),      \
-  ('0' + (((n) / 10)%10)),       \
-  ('0' +  ((n) % 10))
-
-/* Convert integer to hex digit literals.  */
-#define HEX(n)             \
-  ('0' + ((n)>>28 & 0xF)), \
-  ('0' + ((n)>>24 & 0xF)), \
-  ('0' + ((n)>>20 & 0xF)), \
-  ('0' + ((n)>>16 & 0xF)), \
-  ('0' + ((n)>>12 & 0xF)), \
-  ('0' + ((n)>>8  & 0xF)), \
-  ('0' + ((n)>>4  & 0xF)), \
-  ('0' + ((n)     & 0xF))
-
-/* Construct a string literal encoding the version number. */
-#ifdef COMPILER_VERSION
-char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
-
-/* Construct a string literal encoding the version number components. */
-#elif defined(COMPILER_VERSION_MAJOR)
-char const info_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
-  COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
-  '.', COMPILER_VERSION_MINOR,
-#  ifdef COMPILER_VERSION_PATCH
-   '.', COMPILER_VERSION_PATCH,
-#   ifdef COMPILER_VERSION_TWEAK
-    '.', COMPILER_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
-  'i','n','t','e','r','n','a','l','[',
-  COMPILER_VERSION_INTERNAL,']','\0'};
-#elif defined(COMPILER_VERSION_INTERNAL_STR)
-char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
-  SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
-  '.', SIMULATE_VERSION_MINOR,
-#  ifdef SIMULATE_VERSION_PATCH
-   '.', SIMULATE_VERSION_PATCH,
-#   ifdef SIMULATE_VERSION_TWEAK
-    '.', SIMULATE_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-#if !defined(__STDC__) && !defined(__clang__)
-# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
-#  define C_VERSION "90"
-# else
-#  define C_VERSION
-# endif
-#elif __STDC_VERSION__ > 201710L
-# define C_VERSION "23"
-#elif __STDC_VERSION__ >= 201710L
-# define C_VERSION "17"
-#elif __STDC_VERSION__ >= 201000L
-# define C_VERSION "11"
-#elif __STDC_VERSION__ >= 199901L
-# define C_VERSION "99"
-#else
-# define C_VERSION "90"
-#endif
-const char* info_language_standard_default =
-  "INFO" ":" "standard_default[" C_VERSION "]";
-
-const char* info_language_extensions_default = "INFO" ":" "extensions_default["
-#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) ||           \
-     defined(__TI_COMPILER_VERSION__)) &&                                     \
-  !defined(__STRICT_ANSI__)
-  "ON"
-#else
-  "OFF"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-#ifdef ID_VOID_MAIN
-void main() {}
-#else
-# if defined(__CLASSIC_C__)
-int main(argc, argv) int argc; char *argv[];
-# else
-int main(int argc, char* argv[])
-# endif
-{
-  int require = 0;
-  require += info_compiler[argc];
-  require += info_platform[argc];
-  require += info_arch[argc];
-#ifdef COMPILER_VERSION_MAJOR
-  require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
-  require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
-  require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
-  require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-  require += info_cray[argc];
-#endif
-  require += info_language_standard_default[argc];
-  require += info_language_extensions_default[argc];
-  (void)argv;
-  return require;
-}
-#endif

+ 0 - 857
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/3.25.1-msvc1/CompilerIdCXX/CMakeCXXCompilerId.cpp

@@ -1,857 +0,0 @@
-/* This source file must have a .cpp extension so that all C++ compilers
-   recognize the extension without flags.  Borland does not know .cxx for
-   example.  */
-#ifndef __cplusplus
-# error "A C compiler has been selected for C++."
-#endif
-
-#if !defined(__has_include)
-/* If the compiler does not have __has_include, pretend the answer is
-   always no.  */
-#  define __has_include(x) 0
-#endif
-
-
-/* Version number components: V=Version, R=Revision, P=Patch
-   Version date components:   YYYY=Year, MM=Month,   DD=Day  */
-
-#if defined(__COMO__)
-# define COMPILER_ID "Comeau"
-  /* __COMO_VERSION__ = VRR */
-# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100)
-# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100)
-
-#elif defined(__INTEL_COMPILER) || defined(__ICC)
-# define COMPILER_ID "Intel"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_ID "GNU"
-# endif
-  /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
-     except that a few beta releases use the old format with V=2021.  */
-# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
-#  if defined(__INTEL_COMPILER_UPDATE)
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
-#  else
-#   define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER   % 10)
-#  endif
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
-#  define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
-   /* The third version component from --version is an update index,
-      but no macro is provided for it.  */
-#  define COMPILER_VERSION_PATCH DEC(0)
-# endif
-# if defined(__INTEL_COMPILER_BUILD_DATE)
-   /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
-#  define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
-# endif
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# if defined(__GNUC__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-# elif defined(__GNUG__)
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
-# define COMPILER_ID "IntelLLVM"
-#if defined(_MSC_VER)
-# define SIMULATE_ID "MSVC"
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_ID "GNU"
-#endif
-/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
- * later.  Look for 6 digit vs. 8 digit version number to decide encoding.
- * VVVV is no smaller than the current year when a version is released.
- */
-#if __INTEL_LLVM_COMPILER < 1000000L
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER    % 10)
-#else
-# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
-# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER     % 100)
-#endif
-#if defined(_MSC_VER)
-  /* _MSC_VER = VVRR */
-# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-#endif
-#if defined(__GNUC__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#elif defined(__GNUG__)
-# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
-#endif
-#if defined(__GNUC_MINOR__)
-# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#endif
-#if defined(__GNUC_PATCHLEVEL__)
-# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#endif
-
-#elif defined(__PATHCC__)
-# define COMPILER_ID "PathScale"
-# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
-# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
-# if defined(__PATHCC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
-# endif
-
-#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
-# define COMPILER_ID "Embarcadero"
-# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
-# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
-# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__     & 0xFFFF)
-
-#elif defined(__BORLANDC__)
-# define COMPILER_ID "Borland"
-  /* __BORLANDC__ = 0xVRR */
-# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
-# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
-
-#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
-# define COMPILER_ID "Watcom"
-   /* __WATCOMC__ = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__WATCOMC__)
-# define COMPILER_ID "OpenWatcom"
-   /* __WATCOMC__ = VVRP + 1100 */
-# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
-# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
-# if (__WATCOMC__ % 10) > 0
-#  define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
-# endif
-
-#elif defined(__SUNPRO_CC)
-# define COMPILER_ID "SunPro"
-# if __SUNPRO_CC >= 0x5100
-   /* __SUNPRO_CC = 0xVRRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
-# else
-   /* __SUNPRO_CC = 0xVRP */
-#  define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
-#  define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
-#  define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC    & 0xF)
-# endif
-
-#elif defined(__HP_aCC)
-# define COMPILER_ID "HP"
-  /* __HP_aCC = VVRRPP */
-# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
-# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
-# define COMPILER_VERSION_PATCH DEC(__HP_aCC     % 100)
-
-#elif defined(__DECCXX)
-# define COMPILER_ID "Compaq"
-  /* __DECCXX_VER = VVRRTPPPP */
-# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
-# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000  % 100)
-# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER         % 10000)
-
-#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
-# define COMPILER_ID "zOS"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__open_xl__) && defined(__clang__)
-# define COMPILER_ID "IBMClang"
-# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
-# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
-# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
-
-
-#elif defined(__ibmxl__) && defined(__clang__)
-# define COMPILER_ID "XLClang"
-# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
-# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
-# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
-# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
-
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
-# define COMPILER_ID "XL"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
-# define COMPILER_ID "VisualAge"
-  /* __IBMCPP__ = VRP */
-# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
-# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__IBMCPP__    % 10)
-
-#elif defined(__NVCOMPILER)
-# define COMPILER_ID "NVHPC"
-# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
-# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
-# if defined(__NVCOMPILER_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
-# endif
-
-#elif defined(__PGI)
-# define COMPILER_ID "PGI"
-# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
-# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
-# if defined(__PGIC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
-# endif
-
-#elif defined(_CRAYC)
-# define COMPILER_ID "Cray"
-# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
-# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
-
-#elif defined(__TI_COMPILER_VERSION__)
-# define COMPILER_ID "TI"
-  /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
-# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
-# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000   % 1000)
-# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__        % 1000)
-
-#elif defined(__CLANG_FUJITSU)
-# define COMPILER_ID "FujitsuClang"
-# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# define COMPILER_VERSION_INTERNAL_STR __clang_version__
-
-
-#elif defined(__FUJITSU)
-# define COMPILER_ID "Fujitsu"
-# if defined(__FCC_version__)
-#   define COMPILER_VERSION __FCC_version__
-# elif defined(__FCC_major__)
-#   define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
-#   define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
-#   define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
-# endif
-# if defined(__fcc_version)
-#   define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
-# elif defined(__FCC_VERSION)
-#   define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
-# endif
-
-
-#elif defined(__ghs__)
-# define COMPILER_ID "GHS"
-/* __GHS_VERSION_NUMBER = VVVVRP */
-# ifdef __GHS_VERSION_NUMBER
-# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
-# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
-# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER      % 10)
-# endif
-
-#elif defined(__TASKING__)
-# define COMPILER_ID "Tasking"
-  # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
-  # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
-# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
-
-#elif defined(__SCO_VERSION__)
-# define COMPILER_ID "SCO"
-
-#elif defined(__ARMCC_VERSION) && !defined(__clang__)
-# define COMPILER_ID "ARMCC"
-#if __ARMCC_VERSION >= 1000000
-  /* __ARMCC_VERSION = VRRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION     % 10000)
-#else
-  /* __ARMCC_VERSION = VRPPPP */
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION    % 10000)
-#endif
-
-
-#elif defined(__clang__) && defined(__apple_build_version__)
-# define COMPILER_ID "AppleClang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
-
-#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
-# define COMPILER_ID "ARMClang"
-  # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
-  # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
-  # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION     % 10000)
-# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
-
-#elif defined(__clang__)
-# define COMPILER_ID "Clang"
-# if defined(_MSC_VER)
-#  define SIMULATE_ID "MSVC"
-# endif
-# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
-# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
-# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
-# if defined(_MSC_VER)
-   /* _MSC_VER = VVRR */
-#  define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
-#  define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
-# endif
-
-#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
-# define COMPILER_ID "LCC"
-# define COMPILER_VERSION_MAJOR DEC(1)
-# if defined(__LCC__)
-#  define COMPILER_VERSION_MINOR DEC(__LCC__- 100)
-# endif
-# if defined(__LCC_MINOR__)
-#  define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
-# endif
-# if defined(__GNUC__) && defined(__GNUC_MINOR__)
-#  define SIMULATE_ID "GNU"
-#  define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
-#  define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
-#  if defined(__GNUC_PATCHLEVEL__)
-#   define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-#  endif
-# endif
-
-#elif defined(__GNUC__) || defined(__GNUG__)
-# define COMPILER_ID "GNU"
-# if defined(__GNUC__)
-#  define COMPILER_VERSION_MAJOR DEC(__GNUC__)
-# else
-#  define COMPILER_VERSION_MAJOR DEC(__GNUG__)
-# endif
-# if defined(__GNUC_MINOR__)
-#  define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
-# endif
-# if defined(__GNUC_PATCHLEVEL__)
-#  define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
-# endif
-
-#elif defined(_MSC_VER)
-# define COMPILER_ID "MSVC"
-  /* _MSC_VER = VVRR */
-# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
-# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
-# if defined(_MSC_FULL_VER)
-#  if _MSC_VER >= 1400
-    /* _MSC_FULL_VER = VVRRPPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
-#  else
-    /* _MSC_FULL_VER = VVRRPPPP */
-#   define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
-#  endif
-# endif
-# if defined(_MSC_BUILD)
-#  define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
-# endif
-
-#elif defined(_ADI_COMPILER)
-# define COMPILER_ID "ADSP"
-#if defined(__VERSIONNUM__)
-  /* __VERSIONNUM__ = 0xVVRRPPTT */
-#  define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
-#  define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
-#  define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
-#  define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
-#endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# define COMPILER_ID "IAR"
-# if defined(__VER__) && defined(__ICCARM__)
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
-#  define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
-#  define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
-#  define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
-#  define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
-#  define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
-#  define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
-# endif
-
-
-/* These compilers are either not known or too old to define an
-  identification macro.  Try to identify the platform and guess that
-  it is the native compiler.  */
-#elif defined(__hpux) || defined(__hpua)
-# define COMPILER_ID "HP"
-
-#else /* unknown compiler */
-# define COMPILER_ID ""
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
-#ifdef SIMULATE_ID
-char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
-#endif
-
-#ifdef __QNXNTO__
-char const* qnxnto = "INFO" ":" "qnxnto[]";
-#endif
-
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
-#endif
-
-#define STRINGIFY_HELPER(X) #X
-#define STRINGIFY(X) STRINGIFY_HELPER(X)
-
-/* Identify known platforms by name.  */
-#if defined(__linux) || defined(__linux__) || defined(linux)
-# define PLATFORM_ID "Linux"
-
-#elif defined(__MSYS__)
-# define PLATFORM_ID "MSYS"
-
-#elif defined(__CYGWIN__)
-# define PLATFORM_ID "Cygwin"
-
-#elif defined(__MINGW32__)
-# define PLATFORM_ID "MinGW"
-
-#elif defined(__APPLE__)
-# define PLATFORM_ID "Darwin"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-# define PLATFORM_ID "Windows"
-
-#elif defined(__FreeBSD__) || defined(__FreeBSD)
-# define PLATFORM_ID "FreeBSD"
-
-#elif defined(__NetBSD__) || defined(__NetBSD)
-# define PLATFORM_ID "NetBSD"
-
-#elif defined(__OpenBSD__) || defined(__OPENBSD)
-# define PLATFORM_ID "OpenBSD"
-
-#elif defined(__sun) || defined(sun)
-# define PLATFORM_ID "SunOS"
-
-#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
-# define PLATFORM_ID "AIX"
-
-#elif defined(__hpux) || defined(__hpux__)
-# define PLATFORM_ID "HP-UX"
-
-#elif defined(__HAIKU__)
-# define PLATFORM_ID "Haiku"
-
-#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
-# define PLATFORM_ID "BeOS"
-
-#elif defined(__QNX__) || defined(__QNXNTO__)
-# define PLATFORM_ID "QNX"
-
-#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
-# define PLATFORM_ID "Tru64"
-
-#elif defined(__riscos) || defined(__riscos__)
-# define PLATFORM_ID "RISCos"
-
-#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
-# define PLATFORM_ID "SINIX"
-
-#elif defined(__UNIX_SV__)
-# define PLATFORM_ID "UNIX_SV"
-
-#elif defined(__bsdos__)
-# define PLATFORM_ID "BSDOS"
-
-#elif defined(_MPRAS) || defined(MPRAS)
-# define PLATFORM_ID "MP-RAS"
-
-#elif defined(__osf) || defined(__osf__)
-# define PLATFORM_ID "OSF1"
-
-#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
-# define PLATFORM_ID "SCO_SV"
-
-#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
-# define PLATFORM_ID "ULTRIX"
-
-#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
-# define PLATFORM_ID "Xenix"
-
-#elif defined(__WATCOMC__)
-# if defined(__LINUX__)
-#  define PLATFORM_ID "Linux"
-
-# elif defined(__DOS__)
-#  define PLATFORM_ID "DOS"
-
-# elif defined(__OS2__)
-#  define PLATFORM_ID "OS2"
-
-# elif defined(__WINDOWS__)
-#  define PLATFORM_ID "Windows3x"
-
-# elif defined(__VXWORKS__)
-#  define PLATFORM_ID "VxWorks"
-
-# else /* unknown platform */
-#  define PLATFORM_ID
-# endif
-
-#elif defined(__INTEGRITY)
-# if defined(INT_178B)
-#  define PLATFORM_ID "Integrity178"
-
-# else /* regular Integrity */
-#  define PLATFORM_ID "Integrity"
-# endif
-
-# elif defined(_ADI_COMPILER)
-#  define PLATFORM_ID "ADSP"
-
-#else /* unknown platform */
-# define PLATFORM_ID
-
-#endif
-
-/* For windows compilers MSVC and Intel we can determine
-   the architecture of the compiler being used.  This is because
-   the compilers do not have flags that can change the architecture,
-   but rather depend on which compiler is being used
-*/
-#if defined(_WIN32) && defined(_MSC_VER)
-# if defined(_M_IA64)
-#  define ARCHITECTURE_ID "IA64"
-
-# elif defined(_M_ARM64EC)
-#  define ARCHITECTURE_ID "ARM64EC"
-
-# elif defined(_M_X64) || defined(_M_AMD64)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# elif defined(_M_ARM64)
-#  define ARCHITECTURE_ID "ARM64"
-
-# elif defined(_M_ARM)
-#  if _M_ARM == 4
-#   define ARCHITECTURE_ID "ARMV4I"
-#  elif _M_ARM == 5
-#   define ARCHITECTURE_ID "ARMV5I"
-#  else
-#   define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
-#  endif
-
-# elif defined(_M_MIPS)
-#  define ARCHITECTURE_ID "MIPS"
-
-# elif defined(_M_SH)
-#  define ARCHITECTURE_ID "SHx"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__WATCOMC__)
-# if defined(_M_I86)
-#  define ARCHITECTURE_ID "I86"
-
-# elif defined(_M_IX86)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
-# if defined(__ICCARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__ICCRX__)
-#  define ARCHITECTURE_ID "RX"
-
-# elif defined(__ICCRH850__)
-#  define ARCHITECTURE_ID "RH850"
-
-# elif defined(__ICCRL78__)
-#  define ARCHITECTURE_ID "RL78"
-
-# elif defined(__ICCRISCV__)
-#  define ARCHITECTURE_ID "RISCV"
-
-# elif defined(__ICCAVR__)
-#  define ARCHITECTURE_ID "AVR"
-
-# elif defined(__ICC430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__ICCV850__)
-#  define ARCHITECTURE_ID "V850"
-
-# elif defined(__ICC8051__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__ICCSTM8__)
-#  define ARCHITECTURE_ID "STM8"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__ghs__)
-# if defined(__PPC64__)
-#  define ARCHITECTURE_ID "PPC64"
-
-# elif defined(__ppc__)
-#  define ARCHITECTURE_ID "PPC"
-
-# elif defined(__ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__x86_64__)
-#  define ARCHITECTURE_ID "x64"
-
-# elif defined(__i386__)
-#  define ARCHITECTURE_ID "X86"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-#elif defined(__TI_COMPILER_VERSION__)
-# if defined(__TI_ARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__MSP430__)
-#  define ARCHITECTURE_ID "MSP430"
-
-# elif defined(__TMS320C28XX__)
-#  define ARCHITECTURE_ID "TMS320C28x"
-
-# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
-#  define ARCHITECTURE_ID "TMS320C6x"
-
-# else /* unknown architecture */
-#  define ARCHITECTURE_ID ""
-# endif
-
-# elif defined(__ADSPSHARC__)
-#  define ARCHITECTURE_ID "SHARC"
-
-# elif defined(__ADSPBLACKFIN__)
-#  define ARCHITECTURE_ID "Blackfin"
-
-#elif defined(__TASKING__)
-
-# if defined(__CTC__) || defined(__CPTC__)
-#  define ARCHITECTURE_ID "TriCore"
-
-# elif defined(__CMCS__)
-#  define ARCHITECTURE_ID "MCS"
-
-# elif defined(__CARM__)
-#  define ARCHITECTURE_ID "ARM"
-
-# elif defined(__CARC__)
-#  define ARCHITECTURE_ID "ARC"
-
-# elif defined(__C51__)
-#  define ARCHITECTURE_ID "8051"
-
-# elif defined(__CPCP__)
-#  define ARCHITECTURE_ID "PCP"
-
-# else
-#  define ARCHITECTURE_ID ""
-# endif
-
-#else
-#  define ARCHITECTURE_ID
-#endif
-
-/* Convert integer to decimal digit literals.  */
-#define DEC(n)                   \
-  ('0' + (((n) / 10000000)%10)), \
-  ('0' + (((n) / 1000000)%10)),  \
-  ('0' + (((n) / 100000)%10)),   \
-  ('0' + (((n) / 10000)%10)),    \
-  ('0' + (((n) / 1000)%10)),     \
-  ('0' + (((n) / 100)%10)),      \
-  ('0' + (((n) / 10)%10)),       \
-  ('0' +  ((n) % 10))
-
-/* Convert integer to hex digit literals.  */
-#define HEX(n)             \
-  ('0' + ((n)>>28 & 0xF)), \
-  ('0' + ((n)>>24 & 0xF)), \
-  ('0' + ((n)>>20 & 0xF)), \
-  ('0' + ((n)>>16 & 0xF)), \
-  ('0' + ((n)>>12 & 0xF)), \
-  ('0' + ((n)>>8  & 0xF)), \
-  ('0' + ((n)>>4  & 0xF)), \
-  ('0' + ((n)     & 0xF))
-
-/* Construct a string literal encoding the version number. */
-#ifdef COMPILER_VERSION
-char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
-
-/* Construct a string literal encoding the version number components. */
-#elif defined(COMPILER_VERSION_MAJOR)
-char const info_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
-  COMPILER_VERSION_MAJOR,
-# ifdef COMPILER_VERSION_MINOR
-  '.', COMPILER_VERSION_MINOR,
-#  ifdef COMPILER_VERSION_PATCH
-   '.', COMPILER_VERSION_PATCH,
-#   ifdef COMPILER_VERSION_TWEAK
-    '.', COMPILER_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct a string literal encoding the internal version number. */
-#ifdef COMPILER_VERSION_INTERNAL
-char const info_version_internal[] = {
-  'I', 'N', 'F', 'O', ':',
-  'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
-  'i','n','t','e','r','n','a','l','[',
-  COMPILER_VERSION_INTERNAL,']','\0'};
-#elif defined(COMPILER_VERSION_INTERNAL_STR)
-char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
-#endif
-
-/* Construct a string literal encoding the version number components. */
-#ifdef SIMULATE_VERSION_MAJOR
-char const info_simulate_version[] = {
-  'I', 'N', 'F', 'O', ':',
-  's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
-  SIMULATE_VERSION_MAJOR,
-# ifdef SIMULATE_VERSION_MINOR
-  '.', SIMULATE_VERSION_MINOR,
-#  ifdef SIMULATE_VERSION_PATCH
-   '.', SIMULATE_VERSION_PATCH,
-#   ifdef SIMULATE_VERSION_TWEAK
-    '.', SIMULATE_VERSION_TWEAK,
-#   endif
-#  endif
-# endif
-  ']','\0'};
-#endif
-
-/* Construct the string literal in pieces to prevent the source from
-   getting matched.  Store it in a pointer rather than an array
-   because some compilers will just produce instructions to fill the
-   array rather than assigning a pointer to a static array.  */
-char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
-char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
-
-
-
-#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L
-#  if defined(__INTEL_CXX11_MODE__)
-#    if defined(__cpp_aggregate_nsdmi)
-#      define CXX_STD 201402L
-#    else
-#      define CXX_STD 201103L
-#    endif
-#  else
-#    define CXX_STD 199711L
-#  endif
-#elif defined(_MSC_VER) && defined(_MSVC_LANG)
-#  define CXX_STD _MSVC_LANG
-#else
-#  define CXX_STD __cplusplus
-#endif
-
-const char* info_language_standard_default = "INFO" ":" "standard_default["
-#if CXX_STD > 202002L
-  "23"
-#elif CXX_STD > 201703L
-  "20"
-#elif CXX_STD >= 201703L
-  "17"
-#elif CXX_STD >= 201402L
-  "14"
-#elif CXX_STD >= 201103L
-  "11"
-#else
-  "98"
-#endif
-"]";
-
-const char* info_language_extensions_default = "INFO" ":" "extensions_default["
-#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) ||           \
-     defined(__TI_COMPILER_VERSION__)) &&                                     \
-  !defined(__STRICT_ANSI__)
-  "ON"
-#else
-  "OFF"
-#endif
-"]";
-
-/*--------------------------------------------------------------------------*/
-
-int main(int argc, char* argv[])
-{
-  int require = 0;
-  require += info_compiler[argc];
-  require += info_platform[argc];
-  require += info_arch[argc];
-#ifdef COMPILER_VERSION_MAJOR
-  require += info_version[argc];
-#endif
-#ifdef COMPILER_VERSION_INTERNAL
-  require += info_version_internal[argc];
-#endif
-#ifdef SIMULATE_ID
-  require += info_simulate[argc];
-#endif
-#ifdef SIMULATE_VERSION_MAJOR
-  require += info_simulate_version[argc];
-#endif
-#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
-  require += info_cray[argc];
-#endif
-  require += info_language_standard_default[argc];
-  require += info_language_extensions_default[argc];
-  (void)argv;
-  return require;
-}

+ 0 - 1
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/ShowIncludes/foo.h

@@ -1 +0,0 @@
-

+ 0 - 2
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/CMakeFiles/ShowIncludes/main.c

@@ -1,2 +0,0 @@
-#include "foo.h" 
-int main(){}

+ 0 - 1
ZJ_PRO_DMF_JETSON/EgoSystem/out/build/x64-Debug/VSInheritEnvironments.txt

@@ -1 +0,0 @@
-msvc_x64_x64

+ 0 - 5
ZJ_PRO_DMF_JETSON/common/.vscode/extensions.json

@@ -1,5 +0,0 @@
-{
-    "recommendations": [
-        "ms-vscode.cpptools"
-    ]
-}

+ 0 - 5
ZJ_PRO_DMF_JETSON/webrtcinterop/.vscode/extensions.json

@@ -1,5 +0,0 @@
-{
-    "recommendations": [
-        "ms-vscode.cpptools"
-    ]
-}

+ 1 - 12
ZJ_PRO_DMF_JETSON/webrtcinterop/CMakeLists.txt

@@ -12,9 +12,6 @@ if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g2 -ggdb -Wall -Wno-unused-variable -pthread")
 endif()
  
-# set(CUDA_LIB_DIRS ${CUDA_TOOLKIT_ROOT_DIR}/${CUDA_INSTALL_TARGET_DIR}/lib)
-
- 
 add_definitions(-DWEBRTC_POSIX)
 add_definitions(-DWEBRTC_LINUX)
 add_definitions(-DJSONCPP_USING_SECURE_MEMORY=0)
@@ -29,21 +26,13 @@ include_directories(${WEBRTC_DIR}/include/third_party/abseil-cpp)
 include_directories(${WEBRTC_DIR}/include/third_party/libyuv/include)
 include_directories(${WEBRTC_DIR}/include/third_party/jsoncpp/source/include)
 include_directories(${WEBRTC_DIR}/include/third_party/jsoncpp/generated)
-# include_directories(/home/nvidia/Desktop/env_enc/jetson_multimedia_api/include)
 
 include_directories(${CUDA_INCLUDE_DIRS} )
 
 FILE(GLOB LIVEHELPERSOURCE  src/*.cpp *.cpp  )
 
-# aux_source_directory(./ DEMO)
+aux_source_directory(/usr/src/jetson_multimedia_api/samples/common/classes COMMON)
 
-aux_source_directory(/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes COMMON)
-# FILE(GLOB CUDA_SOURCE *.cu)
-# message(STATUS "CUDA source files:")
-# foreach(file ${CUDA_SOURCE})
-#     message(STATUS "  ${file}")
-# endforeach()
-# FILE(GLOB LIVEHELPERSOURCE  src/*.cpp *.cpp  )
  
 add_library(webrtcinterop ${LIVEHELPERSOURCE} ${COMMON})
 target_compile_definitions(webrtcinterop PUBLIC NO_OPENSSL=1 BSD=1 SOCKLEN_T=socklen_t _FILE_OFFSET_BITS=64 _LARGEFILE_SOURCE=1)

+ 1 - 1
ZJ_PRO_DMF_JETSON/webrtcinterop/api.cpp

@@ -11,7 +11,7 @@
 #include "peer_connection.h"
 #include "sdp_utils.h"
 
-#include "/home/nvidia/devdata/ZJ_PRO_test/webrtcinterop/sri_build_encoder_factory.h"
+#include "sri_build_encoder_factory.h"
 
 #ifdef WEBRTC_LINUX
 //#include <opencv2/opencv.hpp>

+ 233 - 0
ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/cmakeFiles-v1-963856cbc2b1048e1659.json

@@ -0,0 +1,233 @@
+{
+	"inputs" : 
+	[
+		{
+			"path" : "CMakeLists.txt"
+		},
+		{
+			"isGenerated" : true,
+			"path" : "build/CMakeFiles/3.16.3/CMakeSystem.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
+		},
+		{
+			"isGenerated" : true,
+			"path" : "build/CMakeFiles/3.16.3/CMakeCCompiler.cmake"
+		},
+		{
+			"isGenerated" : true,
+			"path" : "build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindCUDA.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindThreads.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake"
+		},
+		{
+			"isGenerated" : true,
+			"path" : "build/CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CPack.cmake"
+		},
+		{
+			"isCMake" : true,
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Modules/CPackComponent.cmake"
+		},
+		{
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Templates/CPackConfig.cmake.in"
+		},
+		{
+			"isExternal" : true,
+			"path" : "/usr/share/cmake-3.16/Templates/CPackConfig.cmake.in"
+		}
+	],
+	"kind" : "cmakeFiles",
+	"paths" : 
+	{
+		"build" : "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build",
+		"source" : "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop"
+	},
+	"version" : 
+	{
+		"major" : 1,
+		"minor" : 0
+	}
+}

+ 0 - 1055
ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/cmakeFiles-v1-e026c05af5bcfde89796.json

@@ -1,1055 +0,0 @@
-{
-	"inputs" : 
-	[
-		{
-			"path" : "CMakeLists.txt"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeSystem.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/UnixPaths.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindCUDA.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindThreads.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckIncludeFile.c.in"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckFunctionExists.c"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CheckFunctionExists.c"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCUDACompilerABI.cu"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in"
-		},
-		{
-			"isGenerated" : true,
-			"path" : "build/CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CPack.cmake"
-		},
-		{
-			"isCMake" : true,
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Modules/CPackComponent.cmake"
-		},
-		{
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Templates/CPackConfig.cmake.in"
-		},
-		{
-			"isExternal" : true,
-			"path" : "/usr/share/cmake-3.16/Templates/CPackConfig.cmake.in"
-		}
-	],
-	"kind" : "cmakeFiles",
-	"paths" : 
-	{
-		"build" : "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build",
-		"source" : "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop"
-	},
-	"version" : 
-	{
-		"major" : 1,
-		"minor" : 0
-	}
-}

+ 1 - 1
ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/codemodel-v2-adf29bc017c3b3a2a525.json → ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/codemodel-v2-1feb9bbd2d99be451ed4.json

@@ -38,7 +38,7 @@
 				{
 					"directoryIndex" : 0,
 					"id" : "webrtcinterop::@6890427a1f51a3e7e1df",
-					"jsonFile" : "target-webrtcinterop-6198d74af805a7b32104.json",
+					"jsonFile" : "target-webrtcinterop-5cc1b81e9355cd6f2355.json",
 					"name" : "webrtcinterop",
 					"projectIndex" : 0
 				}

+ 4 - 4
ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/index-2024-09-09T17-53-06-0740.json → ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/index-2024-09-11T06-13-32-0221.json

@@ -25,7 +25,7 @@
 	"objects" : 
 	[
 		{
-			"jsonFile" : "codemodel-v2-adf29bc017c3b3a2a525.json",
+			"jsonFile" : "codemodel-v2-1feb9bbd2d99be451ed4.json",
 			"kind" : "codemodel",
 			"version" : 
 			{
@@ -43,7 +43,7 @@
 			}
 		},
 		{
-			"jsonFile" : "cmakeFiles-v1-e026c05af5bcfde89796.json",
+			"jsonFile" : "cmakeFiles-v1-963856cbc2b1048e1659.json",
 			"kind" : "cmakeFiles",
 			"version" : 
 			{
@@ -89,7 +89,7 @@
 						}
 					},
 					{
-						"jsonFile" : "codemodel-v2-adf29bc017c3b3a2a525.json",
+						"jsonFile" : "codemodel-v2-1feb9bbd2d99be451ed4.json",
 						"kind" : "codemodel",
 						"version" : 
 						{
@@ -101,7 +101,7 @@
 						"error" : "unknown request kind 'toolchains'"
 					},
 					{
-						"jsonFile" : "cmakeFiles-v1-e026c05af5bcfde89796.json",
+						"jsonFile" : "cmakeFiles-v1-963856cbc2b1048e1659.json",
 						"kind" : "cmakeFiles",
 						"version" : 
 						{

+ 51 - 27
ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/target-webrtcinterop-6198d74af805a7b32104.json → ZJ_PRO_DMF_JETSON/webrtcinterop/build/.cmake/api/v1/reply/target-webrtcinterop-5cc1b81e9355cd6f2355.json

@@ -28,73 +28,73 @@
 			{
 				"command" : 0,
 				"file" : 0,
-				"line" : 48,
+				"line" : 37,
 				"parent" : 0
 			},
 			{
 				"command" : 1,
 				"file" : 0,
-				"line" : 49,
+				"line" : 38,
 				"parent" : 0
 			},
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 20,
+				"line" : 17,
 				"parent" : 0
 			},
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 19,
+				"line" : 16,
 				"parent" : 0
 			},
 			{
 				"command" : 2,
 				"file" : 0,
-				"line" : 18,
+				"line" : 15,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 25,
+				"line" : 22,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 27,
+				"line" : 24,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 28,
+				"line" : 25,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 29,
+				"line" : 26,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 30,
+				"line" : 27,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 31,
+				"line" : 28,
 				"parent" : 0
 			},
 			{
 				"command" : 3,
 				"file" : 0,
-				"line" : 34,
+				"line" : 30,
 				"parent" : 0
 			}
 		]
@@ -214,7 +214,10 @@
 				22,
 				23,
 				24,
-				25
+				25,
+				26,
+				27,
+				28
 			]
 		}
 	],
@@ -257,7 +260,10 @@
 				22,
 				23,
 				24,
-				25
+				25,
+				26,
+				27,
+				28
 			]
 		}
 	],
@@ -344,79 +350,97 @@
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvApplicationProfiler.cpp",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvBufSurface.cpp",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvBuffer.cpp",
+			"sourceGroupIndex" : 0
+		},
+		{
+			"backtrace" : 1,
+			"compileGroupIndex" : 0,
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvDrmRenderer.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvEglRenderer.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvElement.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvElementProfiler.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegDecoder.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegEncoder.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvUtils.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2Element.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp",
 			"sourceGroupIndex" : 0
 		},
 		{
 			"backtrace" : 1,
 			"compileGroupIndex" : 0,
-			"path" : "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp",
+			"path" : "/usr/src/jetson_multimedia_api/samples/common/classes/NvVulkanRenderer.cpp",
 			"sourceGroupIndex" : 0
 		}
 	],

+ 0 - 79
ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/Makefile.cmake

@@ -12,104 +12,32 @@ set(CMAKE_MAKEFILE_DEPENDS
   "CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
   "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
   "CMakeFiles/3.16.3/CMakeSystem.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeCCompiler.cmake.in"
-  "/usr/share/cmake-3.16/Modules/CMakeCCompilerABI.c"
   "/usr/share/cmake-3.16/Modules/CMakeCInformation.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeCUDACompiler.cmake.in"
-  "/usr/share/cmake-3.16/Modules/CMakeCUDACompilerABI.cu"
   "/usr/share/cmake-3.16/Modules/CMakeCUDAInformation.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeCXXCompiler.cmake.in"
-  "/usr/share/cmake-3.16/Modules/CMakeCXXCompilerABI.cpp"
   "/usr/share/cmake-3.16/Modules/CMakeCXXInformation.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeCheckCompilerFlagCommonPatterns.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeCommonLanguageInclude.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCUDACompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCompileFeatures.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerABI.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeFindBinUtils.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeGenericSystem.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeInitializeConfigs.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeLanguageInformation.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeParseImplicitIncludeInfo.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeParseImplicitLinkInfo.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeSystem.cmake.in"
   "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInformation.cmake"
   "/usr/share/cmake-3.16/Modules/CMakeSystemSpecificInitialize.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeTestCUDACompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeTestCompilerCommon.cmake"
-  "/usr/share/cmake-3.16/Modules/CMakeUnixFindMake.cmake"
   "/usr/share/cmake-3.16/Modules/CPack.cmake"
   "/usr/share/cmake-3.16/Modules/CPackComponent.cmake"
   "/usr/share/cmake-3.16/Modules/CheckCSourceCompiles.cmake"
-  "/usr/share/cmake-3.16/Modules/CheckFunctionExists.c"
-  "/usr/share/cmake-3.16/Modules/CheckIncludeFile.c.in"
   "/usr/share/cmake-3.16/Modules/CheckIncludeFile.cmake"
   "/usr/share/cmake-3.16/Modules/CheckLibraryExists.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/ADSP-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Borland-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
   "/usr/share/cmake-3.16/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Cray-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/GHS-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
   "/usr/share/cmake-3.16/Modules/Compiler/GNU-C.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
   "/usr/share/cmake-3.16/Modules/Compiler/GNU-CXX.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/GNU-FindBinUtils.cmake"
   "/usr/share/cmake-3.16/Modules/Compiler/GNU.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/HP-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/IAR-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Intel-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/MSVC-DetermineCompiler.cmake"
   "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-CUDA.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/PGI-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/PathScale-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/SCO-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/TI-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/Watcom-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/XL-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
-  "/usr/share/cmake-3.16/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
   "/usr/share/cmake-3.16/Modules/FindCUDA.cmake"
   "/usr/share/cmake-3.16/Modules/FindCUDA/select_compute_arch.cmake"
   "/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake"
   "/usr/share/cmake-3.16/Modules/FindPackageMessage.cmake"
   "/usr/share/cmake-3.16/Modules/FindThreads.cmake"
   "/usr/share/cmake-3.16/Modules/Internal/CMakeCheckCompilerFlag.cmake"
-  "/usr/share/cmake-3.16/Modules/Internal/FeatureTesting.cmake"
-  "/usr/share/cmake-3.16/Modules/Platform/Linux-Determine-CXX.cmake"
   "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-C.cmake"
   "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU-CXX.cmake"
   "/usr/share/cmake-3.16/Modules/Platform/Linux-GNU.cmake"
@@ -126,13 +54,6 @@ set(CMAKE_MAKEFILE_OUTPUTS
 
 # Byproducts of CMake generate step:
 set(CMAKE_MAKEFILE_PRODUCTS
-  "CMakeFiles/3.16.3/CMakeSystem.cmake"
-  "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
-  "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
-  "CMakeFiles/3.16.3/CMakeCCompiler.cmake"
-  "CMakeFiles/3.16.3/CMakeCXXCompiler.cmake"
-  "CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
-  "CMakeFiles/3.16.3/CMakeCUDACompiler.cmake"
   "CPackConfig.cmake"
   "CPackSourceConfig.cmake"
   "CMakeFiles/CMakeDirectoryInformation.cmake"

+ 16 - 13
ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/DependInfo.cmake

@@ -9,25 +9,28 @@ set(CMAKE_DEPENDS_CHECK_CXX
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/capture_op.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/capture_op.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/data_channel_observer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/data_channel_observer.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/gsml_capturer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/gsml_capturer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
-  "/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/jetson_nv_encoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/jetson_nv_encoder.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/pch.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/pch.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/peer_connection.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/peer_connection.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/sanitize_string.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/sanitize_string.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/sdp_utils.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/sdp_utils.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/sri_build_encoder_factory.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/sri_build_encoder_factory.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvApplicationProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvApplicationProfiler.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvBufSurface.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvBufSurface.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvBuffer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvBuffer.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvDrmRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvDrmRenderer.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvEglRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvEglRenderer.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvElement.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvElement.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvElementProfiler.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvElementProfiler.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegDecoder.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegEncoder.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvUtils.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvUtils.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2Element.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2Element.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp.o"
+  "/usr/src/jetson_multimedia_api/samples/common/classes/NvVulkanRenderer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVulkanRenderer.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/video_frame_observer.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/video_frame_observer.cpp.o"
   "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/webrtcinterop.cpp" "/home/nvidia/devdata/ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/webrtcinterop.cpp.o"
   )

+ 16 - 13
ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/cmake_clean.cmake

@@ -4,25 +4,28 @@ file(REMOVE_RECURSE
   "CMakeFiles/webrtcinterop.dir/capture_op.cpp.o"
   "CMakeFiles/webrtcinterop.dir/data_channel_observer.cpp.o"
   "CMakeFiles/webrtcinterop.dir/gsml_capturer.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvApplicationProfiler.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBufSurface.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvBuffer.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvDrmRenderer.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvEglRenderer.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElement.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvElementProfiler.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvLogging.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvUtils.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2Element.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvV4l2ElementPlane.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoDecoder.cpp.o"
-  "CMakeFiles/webrtcinterop.dir/home/nvidia/devdata/ZJ_PRO_JETSON_TEST/webrtcinterop/common/classes/NvVideoEncoder.cpp.o"
   "CMakeFiles/webrtcinterop.dir/jetson_nv_encoder.cpp.o"
   "CMakeFiles/webrtcinterop.dir/pch.cpp.o"
   "CMakeFiles/webrtcinterop.dir/peer_connection.cpp.o"
   "CMakeFiles/webrtcinterop.dir/sanitize_string.cpp.o"
   "CMakeFiles/webrtcinterop.dir/sdp_utils.cpp.o"
   "CMakeFiles/webrtcinterop.dir/sri_build_encoder_factory.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvApplicationProfiler.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvBufSurface.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvBuffer.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvDrmRenderer.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvEglRenderer.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvElement.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvElementProfiler.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegDecoder.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvJpegEncoder.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvLogging.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvUtils.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2Element.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvV4l2ElementPlane.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoDecoder.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVideoEncoder.cpp.o"
+  "CMakeFiles/webrtcinterop.dir/usr/src/jetson_multimedia_api/samples/common/classes/NvVulkanRenderer.cpp.o"
   "CMakeFiles/webrtcinterop.dir/video_frame_observer.cpp.o"
   "CMakeFiles/webrtcinterop.dir/webrtcinterop.cpp.o"
   "libwebrtcinterop.a"

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
ZJ_PRO_DMF_JETSON/webrtcinterop/build/CMakeFiles/webrtcinterop.dir/link.txt


BIN
ZJ_PRO_DMF_JETSON/webrtcinterop/build/libwebrtcinterop.a


+ 415 - 0
ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegDecoder.cpp

@@ -0,0 +1,415 @@
+/*
+ * Copyright (c) 2016-2023, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  * Neither the name of NVIDIA CORPORATION nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "NvJpegDecoder.h"
+#include "NvLogging.h"
+#include <string.h>
+#include <malloc.h>
+#include "unistd.h"
+#include "stdlib.h"
+#include "nvbufsurface.h"
+
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ROUND_UP_4(num)  (((num) + 3) & ~3)
+
+#define CAT_NAME "JpegDecoder"
+
+NvJPEGDecoder::NvJPEGDecoder(const char *comp_name)
+    :NvElement(comp_name, valid_fields)
+{
+    memset(&cinfo, 0, sizeof(cinfo));
+    memset(&jerr, 0, sizeof(jerr));
+    cinfo.err = jpeg_std_error(&jerr);
+
+    jpeg_create_decompress(&cinfo);
+}
+
+NvJPEGDecoder *
+NvJPEGDecoder::createJPEGDecoder(const char *comp_name)
+{
+    NvJPEGDecoder *jpegdec = new NvJPEGDecoder(comp_name);
+    if (jpegdec->isInError())
+    {
+        delete jpegdec;
+        return NULL;
+    }
+    return jpegdec;
+}
+
+NvJPEGDecoder::~NvJPEGDecoder()
+{
+    jpeg_destroy_decompress(&cinfo);
+    CAT_DEBUG_MSG(comp_name << " (" << this << ") destroyed");
+}
+
+int
+NvJPEGDecoder::decodeToFd(int &fd, unsigned char * in_buf,
+        unsigned long in_buf_size, uint32_t &pixfmt, uint32_t &width,
+        uint32_t &height)
+{
+    uint32_t pixel_format = 0;
+    uint32_t buffer_id;
+    NvBufSurface surface;
+
+    if (in_buf == NULL || in_buf_size == 0)
+    {
+        COMP_ERROR_MSG("Not decoding because input buffer = NULL or size = 0");
+        return -1;
+    }
+
+    buffer_id = profiler.startProcessing();
+
+    cinfo.out_color_space = JCS_YCbCr;
+
+    jpeg_mem_src(&cinfo, in_buf, in_buf_size);
+
+    cinfo.out_color_space = JCS_YCbCr;
+
+    /* Read file header, set default decompression parameters */
+    (void) jpeg_read_header(&cinfo, TRUE);
+
+    cinfo.out_color_space = JCS_YCbCr;
+    cinfo.IsVendorbuf = TRUE;
+    cinfo.pVendor_buf = (unsigned char*)&surface;
+
+    if (cinfo.comp_info[0].h_samp_factor == 2)
+    {
+        if (cinfo.comp_info[0].v_samp_factor == 2)
+        {
+            pixel_format = V4L2_PIX_FMT_YUV420M;
+        }
+        else
+        {
+            pixel_format = V4L2_PIX_FMT_YUV422M;
+        }
+    }
+    else
+    {
+        if (cinfo.comp_info[0].v_samp_factor == 1)
+        {
+            pixel_format = V4L2_PIX_FMT_YUV444M;
+        }
+        else
+        {
+            pixel_format = V4L2_PIX_FMT_YUV422RM;
+        }
+    }
+
+    jpeg_start_decompress (&cinfo);
+    if ((cinfo.output_width % (cinfo.max_h_samp_factor * DCTSIZE))
+        && pixel_format == V4L2_PIX_FMT_YUV420M)
+    {
+        COMP_ERROR_MSG("decodeToFd() failed, please run decodeToBuffer()");
+        jpeg_finish_decompress(&cinfo);
+        profiler.finishProcessing(buffer_id, false);
+        return -1;
+    }
+    else
+    {
+        jpeg_read_raw_data (&cinfo, NULL, cinfo.comp_info[0].v_samp_factor * DCTSIZE);
+    }
+
+    jpeg_finish_decompress(&cinfo);
+
+    width = cinfo.image_width;
+    height = cinfo.image_height;
+    pixfmt = pixel_format;
+    fd = cinfo.fd;
+
+    COMP_DEBUG_MSG("Succesfully decoded Buffer fd=" << fd);
+
+    profiler.finishProcessing(buffer_id, false);
+    return 0;
+}
+
+int
+NvJPEGDecoder::decodeToBuffer(NvBuffer ** buffer, unsigned char * in_buf,
+        unsigned long in_buf_size, uint32_t *pixfmt, uint32_t * width,
+        uint32_t * height)
+{
+    NvBuffer *out_buf = NULL;
+    uint32_t pixel_format = 0;
+    uint32_t buffer_id;
+
+    if (buffer == NULL)
+    {
+        COMP_ERROR_MSG("Not decoding because buffer = NULL");
+        return -1;
+    }
+
+    if (in_buf == NULL || in_buf_size == 0)
+    {
+        COMP_ERROR_MSG("Not decoding because input buffer = NULL or size = 0");
+        return -1;
+    }
+
+    buffer_id = profiler.startProcessing();
+
+    cinfo.out_color_space = JCS_YCbCr;
+    jpeg_mem_src(&cinfo, in_buf, in_buf_size);
+    cinfo.out_color_space = JCS_YCbCr;
+
+    (void) jpeg_read_header(&cinfo, TRUE);
+
+    cinfo.out_color_space = JCS_YCbCr;
+
+    if (cinfo.comp_info[0].h_samp_factor == 2)
+    {
+        if (cinfo.comp_info[0].v_samp_factor == 2)
+        {
+            pixel_format = V4L2_PIX_FMT_YUV420M;
+        }
+        else
+        {
+            pixel_format = V4L2_PIX_FMT_YUV422M;
+        }
+    }
+    else
+    {
+        if (cinfo.comp_info[0].v_samp_factor == 1)
+        {
+            pixel_format = V4L2_PIX_FMT_YUV444M;
+        }
+        else
+        {
+            pixel_format = V4L2_PIX_FMT_YUV422RM;
+        }
+    }
+
+    out_buf = new NvBuffer(pixel_format, cinfo.image_width,
+            cinfo.image_height, 0);
+    out_buf->allocateMemory();
+
+    cinfo.do_fancy_upsampling = FALSE;
+    cinfo.do_block_smoothing = FALSE;
+    cinfo.out_color_space = cinfo.jpeg_color_space;
+    cinfo.dct_method = JDCT_FASTEST;
+    cinfo.bMeasure_ImageProcessTime = FALSE;
+    cinfo.raw_data_out = TRUE;
+    jpeg_start_decompress (&cinfo);
+
+    /* For some widths jpeglib requires more horizontal padding than I420
+     * provides. In those cases we need to decode into separate buffers and then
+     * copy over the data into our final picture buffer, otherwise jpeglib might
+     * write over the end of a line into the beginning of the next line,
+     * resulting in blocky artifacts on the left side of the picture. */
+    if ((cinfo.output_width % (cinfo.max_h_samp_factor * DCTSIZE)) != 0
+            || cinfo.comp_info[0].h_samp_factor != 2
+            || cinfo.comp_info[1].h_samp_factor != 1
+            || cinfo.comp_info[2].h_samp_factor != 1
+            || cinfo.comp_info[0].v_samp_factor != 2
+            || cinfo.comp_info[1].v_samp_factor != 1
+            || cinfo.comp_info[2].v_samp_factor != 1)
+    {
+        COMP_DEBUG_MSG("indirect decoding using extra buffer copy");
+        decodeIndirect(out_buf, pixel_format);
+    }
+    else
+    {
+        decodeDirect(out_buf, pixel_format);
+    }
+
+    jpeg_finish_decompress(&cinfo);
+    if (width)
+    {
+        *width= cinfo.image_width;
+    }
+    if (height)
+    {
+        *height= cinfo.image_height;
+    }
+    if (pixfmt)
+    {
+        *pixfmt = pixel_format;
+    }
+    *buffer = out_buf;
+
+    COMP_DEBUG_MSG("Succesfully decoded Buffer " << buffer);
+
+    profiler.finishProcessing(buffer_id, false);
+
+    return 0;
+}
+
+void
+NvJPEGDecoder::decodeIndirect(NvBuffer *out_buf, uint32_t pixel_format)
+{
+    unsigned char *y_rows[16] = { NULL, };
+    unsigned char *u_rows[16] = { NULL, };
+    unsigned char *v_rows[16] = { NULL, };
+    unsigned char **scanarray[3] = { y_rows, u_rows, v_rows };
+    int i, j, k;
+    int lines;
+    unsigned char *base[3] = { NULL, };
+    unsigned char *last[3] = { NULL, };
+    int stride[3];
+    int width, height;
+    int r_v, r_h, width_32, read_rows;
+
+    r_v = cinfo.comp_info[0].v_samp_factor;
+    r_h = cinfo.comp_info[0].h_samp_factor;
+    width = cinfo.image_width;
+    height = cinfo.image_height;
+    read_rows = r_v * DCTSIZE;
+
+    for (i = 0; i < 3; i++)
+    {
+        stride[i] = out_buf->planes[i].fmt.stride;
+        base[i] = out_buf->planes[i].data;
+        last[i] = base[i] + (stride[i] * (out_buf->planes[i].fmt.height - 1));
+    }
+    width_32 = (width + 31) & 0xFFFFFFE0;
+    for (i = 0; i < read_rows; i++) {
+        y_rows[i] = new unsigned char [width_32];
+        u_rows[i] = new unsigned char [width_32];
+        v_rows[i] = new unsigned char [width_32];
+    }
+    for (i = 0; i < height; i += read_rows)
+    {
+        lines = jpeg_read_raw_data (&cinfo, scanarray, read_rows);
+        if (lines > 0)
+        {
+            for (j = 0, k = 0; j < read_rows; j += r_v, k++)
+            {
+                if (base[0] <= last[0])
+                {
+                    memcpy ((void*)base[0], (void*)y_rows[j],
+                        stride[0]*sizeof(unsigned char));
+                    base[0] += stride[0];
+                }
+                if (r_v == 2)
+                {
+                    if (base[0] <= last[0])
+                    {
+                        memcpy ((void*)base[0], (void*)y_rows[j + 1],
+                            stride[0]*sizeof(unsigned char));
+                        base[0] += stride[0];
+                    }
+                }
+                if (base[1] <= last[1] && base[2] <= last[2])
+                {
+                    if (r_h == 2
+                        || pixel_format == V4L2_PIX_FMT_YUV444M
+                        || pixel_format == V4L2_PIX_FMT_YUV422RM)
+                    {
+                        memcpy ((void*)base[1], (void*)u_rows[k],
+                            stride[1]*sizeof(unsigned char));
+                        memcpy ((void*)base[2], (void*)v_rows[k],
+                            stride[2]*sizeof(unsigned char));
+                    }
+                }
+                if (r_v == 2 || (k & 1) != 0 ||
+                    pixel_format == V4L2_PIX_FMT_YUV444M)
+                {
+                    base[1] += stride[1];
+                    base[2] += stride[2];
+                }
+            }
+        }
+        else
+        {
+            COMP_ERROR_MSG("jpeg_read_raw_data() returned 0");
+        }
+    }
+    for (i = 0; i < read_rows; i++)
+    {
+        delete[] y_rows[i];
+        delete[] u_rows[i];
+        delete[] v_rows[i];
+    }
+}
+
+void
+NvJPEGDecoder::decodeDirect(NvBuffer *out_buf, uint32_t pixel_format)
+{
+    unsigned char **line[3];
+    unsigned char *y[4 * DCTSIZE] = { NULL, };
+    unsigned char *u[4 * DCTSIZE] = { NULL, };
+    unsigned char *v[4 * DCTSIZE] = { NULL, };
+    int i, j;
+    int lines, v_samp[3];
+    unsigned char *base[3], *last[3];
+    int stride[3];
+
+    line[0] = y;
+    line[1] = u;
+    line[2] = v;
+
+    for (i = 0; i < 3; i++)
+    {
+        v_samp[i] = cinfo.comp_info[i].v_samp_factor;
+        stride[i] = out_buf->planes[i].fmt.width;
+        base[i] = out_buf->planes[i].data;
+        last[i] = base[i] + (stride[i] * (out_buf->planes[i].fmt.height - 1));
+    }
+
+    for (i = 0; i < (int) cinfo.image_height; i += v_samp[0] * DCTSIZE)
+    {
+        for (j = 0; j < (v_samp[0] * DCTSIZE); ++j)
+        {
+            /* Y */
+            line[0][j] = base[0] + (i + j) * stride[0];
+
+            /* U,V */
+            if (pixel_format == V4L2_PIX_FMT_YUV420M)
+            {
+                /* Y */
+                line[0][j] = base[0] + (i + j) * stride[0];
+                if ((line[0][j] > last[0]))
+                    line[0][j] = last[0];
+                /* U */
+                if (v_samp[1] == v_samp[0]) {
+                    line[1][j] = base[1] + ((i + j) / 2) * stride[1];
+                } else if (j < (v_samp[1] * DCTSIZE)) {
+                    line[1][j] = base[1] + ((i / 2) + j) * stride[1];
+                }
+                if ((line[1][j] > last[1]))
+                    line[1][j] = last[1];
+                /* V */
+                if (v_samp[2] == v_samp[0]) {
+                    line[2][j] = base[2] + ((i + j) / 2) * stride[2];
+                } else if (j < (v_samp[2] * DCTSIZE)) {
+                    line[2][j] = base[2] + ((i / 2) + j) * stride[2];
+                }
+                if ((line[2][j] > last[2]))
+                    line[2][j] = last[2];
+            }
+            else
+            {
+                line[1][j] = base[1] + (i + j) * stride[1];
+                line[2][j] = base[2] + (i + j) * stride[2];
+            }
+        }
+
+        lines = jpeg_read_raw_data (&cinfo, line, v_samp[0] * DCTSIZE);
+        if ((!lines))
+        {
+            COMP_DEBUG_MSG( "jpeg_read_raw_data() returned 0\n");
+        }
+    }
+}

+ 299 - 0
ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvJpegEncoder.cpp

@@ -0,0 +1,299 @@
+/*
+ * Copyright (c) 2016-2023, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  * Neither the name of NVIDIA CORPORATION nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "NvJpegEncoder.h"
+#include "NvLogging.h"
+#include <string.h>
+#include <malloc.h>
+
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ROUND_UP_4(num)  (((num) + 3) & ~3)
+
+#define CAT_NAME "JpegEncoder"
+
+NvJPEGEncoder::NvJPEGEncoder(const char *comp_name)
+    :NvElement(comp_name, valid_fields)
+{
+    memset(&cinfo, 0, sizeof(cinfo));
+    memset(&jerr, 0, sizeof(jerr));
+    cinfo.err = jpeg_std_error(&jerr);
+
+    jpeg_create_compress(&cinfo);
+    jpeg_suppress_tables(&cinfo, TRUE);
+}
+
+NvJPEGEncoder *
+NvJPEGEncoder::createJPEGEncoder(const char *comp_name)
+{
+    NvJPEGEncoder *jpegenc = new NvJPEGEncoder(comp_name);
+    if (jpegenc->isInError())
+    {
+        delete jpegenc;
+        return NULL;
+    }
+    return jpegenc;
+}
+
+NvJPEGEncoder::~NvJPEGEncoder()
+{
+    jpeg_destroy_compress(&cinfo);
+    CAT_DEBUG_MSG(comp_name << " (" << this << ") destroyed");
+}
+
+int
+NvJPEGEncoder::encodeFromFd(int fd, J_COLOR_SPACE color_space,
+        unsigned char **out_buf, unsigned long &out_buf_size,
+        int quality)
+{
+    uint32_t buffer_id;
+
+    if (fd == -1)
+    {
+        COMP_ERROR_MSG("Not encoding because fd = -1");
+        return -1;
+    }
+
+    buffer_id = profiler.startProcessing();
+
+    jpeg_mem_dest(&cinfo, out_buf, &out_buf_size);
+
+    cinfo.fd = fd;
+    cinfo.IsVendorbuf = TRUE;
+
+    cinfo.raw_data_in = TRUE;
+    cinfo.in_color_space = JCS_YCbCr;
+    jpeg_set_defaults(&cinfo);
+    jpeg_set_quality(&cinfo, quality, TRUE);
+    jpeg_set_hardware_acceleration_parameters_enc(&cinfo, TRUE, out_buf_size, 0, 0);
+
+    switch (color_space)
+    {
+        case JCS_YCbCr:
+            cinfo.in_color_space = JCS_YCbCr;
+            break;
+        default:
+            COMP_ERROR_MSG("Color format " << color_space << " not supported\n");
+            return -1;
+    }
+
+    jpeg_start_compress (&cinfo, 0);
+
+    if (cinfo.err->msg_code)
+    {
+        char err_string[256];
+        cinfo.err->format_message((j_common_ptr) &cinfo, err_string);
+        COMP_ERROR_MSG ("Error in jpeg_start_compress: " << err_string);
+        return -1;
+    }
+
+    jpeg_write_raw_data (&cinfo, NULL, 0);
+    jpeg_finish_compress(&cinfo);
+
+    COMP_DEBUG_MSG("Succesfully encoded Buffer fd=" << fd);
+
+    profiler.finishProcessing(buffer_id, false);
+
+    return 0;
+}
+
+int
+NvJPEGEncoder::encodeFromBuffer(NvBuffer & buffer, J_COLOR_SPACE color_space,
+        unsigned char **out_buf, unsigned long &out_buf_size,
+        int quality)
+{
+    unsigned char **line[3];
+
+    uint32_t comp_height[MAX_CHANNELS];
+    uint32_t comp_width[MAX_CHANNELS];
+    uint32_t h_samp[MAX_CHANNELS];
+    uint32_t v_samp[MAX_CHANNELS];
+    uint32_t h_max_samp = 0;
+    uint32_t v_max_samp = 0;
+    uint32_t channels;
+
+    unsigned char *base[MAX_CHANNELS], *end[MAX_CHANNELS];
+    unsigned int stride[MAX_CHANNELS];
+
+    uint32_t width;
+    uint32_t height;
+
+    uint32_t i, j, k;
+    uint32_t buffer_id;
+
+    buffer_id = profiler.startProcessing();
+
+    jpeg_mem_dest(&cinfo, out_buf, &out_buf_size);
+    width = buffer.planes[0].fmt.width;
+    height = buffer.planes[0].fmt.height;
+
+    switch (color_space)
+    {
+        case JCS_YCbCr:
+            channels = 3;
+
+            comp_width[0] = width;
+            comp_height[0] = height;
+
+            comp_width[1] = width / 2;
+            comp_height[1] = height / 2;
+
+            comp_width[2] = width / 2;
+            comp_height[2] = height / 2;
+
+            break;
+        default:
+            COMP_ERROR_MSG("Color format " << color_space <<
+                           " not supported\n");
+            return -1;
+    }
+
+    if (channels != buffer.n_planes)
+    {
+        COMP_ERROR_MSG("Buffer not in proper format");
+        return -1;
+    }
+
+    for (i = 0; i < channels; i++)
+    {
+        if (comp_width[i] != buffer.planes[i].fmt.width ||
+            comp_height[i] != buffer.planes[i].fmt.height)
+        {
+            COMP_ERROR_MSG("Buffer not in proper format");
+            return -1;
+        }
+    }
+
+    h_max_samp = 0;
+    v_max_samp = 0;
+
+    for (i = 0; i < channels; ++i)
+    {
+        h_samp[i] = ROUND_UP_4(comp_width[0]) / comp_width[i];
+        h_max_samp = MAX(h_max_samp, h_samp[i]);
+        v_samp[i] = ROUND_UP_4(comp_height[0]) / comp_height[i];
+        v_max_samp = MAX(v_max_samp, v_samp[i]);
+    }
+
+    for (i = 0; i < channels; ++i)
+    {
+        h_samp[i] = h_max_samp / h_samp[i];
+        v_samp[i] = v_max_samp / v_samp[i];
+    }
+
+    cinfo.image_width = width;
+    cinfo.image_height = height;
+    cinfo.input_components = channels;
+    cinfo.in_color_space = color_space;
+
+    jpeg_set_defaults(&cinfo);
+    jpeg_set_quality(&cinfo, quality, TRUE);
+    jpeg_set_hardware_acceleration_parameters_enc(&cinfo, TRUE, out_buf_size, 0, 0);
+    cinfo.raw_data_in = TRUE;
+
+    if (cinfo.in_color_space == JCS_RGB)
+        jpeg_set_colorspace(&cinfo, JCS_RGB);
+
+    switch (color_space)
+    {
+        case JCS_YCbCr:
+            cinfo.in_color_space = JCS_YCbCr;
+            break;
+        default:
+            COMP_ERROR_MSG("Color format " << color_space << " not supported\n");
+            return -1;
+    }
+
+    for (i = 0; i < channels; i++)
+    {
+        cinfo.comp_info[i].h_samp_factor = h_samp[i];
+        cinfo.comp_info[i].v_samp_factor = v_samp[i];
+        line[i] = (unsigned char **) malloc(v_max_samp * DCTSIZE *
+                sizeof(unsigned char *));
+    }
+
+    for (i = 0; i < channels; i++)
+    {
+        base[i] = (unsigned char *) buffer.planes[i].data;
+        stride[i] = buffer.planes[i].fmt.stride;
+        end[i] = base[i] + comp_height[i] * stride[i];
+    }
+
+    jpeg_start_compress(&cinfo, TRUE);
+
+    if (cinfo.err->msg_code)
+    {
+        char err_string[256];
+        cinfo.err->format_message((j_common_ptr) &cinfo, err_string);
+        COMP_ERROR_MSG ("Error in jpeg_start_compress: " << err_string);
+        return -1;
+    }
+
+    for (i = 0; i < height; i += v_max_samp * DCTSIZE)
+    {
+        for (k = 0; k < channels; k++)
+        {
+            for (j = 0; j < v_samp[k] * DCTSIZE; j++)
+            {
+                line[k][j] = base[k];
+                if (base[k] + stride[k] < end[k])
+                    base[k] += stride[k];
+            }
+        }
+        jpeg_write_raw_data(&cinfo, line, v_max_samp * DCTSIZE);
+    }
+
+    jpeg_finish_compress(&cinfo);
+    for (i = 0; i < channels; i++)
+    {
+        free(line[i]);
+    }
+    COMP_DEBUG_MSG("Succesfully encoded Buffer");
+
+    profiler.finishProcessing(buffer_id, false);
+
+    return 0;
+}
+
+void
+NvJPEGEncoder::setCropRect(uint32_t left, uint32_t top, uint32_t width,
+        uint32_t height)
+{
+    cinfo.crop_rect.left = left;
+    cinfo.crop_rect.top = top;
+    cinfo.crop_rect.width = width;
+    cinfo.crop_rect.height = height;
+}
+
+
+void
+NvJPEGEncoder::setScaledEncodeParams(uint32_t scale_width, uint32_t scale_height)
+{
+    cinfo.image_scale = TRUE;
+    cinfo.scaled_image_width = scale_width;
+    cinfo.scaled_image_height = scale_height;
+}

+ 459 - 70
ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVideoDecoder.cpp

@@ -1,74 +1,463 @@
 /*
- *  Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
+ * Copyright (c) 2016-2023, NVIDIA CORPORATION. All rights reserved.
  *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  * Neither the name of NVIDIA CORPORATION nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "api/video_codecs/builtin_video_encoder_factory.h"
-
-#include <memory>
-#include <vector>
-
-#include "absl/strings/match.h"
-#include "api/video_codecs/sdp_video_format.h"
-#include "api/video_codecs/video_encoder.h"
-#include "media/base/codec.h"
-#include "media/base/media_constants.h"
-#include "media/engine/encoder_simulcast_proxy.h"
-#include "media/engine/internal_encoder_factory.h"
-#include "rtc_base/checks.h"
-
-#include "sri_build_encoder_factory.h"
-#include "absl/memory/memory.h"
-#include "media/engine/internal_decoder_factory.h"
-#include "rtc_base/logging.h"
-#include "modules/video_coding/codecs/h264/include/h264.h"
-#include "modules/video_coding/codecs/vp8/include/vp8.h"
-#include "modules/video_coding/codecs/vp9/include/vp9.h"
-#include "api/video_codecs/video_encoder_factory.h"
-#include "rtc_base/checks.h"
-
-
-namespace webrtc {
-
-class ExternalEncoderFactory : public webrtc::VideoEncoderFactory {
-public:
-	std::vector<webrtc::SdpVideoFormat> GetSupportedFormats()
-		const override {
-		std::vector<webrtc::SdpVideoFormat> video_formats;
-		for (const webrtc::SdpVideoFormat& h264_format : webrtc::SupportedH264Codecs())
-			video_formats.push_back(h264_format);
-		return video_formats;
-	}
-
-	ExternalEncoderFactory::CodecInfo QueryVideoEncoder(
-		const webrtc::SdpVideoFormat& format) const override {
-		CodecInfo codec_info = { false };
-		// codec_info.is_hardware_accelerated = true;
-		codec_info.has_internal_source = false;
-		return codec_info;
-	}
-
-	std::unique_ptr<webrtc::VideoEncoder> CreateVideoEncoder(
-		const webrtc::SdpVideoFormat& format) override {
-		if (absl::EqualsIgnoreCase(format.name, cricket::kH264CodecName)) {
-			if (webrtc::H264Encoder::IsSupported()) {
-				printf("进入h264 encode----------------------- \n");
-				
-				// return absl::make_unique<webrtc::H264EncoderImpl_>(cricket::VideoCodec(format));		
-				return absl::make_unique<webrtc::JetsonVideoEncoder>(cricket::VideoCodec(format));		
-			}			
-		}
-
-		return nullptr;
-	}
-};
-
-std::unique_ptr<webrtc::VideoEncoderFactory> CreateExternalVideoEncoderFactory() {
-	return std::make_unique<ExternalEncoderFactory>();
-	}
-}
+#include "NvVideoDecoder.h"
+#include "NvLogging.h"
+
+#include <cstring>
+#include <errno.h>
+#include <libv4l2.h>
+
+#define DECODER_DEV "/dev/nvhost-nvdec"
+#define CAT_NAME "NVDEC"
+
+#define CHECK_V4L2_RETURN(ret, str)              \
+    if (ret < 0) {                               \
+        COMP_SYS_ERROR_MSG(str << ": failed");   \
+        return -1;                               \
+    } else {                                     \
+        COMP_DEBUG_MSG(str << ": success");      \
+        return 0;                                \
+    }
+
+#define RETURN_ERROR_IF_FORMATS_SET() \
+    if (output_plane_pixfmt != 0) { \
+        COMP_ERROR_MSG("Should be called before setting plane formats") \
+        return -1; \
+    }
+
+#define RETURN_ERROR_IF_BUFFERS_REQUESTED() \
+    if (output_plane.getNumBuffers() != 0 && capture_plane.getNumBuffers() != 0) { \
+        COMP_ERROR_MSG("Should be called before requesting buffers on either plane") \
+        return -1; \
+    }
+
+#define RETURN_ERROR_IF_FORMATS_NOT_SET() \
+    if (output_plane_pixfmt == 0) { \
+        COMP_ERROR_MSG("Should be called after setting plane formats") \
+        return -1; \
+    }
+
+using namespace std;
+
+NvVideoDecoder::NvVideoDecoder(const char *name, int flags)
+    :NvV4l2Element(name, DECODER_DEV, flags, valid_fields)
+{
+}
+
+NvVideoDecoder *
+NvVideoDecoder::createVideoDecoder(const char *name, int flags)
+{
+    NvVideoDecoder *dec = new NvVideoDecoder(name, flags);
+    if (dec->isInError())
+    {
+        delete dec;
+        return NULL;
+    }
+    return dec;
+}
+
+NvVideoDecoder::~NvVideoDecoder()
+{
+}
+
+int
+NvVideoDecoder::setCapturePlaneFormat(uint32_t pixfmt, uint32_t width,
+        uint32_t height)
+{
+    struct v4l2_format format;
+    uint32_t num_bufferplanes;
+    NvBuffer::NvBufferPlaneFormat planefmts[MAX_PLANES];
+
+    if (! ((pixfmt == V4L2_PIX_FMT_NV12M) || (pixfmt == V4L2_PIX_FMT_P010M) || (pixfmt == V4L2_PIX_FMT_YUV422M) ||
+           (pixfmt == V4L2_PIX_FMT_NV24M) || (pixfmt == V4L2_PIX_FMT_NV24_10LE)))
+    {
+        COMP_ERROR_MSG("Only NV12M, P010M, YUV422M, NV24M and NV24_10LE is supported");
+        return -1;
+    }
+
+    capture_plane_pixfmt = pixfmt;
+    NvBuffer::fill_buffer_plane_format(&num_bufferplanes, planefmts, width,
+            height, pixfmt);
+    capture_plane.setBufferPlaneFormat(num_bufferplanes, planefmts);
+
+    memset(&format, 0, sizeof(struct v4l2_format));
+    format.type = capture_plane.getBufType();
+    format.fmt.pix_mp.width = width;
+    format.fmt.pix_mp.height = height;
+    format.fmt.pix_mp.pixelformat = pixfmt;
+    format.fmt.pix_mp.num_planes = num_bufferplanes;
+
+    return capture_plane.setFormat(format);
+}
+
+int
+NvVideoDecoder::setOutputPlaneFormat(uint32_t pixfmt, uint32_t sizeimage)
+{
+    struct v4l2_format format;
+
+    memset(&format, 0, sizeof(struct v4l2_format));
+    format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
+    switch (pixfmt)
+    {
+        case V4L2_PIX_FMT_H264:
+        case V4L2_PIX_FMT_H265:
+        case V4L2_PIX_FMT_VP8:
+        case V4L2_PIX_FMT_VP9:
+        case V4L2_PIX_FMT_AV1:
+        case V4L2_PIX_FMT_MPEG2:
+        case V4L2_PIX_FMT_MPEG4:
+        case V4L2_PIX_FMT_MJPEG:
+            output_plane_pixfmt = pixfmt;
+            break;
+        default:
+            COMP_ERROR_MSG("Unsupported pixel format for decoder output plane "
+                    << pixfmt);
+            return -1;
+    }
+    format.fmt.pix_mp.pixelformat = pixfmt;
+    format.fmt.pix_mp.num_planes = 1;
+    format.fmt.pix_mp.plane_fmt[0].sizeimage = sizeimage;
+
+    return output_plane.setFormat(format);
+}
+
+int
+NvVideoDecoder::disableDPB()
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+    RETURN_ERROR_IF_BUFFERS_REQUESTED();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_DISABLE_DPB;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Disabling decoder DPB");
+}
+
+int
+NvVideoDecoder::disableCompleteFrameInputBuffer()
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT;
+    control.value = 1;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Disabling decoder complete frame input buffer");
+}
+
+int
+NvVideoDecoder::setFrameInputMode(unsigned int ctrl_value)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT;
+    control.value = ctrl_value;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Setting decoder frame input mode to " << ctrl_value);
+}
+
+int
+NvVideoDecoder::setSliceMode(unsigned int ctrl_value)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE;
+    control.value = ctrl_value;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Setting decoder slice mode to " << ctrl_value);
+}
+
+int
+NvVideoDecoder::getMinimumCapturePlaneBuffers(int &num)
+{
+    CHECK_V4L2_RETURN(getControl(V4L2_CID_MIN_BUFFERS_FOR_CAPTURE, num),
+            "Getting decoder minimum capture plane buffers (" << num << ")");
+}
+
+int
+NvVideoDecoder::setSkipFrames(enum v4l2_skip_frames_type skip_frames)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+    RETURN_ERROR_IF_BUFFERS_REQUESTED();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_SKIP_FRAMES;
+    control.value = skip_frames;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Setting decoder skip frames to " << skip_frames);
+}
+
+int
+NvVideoDecoder::setMaxPerfMode(int flag)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+    RETURN_ERROR_IF_BUFFERS_REQUESTED();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_MAX_PERFORMANCE;
+    control.value = flag;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Enabling Maximum Performance ");
+}
+
+int
+NvVideoDecoder::enableMetadataReporting()
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+    RETURN_ERROR_IF_BUFFERS_REQUESTED();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_ERROR_REPORTING;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Enabling decoder output metadata reporting");
+}
+
+int
+NvVideoDecoder::getMetadata(uint32_t buffer_index,
+        v4l2_ctrl_videodec_outputbuf_metadata &dec_metadata)
+{
+    v4l2_ctrl_video_metadata metadata;
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    metadata.buffer_index = buffer_index;
+    metadata.VideoDecMetadata = &dec_metadata;
+
+    control.id = V4L2_CID_MPEG_VIDEODEC_METADATA;
+    control.string = (char *)&metadata;
+
+    CHECK_V4L2_RETURN(getExtControls(ctrls),
+            "Getting decoder output metadata for buffer " << buffer_index);
+}
+
+int
+NvVideoDecoder::getInputMetadata(uint32_t buffer_index,
+        v4l2_ctrl_videodec_inputbuf_metadata &dec_input_metadata)
+{
+    v4l2_ctrl_video_metadata metadata;
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    metadata.buffer_index = buffer_index;
+    metadata.VideoDecHeaderErrorMetadata = &dec_input_metadata;
+
+    control.id = V4L2_CID_MPEG_VIDEODEC_INPUT_METADATA;
+    control.string = (char *)&metadata;
+
+    CHECK_V4L2_RETURN(getExtControls(ctrls),
+            "Getting decoder input metadata for buffer " << buffer_index);
+}
+
+int
+NvVideoDecoder::getSAR(uint32_t &sar_width, uint32_t &sar_height)
+{
+    struct v4l2_ext_control controls[2];
+    struct v4l2_ext_controls ctrls;
+
+    ctrls.count = 2;
+    ctrls.controls = controls;
+
+    controls[0].id = V4L2_CID_MPEG_VIDEODEC_SAR_WIDTH;
+    controls[0].string = (char *)&sar_width;
+
+    controls[1].id = V4L2_CID_MPEG_VIDEODEC_SAR_HEIGHT;
+    controls[1].string = (char *)&sar_height;
+
+    CHECK_V4L2_RETURN(getExtControls(ctrls),
+            "Getting decoder SAR width and height");
+}
+
+int
+NvVideoDecoder::checkifMasteringDisplayDataPresent(v4l2_ctrl_video_displaydata
+        &displaydata)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_VIDEODEC_DISPLAYDATA_PRESENT;
+    control.string = (char *)&displaydata;
+
+    CHECK_V4L2_RETURN(getExtControls(ctrls),
+            "Getting decoder output displaydata for buffer ");
+}
+
+int
+NvVideoDecoder::MasteringDisplayData(v4l2_ctrl_video_hdrmasteringdisplaydata
+        *hdrmasteringdisplaydata)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_VIDEODEC_HDR_MASTERING_DISPLAY_DATA;
+    control.string = (char *)hdrmasteringdisplaydata;
+
+    CHECK_V4L2_RETURN(getExtControls(ctrls),
+            "Getting decoder output hdrdisplaydata for buffer ");
+}
+
+int
+NvVideoDecoder::DevicePoll(v4l2_ctrl_video_device_poll *devicepoll)
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_VIDEO_DEVICE_POLL;
+    control.string = (char *)devicepoll;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Done calling video device poll ");
+}
+
+int
+NvVideoDecoder::SetPollInterrupt()
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_SET_POLL_INTERRUPT;
+    control.value = 1;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Setting decoder poll interrupt to 1 ");
+}
+
+int
+NvVideoDecoder::ClearPollInterrupt()
+{
+    struct v4l2_ext_control control;
+    struct v4l2_ext_controls ctrls;
+
+    RETURN_ERROR_IF_FORMATS_NOT_SET();
+
+    memset(&control, 0, sizeof(control));
+    memset(&ctrls, 0, sizeof(ctrls));
+
+    ctrls.count = 1;
+    ctrls.controls = &control;
+
+    control.id = V4L2_CID_MPEG_SET_POLL_INTERRUPT;
+    control.value = 0;
+
+    CHECK_V4L2_RETURN(setExtControls(ctrls),
+            "Setting decoder poll interrupt to 0 ");
+}
+

+ 701 - 0
ZJ_PRO_DMF_JETSON/webrtcinterop/common/classes/NvVulkanRenderer.cpp

@@ -0,0 +1,701 @@
+/*
+ * Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *  * Neither the name of NVIDIA CORPORATION nor the names of its
+ *    contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "NvVulkanRenderer.h"
+#include "NvLogging.h"
+#include "nvbufsurface.h"
+
+#include <unistd.h>
+#include <vector>
+#include <bitset>
+#include <set>
+#include <vulkan/vulkan_xlib.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#define CAT_NAME "VulkanRenderer"
+
+using namespace std;
+
+#define VK_CHECK(f)                                                                             \
+    do {                                                                                        \
+        const VkResult result = (f);                                                            \
+        if (result != VK_SUCCESS) {                                                             \
+            printf("Abort. %s failed at %s:%d. Result = %d\n", #f, __FILE__, __LINE__, result); \
+            abort();                                                                            \
+        }                                                                                       \
+    } while (false)
+
+#define CHECK(f)                                                           \
+    do {                                                                   \
+        if (!(f)) {                                                        \
+            printf("Abort. %s failed at %s:%d\n", #f, __FILE__, __LINE__); \
+            abort();                                                       \
+        }                                                                  \
+    } while (false)
+
+NvVulkanRenderer::NvVulkanRenderer(const char *name, uint32_t width, uint32_t height,
+                uint32_t x_offset, uint32_t y_offset)
+                : NvElement(name, valid_fields)
+{
+    m_XWindow = 0;
+    m_XDisplay = NULL;
+
+    XInitThreads();
+    m_XDisplay = XOpenDisplay(NULL);
+    long visualMask = VisualScreenMask;
+    int numberOfVisuals;
+    XVisualInfo vInfoTemplate = {};
+    vInfoTemplate.screen = DefaultScreen(m_XDisplay);
+    XVisualInfo *visualInfo = XGetVisualInfo(m_XDisplay, visualMask, &vInfoTemplate, &numberOfVisuals);
+
+    Colormap colormap =
+        XCreateColormap(m_XDisplay, RootWindow(m_XDisplay, vInfoTemplate.screen), visualInfo->visual, AllocNone);
+
+    XSetWindowAttributes windowAttributes = {};
+    windowAttributes.colormap = colormap;
+    windowAttributes.background_pixel = 0xFFFFFFFF;
+    windowAttributes.border_pixel = 0;
+    windowAttributes.event_mask = KeyPressMask | KeyReleaseMask | StructureNotifyMask | ExposureMask;
+
+    m_XWindow = XCreateWindow(m_XDisplay, RootWindow(m_XDisplay, vInfoTemplate.screen), 0, 0, width,
+                                      height, 0, visualInfo->depth, InputOutput, visualInfo->visual,
+                                      CWBackPixel | CWBorderPixel | CWEventMask | CWColormap, &windowAttributes);
+    CHECK(m_XWindow);
+    XSelectInput(m_XDisplay, m_XWindow, ExposureMask | KeyPressMask);
+    XMapWindow(m_XDisplay, m_XWindow);
+    XFlush(m_XDisplay);
+
+    // We allocate memory everytime for vkImage binded to foreign FD, destroy the image which is already presented
+    // for which we keep track of older image memory.
+    m_vkImageMemoryIndex = -1;
+    m_oldImageIndex = -1;
+}
+
+NvVulkanRenderer*
+NvVulkanRenderer::createVulkanRenderer(const char *name, uint32_t width,
+                                     uint32_t height, uint32_t x_offset,
+                                     uint32_t y_offset)
+{
+    NvVulkanRenderer *renderer = new NvVulkanRenderer(name, width, height,
+                                                x_offset, y_offset);
+    if (renderer->isInError())
+    {
+        delete renderer;
+        return NULL;
+    }
+    return renderer;
+}
+
+
+void
+NvVulkanRenderer::initVulkan()
+{
+    createInstance();
+    createSurface();
+    getPhysicalDevice();
+    getQueueFamilies();
+    createDevice();
+    createSwapChain();
+    createCommandPool();
+    createCommandBuffer();
+    createSyncObjects();
+}
+
+#ifdef USE_VALIDATION
+static
+VKAPI_ATTR VkBool32 VKAPI_CALL debugUtilsCallback(VkDebugUtilsMessageSeverityFlagBitsEXT message_severity, VkDebugUtilsMessageTypeFlagsEXT message_type,
+    const VkDebugUtilsMessengerCallbackDataEXT* callback_data, void* user_data)
+{
+    if (message_severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {
+        COMP_WARN_MSG("Vulkan warning ");
+    } else if (message_severity & VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) {
+        COMP_ERROR_MSG("Vulkan error");
+    } else {
+        return VK_FALSE;
+    }
+
+    printf("(%d)\n%s\n%s\n\n", callback_data->messageIdNumber, callback_data->pMessageIdName, callback_data->pMessage);
+    return VK_FALSE;
+}
+#endif
+
+static
+MemoryTypeResult findMemoryType(VkPhysicalDevice physicalDevice, uint32_t typeFilter, VkMemoryPropertyFlags properties)
+{
+    VkPhysicalDeviceMemoryProperties memoryProperties;
+    vkGetPhysicalDeviceMemoryProperties(physicalDevice, &memoryProperties);
+
+    MemoryTypeResult result;
+    result.found = false;
+
+    for (uint32_t i = 0; i < memoryProperties.memoryTypeCount; ++i) {
+        if ((typeFilter & (1 << i)) && (memoryProperties.memoryTypes[i].propertyFlags & properties) == properties) {
+            result.typeIndex = i;
+            result.found = true;
+            break;
+        }
+    }
+    return result;
+}
+
+void
+NvVulkanRenderer::createSurface()
+{
+    VkXlibSurfaceCreateInfoKHR createInfo;
+    createInfo.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
+    createInfo.pNext = NULL;
+    createInfo.flags = 0;
+    createInfo.dpy = m_XDisplay;
+    createInfo.window = m_XWindow;
+
+    VK_CHECK(vkCreateXlibSurfaceKHR(m_instance, &createInfo, NULL, &m_surface));
+    COMP_INFO_MSG("Vulkan surface created\n");
+}
+
+void
+NvVulkanRenderer::createInstance()
+{
+    VkApplicationInfo appInfo{};
+    appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
+    appInfo.pApplicationName = "Sample";
+    appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
+    appInfo.pEngineName = "";
+    appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
+    appInfo.apiVersion = VK_API_VERSION_1_2;
+
+#ifdef USE_VALIDATION
+    VkDebugUtilsMessengerCreateInfoEXT debugUtilsCreateInfo{};
+    debugUtilsCreateInfo.pNext = nullptr;
+    debugUtilsCreateInfo.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT;
+    debugUtilsCreateInfo.messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT;
+    debugUtilsCreateInfo.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT;
+    debugUtilsCreateInfo.pfnUserCallback = debugUtilsCallback;
+    debugUtilsCreateInfo.pUserData = nullptr;
+
+    const std::vector<VkValidationFeatureEnableEXT> enabledFeatures{
+        VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,                       //
+        VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,  //
+        // VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,                     //
+        // VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,                       //
+        VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT,  //
+    };
+
+    VkValidationFeaturesEXT validationFeatures{};
+    validationFeatures.sType = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT;
+    validationFeatures.pNext = &debugUtilsCreateInfo;
+    validationFeatures.enabledValidationFeatureCount = ui32Size(enabledFeatures);
+    validationFeatures.pEnabledValidationFeatures = enabledFeatures.data();
+    validationFeatures.disabledValidationFeatureCount = 0;
+    validationFeatures.pDisabledValidationFeatures = nullptr;
+
+    const std::string validationLayerName = "VK_LAYER_KHRONOS_validation";
+    std::vector<const char*> enabledLayers{validationLayerName.c_str()};
+    void* pNext = &validationFeatures;
+#else
+    std::vector<const char*> enabledLayers{};
+    void* pNext = nullptr;
+#endif
+
+    VkInstanceCreateInfo instanceCreateInfo{};
+    instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
+    instanceCreateInfo.pApplicationInfo = &appInfo;
+    instanceCreateInfo.enabledExtensionCount = ui32Size(m_instanceExtensions);
+    instanceCreateInfo.ppEnabledExtensionNames = m_instanceExtensions.data();
+    instanceCreateInfo.enabledLayerCount = ui32Size(enabledLayers);
+    instanceCreateInfo.ppEnabledLayerNames = enabledLayers.data();
+    instanceCreateInfo.pNext = pNext;
+
+    VK_CHECK(vkCreateInstance(&instanceCreateInfo, nullptr, &m_instance));
+
+#ifdef USE_VALIDATION
+    auto vkCreateDebugUtilsMessengerEXT = (PFN_vkCreateDebugUtilsMessengerEXT)vkGetInstanceProcAddr(m_instance, "vkCreateDebugUtilsMessengerEXT");
+    if (vkCreateDebugUtilsMessengerEXT) {
+        VK_CHECK(vkCreateDebugUtilsMessengerEXT(m_instance, &debugUtilsCreateInfo, nullptr, &m_debugMessenger));
+    }
+#endif
+    COMP_INFO_MSG("Vulkan instance created");
+}
+
+PFN_vkVoidFunction NvVulkanRenderer::getInstanceFunction(VkInstance instance, const char* name)
+{
+    PFN_vkVoidFunction f = vkGetInstanceProcAddr(instance, name);
+    if (f == nullptr) {
+        COMP_ERROR_MSG("Could not get instance function pointer");
+        fprintf(stderr, "%s", name);
+    }
+    return f;
+}
+
+void
+NvVulkanRenderer::getPhysicalDevice()
+{
+    uint32_t deviceCount = 0;
+    vkEnumeratePhysicalDevices(m_instance, &deviceCount, nullptr);
+    CHECK(deviceCount);
+
+    std::vector<VkPhysicalDevice> devices(deviceCount);
+    vkEnumeratePhysicalDevices(m_instance, &deviceCount, devices.data());
+    m_physicalDevice = devices[0];
+    CHECK(m_physicalDevice != VK_NULL_HANDLE);
+}
+
+void
+NvVulkanRenderer::getQueueFamilies()
+{
+    uint32_t queueFamilyCount = 0;
+    vkGetPhysicalDeviceQueueFamilyProperties(m_physicalDevice, &queueFamilyCount, nullptr);
+    std::vector<VkQueueFamilyProperties> queueFamilies(queueFamilyCount);
+    vkGetPhysicalDeviceQueueFamilyProperties(m_physicalDevice, &queueFamilyCount, queueFamilies.data());
+
+    QueueFamilyIndices indices;
+    for (unsigned int i = 0; i < queueFamilies.size(); ++i) {
+        if (queueFamilies[i].queueCount > 0 && queueFamilies[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) {
+            indices.graphicsFamily = i;
+        }
+
+        if (queueFamilies[i].queueCount > 0 && queueFamilies[i].queueFlags & VK_QUEUE_COMPUTE_BIT) {
+            indices.computeFamily = i;
+        }
+
+        VkBool32 presentSupport = false;
+        vkGetPhysicalDeviceSurfaceSupportKHR(m_physicalDevice, i, m_surface, &presentSupport);
+
+        if (presentSupport) {
+            indices.presentFamily = i;
+        }
+    }
+
+    m_queueFamilyIndices = indices;
+}
+
+void
+NvVulkanRenderer::createDevice()
+{
+    const std::set<int> uniqueQueueFamilies = {m_queueFamilyIndices.graphicsFamily, m_queueFamilyIndices.computeFamily,
+                                               m_queueFamilyIndices.presentFamily};
+
+    std::vector<VkDeviceQueueCreateInfo> queueCreateInfos;
+    const float queuePriority = 1.0f;
+    for (int queueFamily : uniqueQueueFamilies) {
+        VkDeviceQueueCreateInfo queueCreateInfo{};
+        queueCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
+        queueCreateInfo.queueFamilyIndex = queueFamily;
+        queueCreateInfo.queueCount = 1;
+        queueCreateInfo.pQueuePriorities = &queuePriority;
+        queueCreateInfos.push_back(queueCreateInfo);
+    }
+
+    VkPhysicalDeviceFeatures deviceFeatures{};
+    VkPhysicalDeviceVulkan12Features device12Features{};
+    device12Features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES;
+
+    VkDeviceCreateInfo createInfo{};
+    createInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
+    createInfo.pNext = &device12Features;
+    createInfo.queueCreateInfoCount = ui32Size(queueCreateInfos);
+    createInfo.pQueueCreateInfos = queueCreateInfos.data();
+    createInfo.pEnabledFeatures = &deviceFeatures;
+    createInfo.enabledExtensionCount = ui32Size(m_deviceExtensions);
+    createInfo.ppEnabledExtensionNames = m_deviceExtensions.data();
+    createInfo.enabledLayerCount = ui32Size(m_validationLayers);
+    createInfo.ppEnabledLayerNames = m_validationLayers.data();
+
+    VK_CHECK(vkCreateDevice(m_physicalDevice, &createInfo, nullptr, &m_device));
+
+    vkGetDeviceQueue(m_device, m_queueFamilyIndices.graphicsFamily, 0, &m_graphicsQueue);
+    vkGetDeviceQueue(m_device, m_queueFamilyIndices.presentFamily, 0, &m_presentQueue);
+
+    COMP_INFO_MSG("Vulkan device created\n");
+}
+
+void
+NvVulkanRenderer::setSize(uint32_t width, uint32_t height)
+{
+    m_windowWidth = width;
+    m_windowHeight = height;
+    return;
+}
+
+static
+VkSurfaceFormatKHR chooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& availableFormats) {
+    for (const auto& availableFormat : availableFormats) {
+        if (availableFormat.format == VK_FORMAT_B8G8R8A8_SRGB && availableFormat.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR) {
+            return availableFormat;
+        }
+    }
+
+    return availableFormats[0];
+}
+
+static
+VkPresentModeKHR chooseSwapPresentMode(const std::vector<VkPresentModeKHR>& availablePresentModes) {
+    for (const auto& availablePresentMode : availablePresentModes) {
+        if (availablePresentMode == VK_PRESENT_MODE_MAILBOX_KHR) {
+            return availablePresentMode;
+        }
+    }
+
+    return VK_PRESENT_MODE_FIFO_KHR;
+}
+
+static
+VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR& capabilities, uint32_t width, uint32_t height) {
+    if (capabilities.currentExtent.width != std::numeric_limits<uint32_t>::max()) {
+        return capabilities.currentExtent;
+    } else {
+        VkExtent2D actualExtent = {
+            static_cast<uint32_t>(width),
+            static_cast<uint32_t>(height)
+        };
+
+#define CLAMP(x, min, max) \
+        x = x > max ? max : x; \
+        x = x < min ? min : x;
+
+        CLAMP(actualExtent.width, capabilities.minImageExtent.width, capabilities.maxImageExtent.width);
+        CLAMP(actualExtent.height, capabilities.minImageExtent.height, capabilities.maxImageExtent.height);
+
+#undef CLAMP
+        return actualExtent;
+    }
+}
+
+static
+SwapChainSupportDetails querySwapChainSupport(VkPhysicalDevice device, VkSurfaceKHR surface) {
+    SwapChainSupportDetails details;
+
+    vkGetPhysicalDeviceSurfaceCapabilitiesKHR(device, surface, &details.capabilities);
+
+    uint32_t formatCount;
+    vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface, &formatCount, nullptr);
+
+    if (formatCount != 0) {
+        details.formats.resize(formatCount);
+        vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface, &formatCount, details.formats.data());
+    }
+
+    uint32_t presentModeCount;
+    vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface, &presentModeCount, nullptr);
+
+    if (presentModeCount != 0) {
+        details.presentModes.resize(presentModeCount);
+        vkGetPhysicalDeviceSurfacePresentModesKHR(device, surface, &presentModeCount, details.presentModes.data());
+    }
+
+    return details;
+}
+
+void
+NvVulkanRenderer::createSwapChain()
+{
+    SwapChainSupportDetails swapChainSupport = querySwapChainSupport(m_physicalDevice, m_surface);
+
+    VkSurfaceFormatKHR surfaceFormat = chooseSwapSurfaceFormat(swapChainSupport.formats);
+    VkPresentModeKHR presentMode = chooseSwapPresentMode(swapChainSupport.presentModes);
+    VkExtent2D extent = chooseSwapExtent(swapChainSupport.capabilities, m_windowWidth, m_windowHeight);
+
+    uint32_t imageCount = swapChainSupport.capabilities.minImageCount + 1;
+    if (swapChainSupport.capabilities.maxImageCount > 0 && imageCount > swapChainSupport.capabilities.maxImageCount) {
+        imageCount = swapChainSupport.capabilities.maxImageCount;
+    }
+
+    VkSwapchainCreateInfoKHR createInfo{};
+    createInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
+    createInfo.surface = m_surface;
+
+    createInfo.minImageCount = imageCount;
+    createInfo.imageFormat = surfaceFormat.format;
+    createInfo.imageColorSpace = surfaceFormat.colorSpace;
+    createInfo.imageExtent = extent;
+    createInfo.imageArrayLayers = 1;
+    createInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT;
+
+    uint32_t queueFamilyIndices[] = {(uint32_t)m_queueFamilyIndices.graphicsFamily, (uint32_t)m_queueFamilyIndices.presentFamily};
+
+    if (m_queueFamilyIndices.graphicsFamily != m_queueFamilyIndices.presentFamily) {
+        createInfo.imageSharingMode = VK_SHARING_MODE_CONCURRENT;
+        createInfo.queueFamilyIndexCount = 2;
+        createInfo.pQueueFamilyIndices = queueFamilyIndices;
+    } else {
+        createInfo.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE;
+    }
+
+    createInfo.preTransform = swapChainSupport.capabilities.currentTransform;
+    createInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
+    createInfo.presentMode = presentMode;
+    createInfo.clipped = VK_TRUE;
+
+    VK_CHECK(vkCreateSwapchainKHR(m_device, &createInfo, nullptr, &m_swapChain));
+
+    vkGetSwapchainImagesKHR(m_device, m_swapChain, &imageCount, nullptr);
+    m_swapChainImages.resize(imageCount);
+    m_vkImageMemory.resize(imageCount);
+    vkGetSwapchainImagesKHR(m_device, m_swapChain, &imageCount, m_swapChainImages.data());
+
+    m_swapChainImageFormat = surfaceFormat.format;
+    m_swapChainExtent = extent;
+    COMP_INFO_MSG("Vulkan swapchain created");
+}
+
+void
+NvVulkanRenderer::createCommandBuffer() {
+    VkCommandBufferAllocateInfo allocInfo{};
+    allocInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
+    allocInfo.commandPool = m_commandPool;
+    allocInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
+    allocInfo.commandBufferCount = 1;
+
+    VK_CHECK(vkAllocateCommandBuffers(m_device, &allocInfo, &m_commandBuffer));
+}
+
+void
+NvVulkanRenderer::createSyncObjects() {
+    VkSemaphoreCreateInfo semaphoreInfo{};
+    semaphoreInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO;
+
+    VkFenceCreateInfo fenceInfo{};
+    fenceInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
+    fenceInfo.flags = VK_FENCE_CREATE_SIGNALED_BIT;
+
+    VK_CHECK(vkCreateSemaphore(m_device, &semaphoreInfo, nullptr, &m_imageAvailableSemaphore));
+    VK_CHECK(vkCreateSemaphore(m_device, &semaphoreInfo, nullptr, &m_renderFinishedSemaphore));
+    VK_CHECK(vkCreateFence(m_device, &fenceInfo, nullptr, &m_inFlightFence));
+
+}
+
+void
+NvVulkanRenderer::createCommandPool() {
+    VkCommandPoolCreateInfo poolInfo{};
+    poolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
+    poolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
+    poolInfo.queueFamilyIndex = m_queueFamilyIndices.graphicsFamily;
+
+    VK_CHECK(vkCreateCommandPool(m_device, &poolInfo, nullptr, &m_commandPool));
+}
+
+void
+NvVulkanRenderer::recordCommandBuffer(VkImage image, uint32_t imageIndex)
+{
+    VkCommandBufferBeginInfo beginInfo{};
+    beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
+
+    VK_CHECK(vkBeginCommandBuffer(m_commandBuffer, &beginInfo));
+
+    VkImageCopy copyRegion{};
+    copyRegion.srcSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1};
+    copyRegion.dstSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1};
+    copyRegion.extent = {m_windowWidth, m_windowHeight, 1};
+    copyRegion.srcOffset = {0, 0, 0};
+    copyRegion.dstOffset = {0, 0, 0};
+
+    vkCmdCopyImage(
+        m_commandBuffer, image, VK_IMAGE_LAYOUT_GENERAL, m_swapChainImages[imageIndex], VK_IMAGE_LAYOUT_GENERAL, 1, &copyRegion);
+
+    VK_CHECK(vkEndCommandBuffer(m_commandBuffer));
+}
+
+void
+NvVulkanRenderer::displayFrame(VkImage image)
+{
+    VkResult err;
+
+    VK_CHECK(vkWaitForFences(m_device, 1, &m_inFlightFence, VK_TRUE, UINT64_MAX));
+    VK_CHECK(vkResetFences(m_device, 1, &m_inFlightFence));
+
+    uint32_t imageIndex;
+    err = vkAcquireNextImageKHR(m_device, m_swapChain, UINT64_MAX, m_imageAvailableSemaphore, VK_NULL_HANDLE, &imageIndex);
+    if (err != VK_SUBOPTIMAL_KHR)
+    {
+        /* m_swapChain is not as optimal as it could be, but the platform's presentation engine
+         * will still present the image correctly, hence do not fail on VK_SUBOPTIMAL_KHR */
+        VK_CHECK(err);
+    }
+
+    VK_CHECK(vkResetCommandBuffer(m_commandBuffer, /*VkCommandBufferResetFlagBits*/ 0));
+    recordCommandBuffer(image, imageIndex);
+
+    VkSubmitInfo submitInfo{};
+    submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
+
+    VkSemaphore waitSemaphores[] = {m_imageAvailableSemaphore};
+    VkPipelineStageFlags waitStages[] = {VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT};
+    submitInfo.waitSemaphoreCount = 1;
+    submitInfo.pWaitSemaphores = waitSemaphores;
+    submitInfo.pWaitDstStageMask = waitStages;
+
+    submitInfo.commandBufferCount = 1;
+    submitInfo.pCommandBuffers = &m_commandBuffer;
+
+    VkSemaphore signalSemaphores[] = {m_renderFinishedSemaphore};
+    submitInfo.signalSemaphoreCount = 1;
+    submitInfo.pSignalSemaphores = signalSemaphores;
+
+    VK_CHECK(vkQueueSubmit(m_graphicsQueue, 1, &submitInfo, m_inFlightFence));
+
+    VkPresentInfoKHR presentInfo{};
+    presentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
+
+    presentInfo.waitSemaphoreCount = 1;
+    presentInfo.pWaitSemaphores = signalSemaphores;
+
+    VkSwapchainKHR swapChains[] = {m_swapChain};
+    presentInfo.swapchainCount = 1;
+    presentInfo.pSwapchains = swapChains;
+
+    presentInfo.pImageIndices = &imageIndex;
+
+    err = vkQueuePresentKHR(m_presentQueue, &presentInfo);
+    if (err == VK_SUBOPTIMAL_KHR)
+    {
+        /* m_swapChain is not as optimal as it could be, but the platform's presentation engine
+         * will still present the image correctly, hence do not fail on VK_SUBOPTIMAL_KHR */
+    } else if (err == VK_ERROR_SURFACE_LOST_KHR) {
+        /* Should we attempt to do something here or on hotplug detection? */
+    } else {
+        VK_CHECK(err);
+    }
+}
+
+void
+NvVulkanRenderer::createVkImageFromFd(int fd)
+{
+    COMP_DEBUG_MSG("\nCreating vk image from fd");
+
+    VkImage vkImage;
+    uint32_t width = m_windowWidth;
+    uint32_t height = m_windowHeight;
+
+    {  // create vk image
+        VkExternalMemoryImageCreateInfo dmaBufExternalMemoryImageCreateInfo{};
+        dmaBufExternalMemoryImageCreateInfo.sType = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
+        dmaBufExternalMemoryImageCreateInfo.pNext = nullptr;
+        dmaBufExternalMemoryImageCreateInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT;
+
+        VkImageCreateInfo dmaBufImageCreateInfo{};
+        dmaBufImageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
+        dmaBufImageCreateInfo.pNext = &dmaBufExternalMemoryImageCreateInfo;
+        dmaBufImageCreateInfo.flags = 0;
+        dmaBufImageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
+        dmaBufImageCreateInfo.format = m_imageFormat;
+        dmaBufImageCreateInfo.extent = {static_cast<uint32_t>(width), static_cast<uint32_t>(height), 1};
+        dmaBufImageCreateInfo.mipLevels = 1;
+        dmaBufImageCreateInfo.arrayLayers = 1;
+        dmaBufImageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
+        dmaBufImageCreateInfo.tiling = m_imageTiling;
+        dmaBufImageCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT;
+        dmaBufImageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
+        dmaBufImageCreateInfo.queueFamilyIndexCount = 0;
+        dmaBufImageCreateInfo.pQueueFamilyIndices = nullptr;
+        dmaBufImageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;  // NOTE Check spec once more!
+        VK_CHECK(vkCreateImage(m_device, &dmaBufImageCreateInfo, nullptr, &vkImage));
+    }
+
+    {  // allocate and bind
+        const int duppedFd = dup(fd);
+        (void)(duppedFd);
+
+        auto vkGetMemoryFdPropertiesKHR = (PFN_vkGetMemoryFdPropertiesKHR)getInstanceFunction(m_instance, "vkGetMemoryFdPropertiesKHR");
+        CHECK(vkGetMemoryFdPropertiesKHR);
+
+        VkMemoryFdPropertiesKHR dmaBufMemoryProperties{};
+        dmaBufMemoryProperties.sType = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR;
+        dmaBufMemoryProperties.pNext = nullptr;
+        VK_CHECK(vkGetMemoryFdPropertiesKHR(m_device, VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, duppedFd, &dmaBufMemoryProperties));
+        string str = "Fd memory memoryTypeBits: b" + std::bitset<8>(dmaBufMemoryProperties.memoryTypeBits).to_string();
+        COMP_DEBUG_MSG(str);
+
+        VkMemoryRequirements imageMemoryRequirements{};
+        vkGetImageMemoryRequirements(m_device, vkImage, &imageMemoryRequirements);
+        str = "Image memoryTypeBits: b" +  std::bitset<8>(imageMemoryRequirements.memoryTypeBits).to_string();
+        COMP_DEBUG_MSG(str);
+
+        const uint32_t bits = dmaBufMemoryProperties.memoryTypeBits & imageMemoryRequirements.memoryTypeBits;
+        CHECK(bits != 0);
+
+        const MemoryTypeResult memoryTypeResult = findMemoryType(m_physicalDevice, bits, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT);
+        CHECK(memoryTypeResult.found);
+        str = "Memory type index: " + to_string(memoryTypeResult.typeIndex);
+        COMP_DEBUG_MSG(str);
+
+        VkMemoryDedicatedAllocateInfo dedicatedAllocateInfo{};
+        dedicatedAllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
+        dedicatedAllocateInfo.image = vkImage;
+        VkImportMemoryFdInfoKHR importFdInfo{};
+        importFdInfo.sType = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR;
+        importFdInfo.pNext = &dedicatedAllocateInfo;
+        importFdInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT;
+        importFdInfo.fd = duppedFd;
+
+        str = "Memory size = " + to_string(imageMemoryRequirements.size);
+        COMP_DEBUG_MSG(str);
+
+        m_oldImageIndex = m_vkImageMemoryIndex;
+        int size = (int)m_vkImageMemory.size();
+        m_vkImageMemoryIndex += 1;
+        m_vkImageMemoryIndex = m_vkImageMemoryIndex % size;
+        VkMemoryAllocateInfo memoryAllocateInfo{};
+        memoryAllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
+        memoryAllocateInfo.pNext = &importFdInfo;
+        memoryAllocateInfo.allocationSize = imageMemoryRequirements.size;
+        memoryAllocateInfo.memoryTypeIndex = memoryTypeResult.typeIndex;
+        VK_CHECK(vkAllocateMemory(m_device, &memoryAllocateInfo, nullptr, &m_vkImageMemory[m_vkImageMemoryIndex]));
+
+        VK_CHECK(vkBindImageMemory(m_device, vkImage, m_vkImageMemory[m_vkImageMemoryIndex], 0));
+    }
+
+    {
+        displayFrame(vkImage);
+    }
+
+    if (m_oldImageIndex >= 0) {
+        vkDestroyImage(m_device, vkImage, nullptr);
+        vkFreeMemory(m_device, m_vkImageMemory[m_oldImageIndex], nullptr);
+    }
+
+    COMP_DEBUG_MSG("Vulkan image from fd created\n\n");
+}
+
+void
+NvVulkanRenderer::render(int fd)
+{
+    createVkImageFromFd(fd);
+}
+
+NvVulkanRenderer::~NvVulkanRenderer()
+{
+    vkDestroySemaphore(m_device, m_renderFinishedSemaphore, nullptr);
+    vkDestroySemaphore(m_device, m_imageAvailableSemaphore, nullptr);
+    vkDestroyFence(m_device, m_inFlightFence, nullptr);
+
+    vkDestroyCommandPool(m_device, m_commandPool, nullptr);
+    vkDestroySwapchainKHR(m_device, m_swapChain, nullptr);
+    vkDestroyDevice(m_device, nullptr);
+    vkDestroySurfaceKHR(m_instance, m_surface, nullptr);
+    vkDestroyInstance(m_instance, nullptr);
+}

+ 5 - 2
ZJ_PRO_DMF_JETSON/webrtcinterop/jetson_nv_encoder.cpp

@@ -450,12 +450,15 @@ void JetsonVideoEncoder::SetBitrateBps(uint32_t bitrate_bps) {
 }
 
 webrtc::VideoEncoder::EncoderInfo JetsonVideoEncoder::GetEncoderInfo() const {
+  printf("GET ENCODER INFO -----------------------------------------\n");
   EncoderInfo info;
   info.supports_native_handle = true;
   info.implementation_name = "Jetson Video Encoder";
 //   if (codec_.codecType == webrtc::kVideoCodecH264) {
-    static const int kLowH264QpThreshold = 34;
-    static const int kHighH264QpThreshold = 40;
+    // static const int kLowH264QpThreshold = 34;
+    // static const int kHighH264QpThreshold = 40;
+    static const int kLowH264QpThreshold = 24;
+    static const int kHighH264QpThreshold = 37;
     info.scaling_settings = VideoEncoder::ScalingSettings(kLowH264QpThreshold,
                                                           kHighH264QpThreshold);
 //   } else if (codec_.codecType == webrtc::kVideoCodecH265) {

+ 1 - 83
ZJ_PRO_DMF_JETSON/webrtcinterop/sri_build_encoder_factory.cpp

@@ -75,86 +75,4 @@ std::unique_ptr<webrtc::VideoEncoderFactory> CreateExternalVideoEncoderFactory()
 	return std::make_unique<ExternalEncoderFactory>();
 }
 
-}
-
-
-
-// /*
-//  *  Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
-//  *
-//  *  Use of this source code is governed by a BSD-style license
-//  *  that can be found in the LICENSE file in the root of the source
-//  *  tree. An additional intellectual property rights grant can be found
-//  *  in the file PATENTS.  All contributing project authors may
-//  *  be found in the AUTHORS file in the root of the source tree.
-//  */
-
-// #include "api/video_codecs/builtin_video_encoder_factory.h"
-
-// #include <memory>
-// #include <vector>
-
-// #include "absl/strings/match.h"
-// #include "api/video_codecs/sdp_video_format.h"
-// #include "api/video_codecs/video_encoder.h"
-// #include "media/base/codec.h"
-// #include "media/base/media_constants.h"
-// #include "media/engine/encoder_simulcast_proxy.h"
-// #include "media/engine/internal_encoder_factory.h"
-// #include "rtc_base/checks.h"
-
-// #include "sri_build_encoder_factory.h"
-// #include "absl/memory/memory.h"
-// #include "media/engine/internal_decoder_factory.h"
-// #include "rtc_base/logging.h"
-// #include "modules/video_coding/codecs/h264/include/h264.h"
-// #include "modules/video_coding/codecs/vp8/include/vp8.h"
-// #include "modules/video_coding/codecs/vp9/include/vp9.h"
-// #include "api/video_codecs/video_encoder_factory.h"
-// #include "rtc_base/checks.h"
-
-
-// namespace webrtc {
-
-// class ExternalEncoderFactory : public webrtc::VideoEncoderFactory {
-// public:
-// 	std::vector<webrtc::SdpVideoFormat> GetSupportedFormats()
-// 		const override {
-// 		std::vector<webrtc::SdpVideoFormat> video_formats;
-// 		for (const webrtc::SdpVideoFormat& vp9_format : webrtc::SupportedVP9Codecs())
-// 			video_formats.push_back(vp9_format);
-// 		return video_formats;
-// 	}
-
-// 	ExternalEncoderFactory::CodecInfo QueryVideoEncoder(
-// 		const webrtc::SdpVideoFormat& format) const override {
-// 		CodecInfo codec_info = { false };
-// 		// codec_info.is_hardware_accelerated = true;
-// 		codec_info.has_internal_source = false;
-// 		return codec_info;
-// 	}
-
-// 	std::unique_ptr<webrtc::VideoEncoder> CreateVideoEncoder(
-// 		const webrtc::SdpVideoFormat& format) override {
-// 		if (absl::EqualsIgnoreCase(format.name, cricket::kH264CodecName)) {
-// 			// if (webrtc::VP9Encoder::IsSupported()) {
-// 				// printf("VP9 encode \n");
-				
-// 					return absl::make_unique<webrtc::VP9EncoderImpl_>(cricket::VideoCodec(format));
-// 					// return absl::make_unique<webrtc::H264EncoderImpl_>(cricket::VideoCodec(format));
-					
-
-					
-				
-// 			// }			
-// 		}
-
-// 		return nullptr;
-// 	}
-// };
-
-// std::unique_ptr<webrtc::VideoEncoderFactory> CreateExternalVideoEncoderFactory() {
-// 	return std::make_unique<ExternalEncoderFactory>();
-// }
-
-// }
+}

+ 0 - 195
ZJ_PRO_DMF_JETSON/webrtcinterop/webrtcinterop.vcxproj

@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ItemGroup Label="ProjectConfigurations">
-    <ProjectConfiguration Include="Debug|Win32">
-      <Configuration>Debug</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <VCProjectVersion>16.0</VCProjectVersion>
-    <Keyword>Win32Proj</Keyword>
-    <ProjectGuid>{fe90bf46-d0c3-4212-84ab-1787784b25c1}</ProjectGuid>
-    <RootNamespace>webrtcinterop</RootNamespace>
-    <WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>v142</PlatformToolset>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>v142</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>Unicode</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>true</UseDebugLibraries>
-    <PlatformToolset>ClangCL</PlatformToolset>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <UseDebugLibraries>false</UseDebugLibraries>
-    <PlatformToolset>ClangCL</PlatformToolset>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <CharacterSet>MultiByte</CharacterSet>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Label="Shared">
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <LinkIncremental>true</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <LinkIncremental>false</LinkIncremental>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <LinkIncremental>true</LinkIncremental>
-    <OutDir>.\lib\debug</OutDir>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <LinkIncremental>false</LinkIncremental>
-    <OutDir>.\lib</OutDir>
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-    </ClCompile>
-    <Link>
-      <SubSystem>
-      </SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-    </ClCompile>
-    <Link>
-      <SubSystem>
-      </SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>_DEBUG;_LIB;WEBRTC_WIN;_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <PrecompiledHeader>NotUsing</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <AdditionalIncludeDirectories>.\include;..\thirdparty\webrtc\include\third_party\libyuv\include;..\thirdparty\webrtc\include\third_party\jsoncpp\source\include;..\thirdparty\webrtc\include\third_party\abseil-cpp;..\thirdparty\webrtc\include\;..\thirdparty\webrtc\include\third_party\jsoncpp\generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <LanguageStandard>stdcpp14</LanguageStandard>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-    </ClCompile>
-    <Link>
-      <SubSystem>
-      </SubSystem>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>webrtc.lib;%(AdditionalDependencies)</AdditionalDependencies>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <WarningLevel>Level3</WarningLevel>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <SDLCheck>true</SDLCheck>
-      <PreprocessorDefinitions>NDEBUG;_LIB;WEBRTC_WIN;_CRT_SECURE_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <ConformanceMode>true</ConformanceMode>
-      <PrecompiledHeader>Use</PrecompiledHeader>
-      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
-      <AdditionalIncludeDirectories>.\include;..\thirdparty\webrtc\include\third_party\libyuv\include;..\thirdparty\webrtc\include\third_party\jsoncpp\source\include;..\thirdparty\webrtc\include\third_party\abseil-cpp;..\thirdparty\webrtc\include\;..\thirdparty\webrtc\include\third_party\jsoncpp\generated;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <LanguageStandard>stdcpp14</LanguageStandard>
-      <CallingConvention>StdCall</CallingConvention>
-    </ClCompile>
-    <Link>
-      <SubSystem>
-      </SubSystem>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <OptimizeReferences>true</OptimizeReferences>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>webrtc.lib;jsoncpp.lib;strmiids.lib;winmm.lib;wmcodecdspuuid.lib;Secur32.lib;msdmo.lib;dmoguids.lib;IPHLPAPI.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
-      <AdditionalLibraryDirectories>D:\RemoteSln\webrtc\lib\Release;E:\webrtc\src\out\x64_release\obj;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
-    </Link>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClInclude Include="audio_frame_observer.h" />
-    <ClInclude Include="callback.h" />
-    <ClInclude Include="data_channel_observer.h" />
-    <ClInclude Include="framework.h" />
-    <ClInclude Include="include\api.h" />
-    <ClInclude Include="lock.h" />
-    <ClInclude Include="pch.h" />
-    <ClInclude Include="peer_connection.h" />
-    <ClInclude Include="sdp_utils.h" />
-    <ClInclude Include="video_frame_observer.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClCompile Include="api.cpp" />
-    <ClCompile Include="audio_frame_observer.cpp" />
-    <ClCompile Include="data_channel_observer.cpp" />
-    <ClCompile Include="pch.cpp">
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
-      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
-    </ClCompile>
-    <ClCompile Include="peer_connection.cpp" />
-    <ClCompile Include="sdp_utils.cpp" />
-    <ClCompile Include="video_frame_observer.cpp" />
-    <ClCompile Include="webrtcinterop.cpp" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.