From faca8f7b9c281d8faca0402e9586612e7049ce1f Mon Sep 17 00:00:00 2001 From: Robert Hedman <robert.hedman@mac.com> Date: Tue, 4 Sep 2018 12:05:17 +0000 Subject: [PATCH] added all scripts, scream etc --- RPI/lidar/relayer.py | 54 + RPI/piMobile.sh | 63 + RPI/piMobile_new.sh | 63 + RPI/piMobile_rust.sh | 63 + RPI/scream/rtsp/CMakeCache.txt | 304 +++ .../CMakeFiles/3.7.2/CMakeCCompiler.cmake | 68 + .../CMakeFiles/3.7.2/CMakeCXXCompiler.cmake | 69 + .../3.7.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8296 bytes .../3.7.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8324 bytes .../rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake | 15 + .../3.7.2/CompilerIdC/CMakeCCompilerId.c | 561 +++++ .../rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out | Bin 0 -> 8308 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 533 +++++ .../rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out | Bin 0 -> 8452 bytes .../CMakeDirectoryInformation.cmake | 16 + RPI/scream/rtsp/CMakeFiles/CMakeOutput.log | 542 +++++ RPI/scream/rtsp/CMakeFiles/Makefile.cmake | 47 + RPI/scream/rtsp/CMakeFiles/Makefile2 | 126 ++ .../rtsp/CMakeFiles/TargetDirectories.txt | 5 + RPI/scream/rtsp/CMakeFiles/cmake.check_cache | 1 + RPI/scream/rtsp/CMakeFiles/feature_tests.bin | Bin 0 -> 12376 bytes RPI/scream/rtsp/CMakeFiles/feature_tests.c | 34 + RPI/scream/rtsp/CMakeFiles/feature_tests.cxx | 405 ++++ RPI/scream/rtsp/CMakeFiles/progress.marks | 1 + RPI/scream/rtsp/CMakeLists.txt | 83 + RPI/scream/rtsp/Makefile | 148 ++ RPI/scream/rtsp/SSRC.txt | 1 + RPI/scream/rtsp/bin/rtsp | Bin 0 -> 18880 bytes RPI/scream/rtsp/cmake_install.cmake | 50 + .../CMakeDirectoryInformation.cmake | 16 + .../rtsp/code/CMakeFiles/progress.marks | 1 + .../code/CMakeFiles/rtsp.dir/CXX.includecache | 10 + .../code/CMakeFiles/rtsp.dir/DependInfo.cmake | 23 + .../rtsp/code/CMakeFiles/rtsp.dir/build.make | 113 + .../CMakeFiles/rtsp.dir/cmake_clean.cmake | 10 + .../code/CMakeFiles/rtsp.dir/depend.internal | 5 + .../rtsp/code/CMakeFiles/rtsp.dir/depend.make | 5 + .../rtsp/code/CMakeFiles/rtsp.dir/flags.make | 10 + .../rtsp/code/CMakeFiles/rtsp.dir/link.txt | 1 + .../code/CMakeFiles/rtsp.dir/progress.make | 3 + .../rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o | Bin 0 -> 8584 bytes RPI/scream/rtsp/code/CMakeLists.txt | 28 + RPI/scream/rtsp/code/Makefile | 180 ++ RPI/scream/rtsp/code/cmake_install.cmake | 34 + RPI/scream/rtsp/code/rtsp.cpp | 1 + RPI/scream/rtsp/rtspOut.txt | 105 + RPI/scream/rtsp/test.txt | 231 ++ RPI/scream/scream_receiver/CMakeCache.txt | 255 +++ .../CMakeFiles/3.7.2/CMakeCCompiler.cmake | 68 + .../CMakeFiles/3.7.2/CMakeCXXCompiler.cmake | 69 + .../3.7.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.7.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.7.2/CMakeSystem.cmake | 15 + .../3.7.2/CompilerIdC/CMakeCCompilerId.c | 561 +++++ .../CMakeFiles/3.7.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 533 +++++ .../CMakeFiles/3.7.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 560 +++++ .../scream_receiver/CMakeFiles/Makefile.cmake | 47 + .../scream_receiver/CMakeFiles/Makefile2 | 126 ++ .../CMakeFiles/TargetDirectories.txt | 5 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++ .../scream_receiver/CMakeFiles/progress.marks | 1 + RPI/scream/scream_receiver/CMakeLists.txt | 78 + RPI/scream/scream_receiver/Makefile | 148 ++ .../scream_receiver/bin/scream_receiver | Bin 0 -> 44120 bytes .../scream_receiver/cmake_install.cmake | 50 + .../CMakeDirectoryInformation.cmake | 16 + .../code/CMakeFiles/progress.marks | 1 + .../scream_receiver.dir/CXX.includecache | 68 + .../scream_receiver.dir/DependInfo.cmake | 24 + .../scream_receiver.dir/ScreamRx.cpp.o | Bin 0 -> 35968 bytes .../CMakeFiles/scream_receiver.dir/build.make | 140 ++ .../scream_receiver.dir/cmake_clean.cmake | 11 + .../scream_receiver.dir/depend.internal | 10 + .../scream_receiver.dir/depend.make | 10 + .../CMakeFiles/scream_receiver.dir/flags.make | 10 + .../CMakeFiles/scream_receiver.dir/link.txt | 1 + .../scream_receiver.dir/progress.make | 4 + .../scream_receiver.dir/scream_receiver.cpp.o | Bin 0 -> 23304 bytes .../scream_receiver/code/CMakeLists.txt | 30 + RPI/scream/scream_receiver/code/Makefile | 210 ++ RPI/scream/scream_receiver/code/ScreamRx.cpp | 305 +++ RPI/scream/scream_receiver/code/ScreamRx.h | 146 ++ RPI/scream/scream_receiver/code/ScreamTx.cpp | 1859 ++++++++++++++++ RPI/scream/scream_receiver/code/ScreamTx.h | 618 ++++++ .../scream_receiver/code/cmake_install.cmake | 34 + .../scream_receiver/code/scream_receiver.cpp | 317 +++ RPI/scream/scream_sender/CMakeCache.txt | 255 +++ .../CMakeFiles/3.7.2/CMakeCCompiler.cmake | 68 + .../CMakeFiles/3.7.2/CMakeCXXCompiler.cmake | 69 + .../3.7.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.7.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.7.2/CMakeSystem.cmake | 15 + .../3.7.2/CompilerIdC/CMakeCCompilerId.c | 561 +++++ .../CMakeFiles/3.7.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 533 +++++ .../CMakeFiles/3.7.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CMakeDirectoryInformation.cmake | 16 + .../scream_sender/CMakeFiles/CMakeOutput.log | 560 +++++ .../scream_sender/CMakeFiles/Makefile.cmake | 48 + RPI/scream/scream_sender/CMakeFiles/Makefile2 | 126 ++ .../CMakeFiles/TargetDirectories.txt | 5 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../scream_sender/CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++ .../scream_sender/CMakeFiles/progress.marks | 1 + RPI/scream/scream_sender/CMakeLists.txt | 83 + RPI/scream/scream_sender/Makefile | 148 ++ RPI/scream/scream_sender/bin/scream_sender | Bin 0 -> 78988 bytes RPI/scream/scream_sender/cmake_install.cmake | 50 + .../CMakeDirectoryInformation.cmake | 16 + .../code/CMakeFiles/progress.marks | 1 + .../scream_sender.dir/CXX.includecache | 62 + .../scream_sender.dir/DependInfo.cmake | 25 + .../scream_sender.dir/RtpQueue.cpp.o | Bin 0 -> 7976 bytes .../scream_sender.dir/ScreamTx.cpp.o | Bin 0 -> 40828 bytes .../CMakeFiles/scream_sender.dir/build.make | 167 ++ .../scream_sender.dir/cmake_clean.cmake | 12 + .../scream_sender.dir/depend.internal | 13 + .../CMakeFiles/scream_sender.dir/depend.make | 13 + .../CMakeFiles/scream_sender.dir/flags.make | 10 + .../CMakeFiles/scream_sender.dir/link.txt | 1 + .../scream_sender.dir/progress.make | 5 + .../scream_sender.dir/scream_sender.cpp.o | Bin 0 -> 28328 bytes RPI/scream/scream_sender/code/CMakeLists.txt | 33 + RPI/scream/scream_sender/code/Makefile | 240 +++ RPI/scream/scream_sender/code/RtpQueue.cpp | 121 ++ RPI/scream/scream_sender/code/RtpQueue.h | 59 + RPI/scream/scream_sender/code/ScreamRx.h | 146 ++ RPI/scream/scream_sender/code/ScreamTx.cpp | 1912 +++++++++++++++++ RPI/scream/scream_sender/code/ScreamTx.h | 627 ++++++ .../scream_sender/code/cmake_install.cmake | 34 + .../scream_sender/code/scream_sender.cpp | 1 + RPI/talk.sh | 3 + 140 files changed, 17293 insertions(+) create mode 100644 RPI/lidar/relayer.py create mode 100755 RPI/piMobile.sh create mode 100755 RPI/piMobile_new.sh create mode 100755 RPI/piMobile_rust.sh create mode 100644 RPI/scream/rtsp/CMakeCache.txt create mode 100644 RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake create mode 100644 RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake create mode 100755 RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin create mode 100755 RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake create mode 100644 RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out create mode 100644 RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out create mode 100644 RPI/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/rtsp/CMakeFiles/CMakeOutput.log create mode 100644 RPI/scream/rtsp/CMakeFiles/Makefile.cmake create mode 100644 RPI/scream/rtsp/CMakeFiles/Makefile2 create mode 100644 RPI/scream/rtsp/CMakeFiles/TargetDirectories.txt create mode 100644 RPI/scream/rtsp/CMakeFiles/cmake.check_cache create mode 100755 RPI/scream/rtsp/CMakeFiles/feature_tests.bin create mode 100644 RPI/scream/rtsp/CMakeFiles/feature_tests.c create mode 100644 RPI/scream/rtsp/CMakeFiles/feature_tests.cxx create mode 100644 RPI/scream/rtsp/CMakeFiles/progress.marks create mode 100644 RPI/scream/rtsp/CMakeLists.txt create mode 100644 RPI/scream/rtsp/Makefile create mode 100644 RPI/scream/rtsp/SSRC.txt create mode 100755 RPI/scream/rtsp/bin/rtsp create mode 100644 RPI/scream/rtsp/cmake_install.cmake create mode 100644 RPI/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/rtsp/code/CMakeFiles/progress.marks create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make create mode 100644 RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o create mode 100644 RPI/scream/rtsp/code/CMakeLists.txt create mode 100644 RPI/scream/rtsp/code/Makefile create mode 100644 RPI/scream/rtsp/code/cmake_install.cmake create mode 100644 RPI/scream/rtsp/code/rtsp.cpp create mode 100644 RPI/scream/rtsp/rtspOut.txt create mode 100644 RPI/scream/rtsp/test.txt create mode 100644 RPI/scream/scream_receiver/CMakeCache.txt create mode 100644 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake create mode 100644 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake create mode 100755 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin create mode 100755 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake create mode 100644 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out create mode 100644 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out create mode 100644 RPI/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/scream_receiver/CMakeFiles/CMakeOutput.log create mode 100644 RPI/scream/scream_receiver/CMakeFiles/Makefile.cmake create mode 100644 RPI/scream/scream_receiver/CMakeFiles/Makefile2 create mode 100644 RPI/scream/scream_receiver/CMakeFiles/TargetDirectories.txt create mode 100644 RPI/scream/scream_receiver/CMakeFiles/cmake.check_cache create mode 100755 RPI/scream/scream_receiver/CMakeFiles/feature_tests.bin create mode 100644 RPI/scream/scream_receiver/CMakeFiles/feature_tests.c create mode 100644 RPI/scream/scream_receiver/CMakeFiles/feature_tests.cxx create mode 100644 RPI/scream/scream_receiver/CMakeFiles/progress.marks create mode 100644 RPI/scream/scream_receiver/CMakeLists.txt create mode 100644 RPI/scream/scream_receiver/Makefile create mode 100755 RPI/scream/scream_receiver/bin/scream_receiver create mode 100644 RPI/scream/scream_receiver/cmake_install.cmake create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/progress.marks create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make create mode 100644 RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o create mode 100644 RPI/scream/scream_receiver/code/CMakeLists.txt create mode 100644 RPI/scream/scream_receiver/code/Makefile create mode 100644 RPI/scream/scream_receiver/code/ScreamRx.cpp create mode 100644 RPI/scream/scream_receiver/code/ScreamRx.h create mode 100644 RPI/scream/scream_receiver/code/ScreamTx.cpp create mode 100644 RPI/scream/scream_receiver/code/ScreamTx.h create mode 100644 RPI/scream/scream_receiver/code/cmake_install.cmake create mode 100644 RPI/scream/scream_receiver/code/scream_receiver.cpp create mode 100644 RPI/scream/scream_sender/CMakeCache.txt create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100644 RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out create mode 100644 RPI/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/scream_sender/CMakeFiles/CMakeOutput.log create mode 100644 RPI/scream/scream_sender/CMakeFiles/Makefile.cmake create mode 100644 RPI/scream/scream_sender/CMakeFiles/Makefile2 create mode 100644 RPI/scream/scream_sender/CMakeFiles/TargetDirectories.txt create mode 100644 RPI/scream/scream_sender/CMakeFiles/cmake.check_cache create mode 100644 RPI/scream/scream_sender/CMakeFiles/feature_tests.bin create mode 100644 RPI/scream/scream_sender/CMakeFiles/feature_tests.c create mode 100644 RPI/scream/scream_sender/CMakeFiles/feature_tests.cxx create mode 100644 RPI/scream/scream_sender/CMakeFiles/progress.marks create mode 100644 RPI/scream/scream_sender/CMakeLists.txt create mode 100644 RPI/scream/scream_sender/Makefile create mode 100755 RPI/scream/scream_sender/bin/scream_sender create mode 100644 RPI/scream/scream_sender/cmake_install.cmake create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/progress.marks create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make create mode 100644 RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o create mode 100644 RPI/scream/scream_sender/code/CMakeLists.txt create mode 100644 RPI/scream/scream_sender/code/Makefile create mode 100644 RPI/scream/scream_sender/code/RtpQueue.cpp create mode 100644 RPI/scream/scream_sender/code/RtpQueue.h create mode 100644 RPI/scream/scream_sender/code/ScreamRx.h create mode 100644 RPI/scream/scream_sender/code/ScreamTx.cpp create mode 100644 RPI/scream/scream_sender/code/ScreamTx.h create mode 100644 RPI/scream/scream_sender/code/cmake_install.cmake create mode 100644 RPI/scream/scream_sender/code/scream_sender.cpp create mode 100755 RPI/talk.sh diff --git a/RPI/lidar/relayer.py b/RPI/lidar/relayer.py new file mode 100644 index 0000000..04c4313 --- /dev/null +++ b/RPI/lidar/relayer.py @@ -0,0 +1,54 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.animation as animation +import math +import socket +import time + +LIDAR_IP = '10.180.65.30' #'169.254.13.125' +PLOTTER_IP = '10.9.0.2' #'169.254.13.125' +LIDAR_PORT = 2111 +PLOTTER_PORT = 2110 +BUFFER_SIZE = 10240 +MESSAGE = "\x02sRN LMDscandata\x03" + + + + +def main(): + + + plot_type = "blit" + + sp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sp.bind(('', PLOTTER_PORT)) + print 'listening for sender...' + sp.listen(1) + conn, addr = sp.accept() + print 'Connected by', addr + #conn.send("Hello") + + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((LIDAR_IP, LIDAR_PORT)) + + while True: + # check if update needed + state = conn.recv(2) + print(state) + if state == "go": + print("state was go") + # request lidar data + s.sendall(MESSAGE) + data = s.recv(BUFFER_SIZE) + #print data + + #time.sleep(0.1) + + # send lidar data + conn.sendall(data) + + s.close() + conn.close() + +main() + diff --git a/RPI/piMobile.sh b/RPI/piMobile.sh new file mode 100755 index 0000000..7fd5a76 --- /dev/null +++ b/RPI/piMobile.sh @@ -0,0 +1,63 @@ +#!/bin/bash +echo "hello!" + +echo $(pwd) +#./scream/rtsp/bin/rtsp 10.180.65.28 31111 &> rtspOut.txt + +echo "starting relayer" +( python robotvt17/python/permobil/relayerUDP.py ) & +P0=$! + +echo "setting up rtsp:s" +( ./scream/rtsp/bin/rtsp 10.180.65.26 31111 &> rtspOut1.txt ) & +P1=$! +sleep 3 +echo "one done" +( ./scream/rtsp/bin/rtsp 10.180.65.27 31112 &> rtspOut2.txt ) & +P2=$! +sleep 2 +echo "two done" +( ./scream/rtsp/bin/rtsp 10.180.65.28 31113 &> rtspOut3.txt ) & +P3=$! +sleep 4 +echo "three done" + +( ./scream/rtsp/bin/rtsp 10.180.65.29 31114 &> rtspOut4.txt ) & +P4=$! +sleep 5 + +#echo "waiting for rtsp clients to set up..." +#echo 0 +#sleep 1 +#echo 1 +#sleep 1 +#echo 2 +#sleep 1 +#echo 3 + + + +#echo "waiting for {$P1}" +#wait $P1 + +cat rtspOut1.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC1.txt +SSRC1=$(cat SSRC1.txt) +echo $SSRC1 + +cat rtspOut2.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC2.txt +SSRC2=$(cat SSRC2.txt) +echo $SSRC2 + +cat rtspOut3.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC3.txt +SSRC3=$(cat SSRC3.txt) +echo $SSRC3 + +cat rtspOut4.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC4.txt +SSRC4=$(cat SSRC4.txt) +echo $SSRC4 + +#./scream/scream_sender/bin/scream_sender YWRtaW46YWRtaW5hZG1pbjE= 1 10.19.0.3 31110 10.180.65.28 31111 {$SSRC} 1 +./scream/scream_sender/bin/scream_sender -scale 1.0 YWRtaW46YWRtaW5hZG1pbjE= 4 10.9.0.2 31110 10.180.65.28 31113 $SSRC3 1.0 10.180.65.27 31112 $SSRC2 0.2 10.180.65.26 31111 $SSRC1 0.1 10.180.65.29 31114 $SSRC4 0.1 &> screamSender.log +wait $P0 $P1 $P2 $P3 $P4 + +tail -n 35 rtspOut1.txt diff --git a/RPI/piMobile_new.sh b/RPI/piMobile_new.sh new file mode 100755 index 0000000..8ffb750 --- /dev/null +++ b/RPI/piMobile_new.sh @@ -0,0 +1,63 @@ +#!/bin/bash +echo "hello!" + +echo $(pwd) +#./scream/rtsp/bin/rtsp 10.180.65.28 31111 &> rtspOut.txt + +echo "starting relayer" +( python robotvt17/python/permobil/relayerUDP.py ) & +P0=$! + +echo "setting up rtsp:s" +( ./scream/rtsp/bin/rtsp 10.180.65.26 31111 &> rtspOut1.txt ) & +P1=$! +sleep 3 +echo "one done" +( ./scream/rtsp/bin/rtsp 10.180.65.27 31112 &> rtspOut2.txt ) & +P2=$! +sleep 2 +echo "two done" +( ./scream/rtsp/bin/rtsp 10.180.65.28 31113 &> rtspOut3.txt ) & +P3=$! +sleep 4 +echo "three done" + +( ./scream/rtsp/bin/rtsp 10.180.65.29 31114 &> rtspOut4.txt ) & +P4=$! +sleep 5 + +#echo "waiting for rtsp clients to set up..." +#echo 0 +#sleep 1 +#echo 1 +#sleep 1 +#echo 2 +#sleep 1 +#echo 3 + + + +#echo "waiting for {$P1}" +#wait $P1 + +cat rtspOut1.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC1.txt +SSRC1=$(cat SSRC1.txt) +echo $SSRC1 + +cat rtspOut2.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC2.txt +SSRC2=$(cat SSRC2.txt) +echo $SSRC2 + +cat rtspOut3.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC3.txt +SSRC3=$(cat SSRC3.txt) +echo $SSRC3 + +cat rtspOut4.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC4.txt +SSRC4=$(cat SSRC4.txt) +echo $SSRC4 + +#./scream/scream_sender/bin/scream_sender YWRtaW46YWRtaW5hZG1pbjE= 1 10.19.0.3 31110 10.180.65.28 31111 {$SSRC} 1 +./scream/scream_sender/bin/scream_sender -scale 1.0 YWRtaW46YWRtaW5hZG1pbjE= 4 10.9.0.2 31110 10.180.65.28 31113 $SSRC3 0.1 10.180.65.27 31112 $SSRC2 0.2 10.180.65.26 31111 $SSRC1 0.1 10.180.65.29 31114 $SSRC4 1.0 &> screamSender.log +wait $P0 $P1 $P2 $P3 $P4 + +tail -n 35 rtspOut1.txt diff --git a/RPI/piMobile_rust.sh b/RPI/piMobile_rust.sh new file mode 100755 index 0000000..3e38298 --- /dev/null +++ b/RPI/piMobile_rust.sh @@ -0,0 +1,63 @@ +#!/bin/bash +echo "hello!" + +echo $(pwd) +#./scream/rtsp/bin/rtsp 10.180.65.28 31111 &> rtspOut.txt + +#echo "starting relayer" +#( python robotvt17/python/permobil/relayerUDP.py ) & +#P0=$! + +echo "setting up rtsp:s" +( ./scream/rtsp/bin/rtsp 10.180.65.26 31111 &> rtspOut1.txt ) & +P1=$! +sleep 3 +echo "one done" +( ./scream/rtsp/bin/rtsp 10.180.65.27 31112 &> rtspOut2.txt ) & +P2=$! +sleep 2 +echo "two done" +( ./scream/rtsp/bin/rtsp 10.180.65.28 31113 &> rtspOut3.txt ) & +P3=$! +sleep 4 +echo "three done" + +( ./scream/rtsp/bin/rtsp 10.180.65.29 31114 &> rtspOut4.txt ) & +P4=$! +sleep 5 + +#echo "waiting for rtsp clients to set up..." +#echo 0 +#sleep 1 +#echo 1 +#sleep 1 +#echo 2 +#sleep 1 +#echo 3 + + + +#echo "waiting for {$P1}" +#wait $P1 + +cat rtspOut1.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC1.txt +SSRC1=$(cat SSRC1.txt) +echo $SSRC1 + +cat rtspOut2.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC2.txt +SSRC2=$(cat SSRC2.txt) +echo $SSRC2 + +cat rtspOut3.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC3.txt +SSRC3=$(cat SSRC3.txt) +echo $SSRC3 + +cat rtspOut4.txt | grep -o 'SSRC:[0-9A-Za-z]*' | awk -F : '{print $2}' &> SSRC4.txt +SSRC4=$(cat SSRC4.txt) +echo $SSRC4 + +#./scream/scream_sender/bin/scream_sender YWRtaW46YWRtaW5hZG1pbjE= 1 10.19.0.3 31110 10.180.65.28 31111 {$SSRC} 1 +./scream/scream_sender/bin/scream_sender -cwvmem 60 -scale 1.0 YWRtaW46YWRtaW5hZG1pbjE= 4 10.9.0.2 31110 10.180.65.28 31113 $SSRC3 0.2 10.180.65.27 31112 $SSRC2 0.2 10.180.65.26 31111 $SSRC1 0.2 10.180.65.29 31114 $SSRC4 1.0 &> screamSender.log +wait $P1 $P2 $P3 $P4 + +tail -n 35 rtspOut1.txt diff --git a/RPI/scream/rtsp/CMakeCache.txt b/RPI/scream/rtsp/CMakeCache.txt new file mode 100644 index 0000000..bb873f3 --- /dev/null +++ b/RPI/scream/rtsp/CMakeCache.txt @@ -0,0 +1,304 @@ +# This is the CMakeCache file. +# For build in directory: /home/pi/scream/rtsp +# It was generated by CMake: /usr/bin/cmake +# 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=/usr/bin/ar + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=scream + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//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 +scream_BINARY_DIR:STATIC=/home/pi/scream/rtsp + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/pi/scream/rtsp + + +######################## +# 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=/home/pi/scream/rtsp +//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=7 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//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_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 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//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=Unix Makefiles +//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=/home/pi/scream/rtsp +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-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_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7 +//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_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..ecea756 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "6.3.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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 "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "arm-linux-gnueabihf") + +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 "arm-linux-gnueabihf") +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_LINK_LIBRARIES "c") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/arm-linux-gnueabihf/6;/usr/lib/arm-linux-gnueabihf;/usr/lib;/lib/arm-linux-gnueabihf") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..71d1bc5 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake @@ -0,0 +1,69 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "6.3.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "arm-linux-gnueabihf") + +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 "arm-linux-gnueabihf") +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_LINK_LIBRARIES "stdc++;m;c") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/arm-linux-gnueabihf/6;/usr/lib/arm-linux-gnueabihf;/usr/lib;/lib/arm-linux-gnueabihf") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..b948d31e206cff8d2d6ced0aacbb5baed0c03b1c GIT binary patch literal 8296 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..08b8de6fe6b52730f24f209b753bad58aafc333a GIT binary patch literal 8324 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 GsRIBz0y*IT literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000..290ec68 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.9.41-v7+") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.9.41-v7+") +set(CMAKE_HOST_SYSTEM_PROCESSOR "armv7l") + + + +set(CMAKE_SYSTEM "Linux-4.9.41-v7+") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.9.41-v7+") +set(CMAKE_SYSTEM_PROCESSOR "armv7l") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..512e360 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,561 @@ +#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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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__) +# if defined(_MSC_VER) && !defined(__clang__) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#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 SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..18c7aae8c0677bb172647008e14f98199a7d3633 GIT binary patch literal 8308 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..a6e6bed --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,533 @@ +/* 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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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 "]"; + + + + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/RPI/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..ca9094d06eb6f679b81f7b4585de43f616f469b8 GIT binary patch literal 8452 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..3cc4bcd --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pi/scream/rtsp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pi/scream/rtsp") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/rtsp/CMakeFiles/CMakeOutput.log b/RPI/scream/rtsp/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..705cfcc --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/CMakeOutput.log @@ -0,0 +1,542 @@ +The system is: Linux - 4.9.41-v7+ - armv7l +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/pi/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/pi/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_4579c/fast" +/usr/bin/make -f CMakeFiles/cmTC_4579c.dir/build.make CMakeFiles/cmTC_4579c.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_4579c.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_4579c.dir/testCCompiler.c.o -c /home/pi/scream/rtsp/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_4579c +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_4579c.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_4579c.dir/testCCompiler.c.o -o cmTC_4579c -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3b836/fast" +/usr/bin/make -f CMakeFiles/cmTC_3b836.dir/build.make CMakeFiles/cmTC_3b836.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_3b836 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3b836.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -o cmTC_3b836 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper +Target: arm-linux-gnueabihf +Configured with: ../src/configure -v --with-pkgversion='Raspbian 6.3.0-18+rpi1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf +Thread model: posix +gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1) +COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/ +LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../:/lib/arm-linux-gnueabihf/:/lib/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3b836' '-rdynamic' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu' + /usr/lib/gcc/arm-linux-gnueabihf/6/collect2 -plugin /usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvFCU6U.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -export-dynamic -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu -m armelf_linux_eabi -o cmTC_3b836 /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/6 -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3b836' '-rdynamic' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu' +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_3b836/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_3b836.dir/build.make CMakeFiles/cmTC_3b836.dir/build] + ignore line: [make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_3b836] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3b836.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -o cmTC_3b836 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper] + ignore line: [Target: arm-linux-gnueabihf] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Raspbian 6.3.0-18+rpi1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../:/lib/arm-linux-gnueabihf/:/lib/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_3b836' '-rdynamic' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu'] + link line: [ /usr/lib/gcc/arm-linux-gnueabihf/6/collect2 -plugin /usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvFCU6U.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -export-dynamic -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu -m armelf_linux_eabi -o cmTC_3b836 /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/6 -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o] + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccvFCU6U.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib/ld-linux-armhf.so.3] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-o] ==> ignore + arg [cmTC_3b836] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6] + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] + arg [-L/lib/arm-linux-gnueabihf] ==> dir [/lib/arm-linux-gnueabihf] + arg [-L/usr/lib/arm-linux-gnueabihf] ==> dir [/usr/lib/arm-linux-gnueabihf] + arg [CMakeFiles/cmTC_3b836.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6] ==> [/usr/lib/gcc/arm-linux-gnueabihf/6] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] ==> [/usr/lib/arm-linux-gnueabihf] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] ==> [/usr/lib] + collapse library dir [/lib/arm-linux-gnueabihf] ==> [/lib/arm-linux-gnueabihf] + collapse library dir [/usr/lib/arm-linux-gnueabihf] ==> [/usr/lib/arm-linux-gnueabihf] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/arm-linux-gnueabihf/6;/usr/lib/arm-linux-gnueabihf;/usr/lib;/lib/arm-linux-gnueabihf] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_a37b0/fast" +/usr/bin/make -f CMakeFiles/cmTC_a37b0.dir/build.make CMakeFiles/cmTC_a37b0.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_a37b0.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_a37b0.dir/feature_tests.c.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_a37b0 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a37b0.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_a37b0.dir/feature_tests.c.o -o cmTC_a37b0 -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c3884/fast" +/usr/bin/make -f CMakeFiles/cmTC_c3884.dir/build.make CMakeFiles/cmTC_c3884.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_c3884.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_c3884.dir/feature_tests.c.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_c3884 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c3884.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_c3884.dir/feature_tests.c.o -o cmTC_c3884 -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_420da/fast" +/usr/bin/make -f CMakeFiles/cmTC_420da.dir/build.make CMakeFiles/cmTC_420da.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_420da.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_420da.dir/feature_tests.c.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_420da +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_420da.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_420da.dir/feature_tests.c.o -o cmTC_420da -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_83810/fast" +/usr/bin/make -f CMakeFiles/cmTC_83810.dir/build.make CMakeFiles/cmTC_83810.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_83810.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_83810.dir/testCXXCompiler.cxx.o -c /home/pi/scream/rtsp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_83810 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_83810.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_83810.dir/testCXXCompiler.cxx.o -o cmTC_83810 -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_bd06d/fast" +/usr/bin/make -f CMakeFiles/cmTC_bd06d.dir/build.make CMakeFiles/cmTC_bd06d.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_bd06d +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd06d.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_bd06d -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper +Target: arm-linux-gnueabihf +Configured with: ../src/configure -v --with-pkgversion='Raspbian 6.3.0-18+rpi1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf +Thread model: posix +gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1) +COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/ +LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../:/lib/arm-linux-gnueabihf/:/lib/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd06d' '-rdynamic' '-shared-libgcc' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu' + /usr/lib/gcc/arm-linux-gnueabihf/6/collect2 -plugin /usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce8fbFf.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -export-dynamic -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu -m armelf_linux_eabi -o cmTC_bd06d /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/6 -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd06d' '-rdynamic' '-shared-libgcc' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu' +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_bd06d/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_bd06d.dir/build.make CMakeFiles/cmTC_bd06d.dir/build] + ignore line: [make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_bd06d] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bd06d.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_bd06d -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper] + ignore line: [Target: arm-linux-gnueabihf] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Raspbian 6.3.0-18+rpi1' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-armhf/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-armhf --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-armhf --with-arch-directory=arm --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv6 --with-fpu=vfp --with-float=hard --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/arm-linux-gnueabihf/6/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/:/usr/lib/gcc/arm-linux-gnueabihf/6/../../../:/lib/arm-linux-gnueabihf/:/lib/:/usr/lib/arm-linux-gnueabihf/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_bd06d' '-rdynamic' '-shared-libgcc' '-march=armv6' '-mfloat-abi=hard' '-mfpu=vfp' '-mtls-dialect=gnu'] + link line: [ /usr/lib/gcc/arm-linux-gnueabihf/6/collect2 -plugin /usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce8fbFf.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -export-dynamic -dynamic-linker /lib/ld-linux-armhf.so.3 -X --hash-style=gnu -m armelf_linux_eabi -o cmTC_bd06d /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o /usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o -L/usr/lib/gcc/arm-linux-gnueabihf/6 -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf -L/usr/lib/gcc/arm-linux-gnueabihf/6/../../.. -L/lib/arm-linux-gnueabihf -L/usr/lib/arm-linux-gnueabihf CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o] + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/arm-linux-gnueabihf/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cce8fbFf.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib/ld-linux-armhf.so.3] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-o] ==> ignore + arg [cmTC_bd06d] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crt1.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crti.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6] + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] + arg [-L/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] ==> dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] + arg [-L/lib/arm-linux-gnueabihf] ==> dir [/lib/arm-linux-gnueabihf] + arg [-L/usr/lib/arm-linux-gnueabihf] ==> dir [/usr/lib/arm-linux-gnueabihf] + arg [CMakeFiles/cmTC_bd06d.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/crtend.o] ==> ignore + arg [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/crtn.o] ==> ignore + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6] ==> [/usr/lib/gcc/arm-linux-gnueabihf/6] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf] ==> [/usr/lib/arm-linux-gnueabihf] + collapse library dir [/usr/lib/gcc/arm-linux-gnueabihf/6/../../..] ==> [/usr/lib] + collapse library dir [/lib/arm-linux-gnueabihf] ==> [/lib/arm-linux-gnueabihf] + collapse library dir [/usr/lib/arm-linux-gnueabihf] ==> [/usr/lib/arm-linux-gnueabihf] + implicit libs: [stdc++;m;c] + implicit dirs: [/usr/lib/gcc/arm-linux-gnueabihf/6;/usr/lib/arm-linux-gnueabihf;/usr/lib;/lib/arm-linux-gnueabihf] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_20eff/fast" +/usr/bin/make -f CMakeFiles/cmTC_20eff.dir/build.make CMakeFiles/cmTC_20eff.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_20eff.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_20eff.dir/feature_tests.cxx.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_20eff +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_20eff.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_20eff.dir/feature_tests.cxx.o -o cmTC_20eff -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_e00cf/fast" +/usr/bin/make -f CMakeFiles/cmTC_e00cf.dir/build.make CMakeFiles/cmTC_e00cf.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_e00cf.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_e00cf.dir/feature_tests.cxx.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_e00cf +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e00cf.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_e00cf.dir/feature_tests.cxx.o -o cmTC_e00cf -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/pi/scream/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_18ac0/fast" +/usr/bin/make -f CMakeFiles/cmTC_18ac0.dir/build.make CMakeFiles/cmTC_18ac0.dir/build +make[1]: Entering directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_18ac0.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_18ac0.dir/feature_tests.cxx.o -c /home/pi/scream/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_18ac0 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_18ac0.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_18ac0.dir/feature_tests.cxx.o -o cmTC_18ac0 -rdynamic +make[1]: Leaving directory '/home/pi/scream/rtsp/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/RPI/scream/rtsp/CMakeFiles/Makefile.cmake b/RPI/scream/rtsp/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..dab302d --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/Makefile.cmake @@ -0,0 +1,47 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.7.2/CMakeCCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.7.2/CMakeSystem.cmake" + "CMakeLists.txt" + "code/CMakeLists.txt" + "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + "code/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "code/CMakeFiles/rtsp.dir/DependInfo.cmake" + ) diff --git a/RPI/scream/rtsp/CMakeFiles/Makefile2 b/RPI/scream/rtsp/CMakeFiles/Makefile2 new file mode 100644 index 0000000..b383e4c --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/Makefile2 @@ -0,0 +1,126 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/rtsp + +#============================================================================= +# Directory level rules for directory code + +# Convenience name for "all" pass in the directory. +code/all: code/CMakeFiles/rtsp.dir/all + +.PHONY : code/all + +# Convenience name for "clean" pass in the directory. +code/clean: code/CMakeFiles/rtsp.dir/clean + +.PHONY : code/clean + +# Convenience name for "preinstall" pass in the directory. +code/preinstall: + +.PHONY : code/preinstall + +#============================================================================= +# Target rules for target code/CMakeFiles/rtsp.dir + +# All Build rule for target. +code/CMakeFiles/rtsp.dir/all: + $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/depend + $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/scream/rtsp/CMakeFiles --progress-num=1,2 "Built target rtsp" +.PHONY : code/CMakeFiles/rtsp.dir/all + +# Include target in all. +all: code/CMakeFiles/rtsp.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +code/CMakeFiles/rtsp.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/rtsp.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles 0 +.PHONY : code/CMakeFiles/rtsp.dir/rule + +# Convenience name for target. +rtsp: code/CMakeFiles/rtsp.dir/rule + +.PHONY : rtsp + +# clean rule for target. +code/CMakeFiles/rtsp.dir/clean: + $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/clean +.PHONY : code/CMakeFiles/rtsp.dir/clean + +# clean rule for target. +clean: code/CMakeFiles/rtsp.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/rtsp/CMakeFiles/TargetDirectories.txt b/RPI/scream/rtsp/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..11d3adf --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/pi/scream/rtsp/CMakeFiles/rebuild_cache.dir +/home/pi/scream/rtsp/CMakeFiles/edit_cache.dir +/home/pi/scream/rtsp/code/CMakeFiles/rebuild_cache.dir +/home/pi/scream/rtsp/code/CMakeFiles/edit_cache.dir +/home/pi/scream/rtsp/code/CMakeFiles/rtsp.dir diff --git a/RPI/scream/rtsp/CMakeFiles/cmake.check_cache b/RPI/scream/rtsp/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/RPI/scream/rtsp/CMakeFiles/feature_tests.bin b/RPI/scream/rtsp/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..84991f587d37cb14867348f1a90ee5ebb0aecbbf GIT binary patch literal 12376 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 H2dM)9>jc)T literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/CMakeFiles/feature_tests.c b/RPI/scream/rtsp/CMakeFiles/feature_tests.c new file mode 100644 index 0000000..6590dde --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/rtsp/CMakeFiles/feature_tests.cxx b/RPI/scream/rtsp/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000..b93418c --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/rtsp/CMakeFiles/progress.marks b/RPI/scream/rtsp/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/RPI/scream/rtsp/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/RPI/scream/rtsp/CMakeLists.txt b/RPI/scream/rtsp/CMakeLists.txt new file mode 100644 index 0000000..56e5847 --- /dev/null +++ b/RPI/scream/rtsp/CMakeLists.txt @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 2.6) + +PROJECT( scream ) + +message("Source Dir:" ${scream_SOURCE_DIR}) + +SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin) +SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib) +SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin) + +SET(scream_BIN ${scream_SOURCE_DIR}/bin) + +message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR}) + +IF(UNIX) +add_definitions(-std=c++0x) +ENDIF(UNIX) + +IF(WIN32) +IF(MSVC12) +message("Detected MSVC12 compiler") +set(MSVC_VER VC12) +ELSEIF(MSVC11) +message("Detected MSVC11 compiler") +set(MSVC_VER VC11) +ELSEIF(MSVC10) +message("Detected MSVC10 compiler") +set(MSVC_VER VC10) +ELSEIF(MSVC14) +message("Detected MSVC14 compiler") +set(MSVC_VER VC14) +ELSE(MSVC12) +message("WARNING: Unknown/unsupported MSVC version") +ENDIF(MSVC12) +ENDIF(WIN32) + +if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 64bit + message("Detected 64-bit build - compiling with -fPIC") + SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread") +else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 32 bit +message("Detected 32-bit build") +SET(CMAKE_CXX_FLAGS "-fpermissive -pthread") +endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + +#SET(LDFLAGS "-lrt -pthread -lpthread -lncurses") + +SET(screamIncludes +${scream_SOURCE_DIR} +${scream_SOURCE_DIR}/code +) + +message("screamIncludes directories:" ${screamIncludes}) + +# lib directories +IF(WIN32) +SET(screamLink +${scream_SOURCE_DIR}/../lib +) +ELSEIF(UNIX) +SET(screamLink +${scream_SOURCE_DIR}/../lib +/usr/local/lib +/usr/lib +) +ENDIF(WIN32) + +SET(LibDir +${scream_SOURCE_DIR}/../lib +) + + +set(LIBS ${LIBS} -lncurses) + +message("LibDir directories:" ${LibDir}) + +# Include directories +INCLUDE_DIRECTORIES( +${scream_SOURCE_DIR}/../include +) + +ADD_SUBDIRECTORY( code) diff --git a/RPI/scream/rtsp/Makefile b/RPI/scream/rtsp/Makefile new file mode 100644 index 0000000..babea5d --- /dev/null +++ b/RPI/scream/rtsp/Makefile @@ -0,0 +1,148 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/rtsp + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles /home/pi/scream/rtsp/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named rtsp + +# Build rule for target. +rtsp: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 rtsp +.PHONY : rtsp + +# fast build rule for target. +rtsp/fast: + $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build +.PHONY : rtsp/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... rtsp" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/rtsp/SSRC.txt b/RPI/scream/rtsp/SSRC.txt new file mode 100644 index 0000000..f8c595e --- /dev/null +++ b/RPI/scream/rtsp/SSRC.txt @@ -0,0 +1 @@ +e9aa6b02 diff --git a/RPI/scream/rtsp/bin/rtsp b/RPI/scream/rtsp/bin/rtsp new file mode 100755 index 0000000000000000000000000000000000000000..3736f0aceb9a195f2a682700b275f44458af6c2e GIT binary patch literal 18880 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/cmake_install.cmake b/RPI/scream/rtsp/cmake_install.cmake new file mode 100644 index 0000000..e21cf61 --- /dev/null +++ b/RPI/scream/rtsp/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/pi/scream/rtsp + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for each subdirectory. + include("/home/pi/scream/rtsp/code/cmake_install.cmake") + +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/pi/scream/rtsp/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/RPI/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..3cc4bcd --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pi/scream/rtsp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pi/scream/rtsp") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/rtsp/code/CMakeFiles/progress.marks b/RPI/scream/rtsp/code/CMakeFiles/progress.marks new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache new file mode 100644 index 0000000..b0e7f84 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache @@ -0,0 +1,10 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/pi/scream/rtsp/code/rtsp.cpp + diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake new file mode 100644 index 0000000..b264771 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake @@ -0,0 +1,23 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/pi/scream/rtsp/code/rtsp.cpp" "/home/pi/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + "." + "code" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make new file mode 100644 index 0000000..b06a806 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/rtsp + +# Include any dependencies generated for this target. +include code/CMakeFiles/rtsp.dir/depend.make + +# Include the progress variables for this target. +include code/CMakeFiles/rtsp.dir/progress.make + +# Include the compile flags for this target's objects. +include code/CMakeFiles/rtsp.dir/flags.make + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/CMakeFiles/rtsp.dir/flags.make +code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/rtsp.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pi/scream/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/rtsp.dir/rtsp.cpp.o" + cd /home/pi/scream/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/rtsp.dir/rtsp.cpp.o -c /home/pi/scream/rtsp/code/rtsp.cpp + +code/CMakeFiles/rtsp.dir/rtsp.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/rtsp.dir/rtsp.cpp.i" + cd /home/pi/scream/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pi/scream/rtsp/code/rtsp.cpp > CMakeFiles/rtsp.dir/rtsp.cpp.i + +code/CMakeFiles/rtsp.dir/rtsp.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/rtsp.dir/rtsp.cpp.s" + cd /home/pi/scream/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pi/scream/rtsp/code/rtsp.cpp -o CMakeFiles/rtsp.dir/rtsp.cpp.s + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires: + +.PHONY : code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides: code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires + $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides.build +.PHONY : code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o.provides.build: code/CMakeFiles/rtsp.dir/rtsp.cpp.o + + +# Object files for target rtsp +rtsp_OBJECTS = \ +"CMakeFiles/rtsp.dir/rtsp.cpp.o" + +# External object files for target rtsp +rtsp_EXTERNAL_OBJECTS = + +bin/rtsp: code/CMakeFiles/rtsp.dir/rtsp.cpp.o +bin/rtsp: code/CMakeFiles/rtsp.dir/build.make +bin/rtsp: code/CMakeFiles/rtsp.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pi/scream/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/rtsp" + cd /home/pi/scream/rtsp/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/rtsp.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +code/CMakeFiles/rtsp.dir/build: bin/rtsp + +.PHONY : code/CMakeFiles/rtsp.dir/build + +code/CMakeFiles/rtsp.dir/requires: code/CMakeFiles/rtsp.dir/rtsp.cpp.o.requires + +.PHONY : code/CMakeFiles/rtsp.dir/requires + +code/CMakeFiles/rtsp.dir/clean: + cd /home/pi/scream/rtsp/code && $(CMAKE_COMMAND) -P CMakeFiles/rtsp.dir/cmake_clean.cmake +.PHONY : code/CMakeFiles/rtsp.dir/clean + +code/CMakeFiles/rtsp.dir/depend: + cd /home/pi/scream/rtsp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pi/scream/rtsp /home/pi/scream/rtsp/code /home/pi/scream/rtsp /home/pi/scream/rtsp/code /home/pi/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/rtsp.dir/depend + diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake new file mode 100644 index 0000000..10971da --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/rtsp.dir/rtsp.cpp.o" + "../bin/rtsp.pdb" + "../bin/rtsp" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/rtsp.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal new file mode 100644 index 0000000..04b8392 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o + /home/pi/scream/rtsp/code/rtsp.cpp diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make new file mode 100644 index 0000000..b001b20 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/rtsp.dir/rtsp.cpp.o: code/rtsp.cpp + diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make new file mode 100644 index 0000000..128f254 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fpermissive -pthread -std=c++0x + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/pi/scream/rtsp/../include -I/home/pi/scream/rtsp -I/home/pi/scream/rtsp/code + diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt new file mode 100644 index 0000000..b4e8e7e --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fpermissive -pthread CMakeFiles/rtsp.dir/rtsp.cpp.o -o ../bin/rtsp -L/home/pi/scream/rtsp/../lib -L/usr/local/lib -rdynamic diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make new file mode 100644 index 0000000..abadeb0 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o b/RPI/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0fff40bdcf090891af4e2fd64e43e409e66fd792 GIT binary patch literal 8584 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 O<QN$GK@2E{sRIB*pGT_z literal 0 HcmV?d00001 diff --git a/RPI/scream/rtsp/code/CMakeLists.txt b/RPI/scream/rtsp/code/CMakeLists.txt new file mode 100644 index 0000000..e799387 --- /dev/null +++ b/RPI/scream/rtsp/code/CMakeLists.txt @@ -0,0 +1,28 @@ +# source files +SET(SRCS +rtsp.cpp +) + +SET(HEADERS +) + +SET(SRC_1 +${SRCS} +rtsp.cpp +) + +INCLUDE_DIRECTORIES( +${screamIncludes} +) + +LINK_DIRECTORIES( +${screamLink} +) + +ADD_EXECUTABLE(rtsp ${SRC_1} ${HEADERS}) + + +TARGET_LINK_LIBRARIES ( +rtsp +${screamLibs} +) diff --git a/RPI/scream/rtsp/code/Makefile b/RPI/scream/rtsp/code/Makefile new file mode 100644 index 0000000..0930198 --- /dev/null +++ b/RPI/scream/rtsp/code/Makefile @@ -0,0 +1,180 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/rtsp + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/pi/scream/rtsp && $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles /home/pi/scream/rtsp/code/CMakeFiles/progress.marks + cd /home/pi/scream/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/rtsp/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pi/scream/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pi/scream/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pi/scream/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pi/scream/rtsp && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +code/CMakeFiles/rtsp.dir/rule: + cd /home/pi/scream/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/rtsp.dir/rule +.PHONY : code/CMakeFiles/rtsp.dir/rule + +# Convenience name for target. +rtsp: code/CMakeFiles/rtsp.dir/rule + +.PHONY : rtsp + +# fast build rule for target. +rtsp/fast: + cd /home/pi/scream/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/build +.PHONY : rtsp/fast + +rtsp.o: rtsp.cpp.o + +.PHONY : rtsp.o + +# target to build an object file +rtsp.cpp.o: + cd /home/pi/scream/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.o +.PHONY : rtsp.cpp.o + +rtsp.i: rtsp.cpp.i + +.PHONY : rtsp.i + +# target to preprocess a source file +rtsp.cpp.i: + cd /home/pi/scream/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.i +.PHONY : rtsp.cpp.i + +rtsp.s: rtsp.cpp.s + +.PHONY : rtsp.s + +# target to generate assembly for a file +rtsp.cpp.s: + cd /home/pi/scream/rtsp && $(MAKE) -f code/CMakeFiles/rtsp.dir/build.make code/CMakeFiles/rtsp.dir/rtsp.cpp.s +.PHONY : rtsp.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... rtsp" + @echo "... rtsp.o" + @echo "... rtsp.i" + @echo "... rtsp.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pi/scream/rtsp && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/rtsp/code/cmake_install.cmake b/RPI/scream/rtsp/code/cmake_install.cmake new file mode 100644 index 0000000..64fefd3 --- /dev/null +++ b/RPI/scream/rtsp/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/pi/scream/rtsp/code + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + diff --git a/RPI/scream/rtsp/code/rtsp.cpp b/RPI/scream/rtsp/code/rtsp.cpp new file mode 100644 index 0000000..cf89e86 --- /dev/null +++ b/RPI/scream/rtsp/code/rtsp.cpp @@ -0,0 +1 @@ +// Scream sender side wrapper #include "sys/socket.h" #include "sys/types.h" #include "netinet/in.h" #include <string.h> /* needed for memset */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/time.h> #include <iostream> #include <pthread.h> #include <fcntl.h> #include <unistd.h> #include <sys/time.h> #include <signal.h> struct itimerval timer; struct sigaction sa; using namespace std; #define BUF_SIZE 10000 char buf[BUF_SIZE]; uint32_t ssrc = 0; // We don't bother about ssrc in this implementation, it is only one stream char *ENCODER_IP = "192.168.0.10"; struct sockaddr_in http_addr; int http_sock = 0; /* * Create socket to Video encoder * for rate commands etc. */ int create_tcp_socket() { int sock; if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){ cerr << "Can't create TCP socket" << endl; exit(1); } return sock; } int setup_rtsp() { http_addr.sin_family = AF_INET; http_addr.sin_addr.s_addr = htonl(INADDR_ANY); inet_aton(ENCODER_IP, (in_addr*)&http_addr.sin_addr.s_addr); http_addr.sin_port = htons(554); if (connect(http_sock, (struct sockaddr *)&http_addr, sizeof(struct sockaddr)) < 0){ cerr << "Could not connect to Video coder HTTP server" << endl; exit(1); } } bool verbose = true; const void sendRtspCommand() { int sent = 0; int tmpres = 0; if (verbose) { cerr << "--------------------------------------------" << endl; cerr << "Send RTSP : " << endl << buf << endl; } bool errSend = false; /* * Send HTTP GET */ while (sent < strlen(buf)) { tmpres = send(http_sock, buf + sent, strlen(buf) - sent, 0); if (tmpres == -1){ cerr << "Can't send RTSP" << endl; errSend = true; } sent += tmpres; } if (true && !errSend) { memset(buf, 0, sizeof(buf)); tmpres = recv(http_sock, buf, BUF_SIZE, 0); if (verbose) { cerr << "response: " << endl << buf << endl; } } if (strstr(buf,"Bad Request")) { close(http_sock); cerr << "Dishonorable discharge due to malformed request" << endl; exit(0); } } long getTimeInUs(){ struct timeval tp; gettimeofday(&tp, NULL); long us = tp.tv_sec * 1000000 + tp.tv_usec; return us; } // ROberts ugly hacks #include <signal.h> // our new library volatile sig_atomic_t flag = 0; void my_function(int sig){ // can be called asynchronously flag = 1; // set flag } // this fiunction below is badly hijacked by robert to support ctrl-c bool terminateRtsp = false; const void *keyboardThread(void *arg) { cerr << "RTSP streaming started, press ctrl+c to stop" << endl; // cin.ignore(); signal(SIGINT, my_function); // Which-Signal |-- which user defined function registered while(1){ if(flag){ // my action when signal set it 1 printf("\n Signal caught!\n"); printf("\n default action it not termination!\n"); flag = 0; break; } usleep(10000); } //return 0; terminateRtsp = true; } //#include <curses.h> char session[100]; int iter = 0; int INCOMING_RTP_PORT = 30120; int main(int argc, char* argv[]) { int ix = 1; int cSeq = 1; uint64_t t0 = getTimeInUs(); /* * Parse command line */ if (argc <= 1) { cerr << "Usage : " << endl << " > rtsp encoder_ip client_rtp_port" << endl; exit(-1); } ENCODER_IP = argv[ix];ix++; INCOMING_RTP_PORT = atoi(argv[ix]);ix++; http_sock = create_tcp_socket(); setup_rtsp(); sprintf(buf, "OPTIONS rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\n\r\n",ENCODER_IP,cSeq++); sendRtspCommand(); sprintf(buf, "DESCRIBE rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nAccept: application/sdp\r\n\r\n",ENCODER_IP,cSeq++); sendRtspCommand(); sprintf(buf, "SETUP rtsp://%s/MediaInput/h264/trackID=1 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nTransport: RTP/AVP;unicast;client_port=%d-%d\r\n\r\n",ENCODER_IP,cSeq++,INCOMING_RTP_PORT,INCOMING_RTP_PORT+1); sendRtspCommand(); char ssrc[100]; if (strlen(buf) > 0) { char *sp = strstr(buf,"ssrc="); if (sp) { strcpy(ssrc,sp+5); } sp = strstr(buf,"Session:"); sp = strtok(sp," ;\r\n"); sp = strtok(0," ;\r\n"); strcpy(session,sp); } sprintf(buf, "PLAY rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\nRange: npt=0.000-\r\n\r\n",ENCODER_IP,cSeq++,session); sendRtspCommand(); sprintf(buf, "GET_PARAMETER rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session); sendRtspCommand(); pthread_t keyboard_thread; /* Create keyboard thread */ pthread_create(&keyboard_thread,NULL,keyboardThread,"Keybaord thread..."); verbose = false; cerr << "Streaming started. IP:" << ENCODER_IP << " port:" << INCOMING_RTP_PORT << " SSRC:" << ssrc << endl; while (!terminateRtsp) { //if (getch() != 0) { // exit = true; //} sleep(1); if (getTimeInUs()-t0 > 1000000) { iter++; if (iter % 30 == 0) { cerr << "Send GET_PARAMETER keep-alive message to keep RTSP session running.\n Press ENTER to stop RTSP" << endl; sprintf(buf, "GET_PARAMETER rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session); sendRtspCommand(); } t0 = getTimeInUs(); } } verbose = true; sprintf(buf, "TEARDOWN rtsp://%s/MediaInput/h264 RTSP/1.0\r\nCSeq: %d\r\nUser-Agent: Dummy SCReAM RTSP client\r\nSession: %s\r\n\r\n",ENCODER_IP,cSeq++,session); sendRtspCommand(); close(http_sock); } \ No newline at end of file diff --git a/RPI/scream/rtsp/rtspOut.txt b/RPI/scream/rtsp/rtspOut.txt new file mode 100644 index 0000000..ab539a0 --- /dev/null +++ b/RPI/scream/rtsp/rtspOut.txt @@ -0,0 +1,105 @@ +-------------------------------------------- +Send RTSP : +OPTIONS rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 1 +User-Agent: Dummy SCReAM RTSP client + + +response: +RTSP/1.0 200 OK +CSeq: 1 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:37:23 GMT +Public: OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, GET_PARAMETER, TEARDOWN, SET_PARAMETER + + +-------------------------------------------- +Send RTSP : +DESCRIBE rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 2 +User-Agent: Dummy SCReAM RTSP client +Accept: application/sdp + + +response: +RTSP/1.0 200 OK +CSeq: 2 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:37:23 GMT +Content-Base: rtsp://10.180.65.28/MediaInput/h264/ +Content-Type: application/sdp +Content-Length: 555 + +v=0 +o=- 1 1 IN IP4 10.180.65.28 +s=Media Presentation +e=NONE +c=IN IP4 0.0.0.0 +b=AS:256 +t=0 0 +a=control:* +a=range:npt=now- +m=video 0 RTP/AVP 98 +b=AS:256 +a=framerate:30.0 +a=control:trackID=1 +a=rtpmap:98 H264/90000 +a=fmtp:98 packetization-mode=1; profile-level-id=640028; sprop-parameter-sets=Z2QAKK2UREYjgkwJEDdQyKxXC2B4g+lCkOYJODDA3AP+EAQQUYLOBqAf8oUhzBJwYYG4B/wgCCCjBZwNQD/lJJk6rJtyJLm7bYgggREwgMGDRo0MAsAgQIIEAHwPwIIEAHwD/oRI0Tk8lXJW5KVuaIxMQCAEEEIIQIAEDAggfgH/2AoA8/4CoQAAC7gAAV+Q6MAA/NAAFh8h/+NGAAfmgACw+Q//Cg==,aO4xkhk= +a=h264-esid:201 + +-------------------------------------------- +Send RTSP : +SETUP rtsp://10.180.65.28/MediaInput/h264/trackID=1 RTSP/1.0 +CSeq: 3 +User-Agent: Dummy SCReAM RTSP client +Transport: RTP/AVP;unicast;client_port=31111-31112 + + +response: +RTSP/1.0 200 OK +CSeq: 3 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:37:24 GMT +Session: 275215953682947025671726956429;timeout=120 +Transport: RTP/AVP/UDP;unicast;client_port=31111-31112;server_port=59010-59011;ssrc=e9aa6b02 + + +-------------------------------------------- +Send RTSP : +PLAY rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 4 +User-Agent: Dummy SCReAM RTSP client +Session: 275215953682947025671726956429 +Range: npt=0.000- + + +response: +RTSP/1.0 200 OK +CSeq: 4 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:37:24 GMT +Session: 275215953682947025671726956429 +Range: clock=20171003T093724Z- +RTP-Info: url=trackID=1;seq=65164;rtptime=19485048 + + +-------------------------------------------- +Send RTSP : +GET_PARAMETER rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 5 +User-Agent: Dummy SCReAM RTSP client +Session: 275215953682947025671726956429 + + +response: +RTSP/1.0 200 OK +CSeq: 5 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:37:24 GMT +Session: 275215953682947025671726956429 + + +Streaming started. IP:10.180.65.28RTSP streaming started, press ENTER to stop + port:31111 SSRC:e9aa6b02 + + diff --git a/RPI/scream/rtsp/test.txt b/RPI/scream/rtsp/test.txt new file mode 100644 index 0000000..9a003b5 --- /dev/null +++ b/RPI/scream/rtsp/test.txt @@ -0,0 +1,231 @@ +-------------------------------------------- +Send RTSP : +OPTIONS rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 1 +User-Agent: Dummy SCReAM RTSP client + + +response: +RTSP/1.0 200 OK +CSeq: 1 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:20:15 GMT +Public: OPTIONS, DESCRIBE, SETUP, PLAY, PAUSE, GET_PARAMETER, TEARDOWN, SET_PARAMETER + + +-------------------------------------------- +Send RTSP : +DESCRIBE rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 2 +User-Agent: Dummy SCReAM RTSP client +Accept: application/sdp + + +response: +RTSP/1.0 200 OK +CSeq: 2 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:20:15 GMT +Content-Base: rtsp://10.180.65.28/MediaInput/h264/ +Content-Type: application/sdp +Content-Length: 555 + +v=0 +o=- 1 1 IN IP4 10.180.65.28 +s=Media Presentation +e=NONE +c=IN IP4 0.0.0.0 +b=AS:256 +t=0 0 +a=control:* +a=range:npt=now- +m=video 0 RTP/AVP 98 +b=AS:256 +a=framerate:30.0 +a=control:trackID=1 +a=rtpmap:98 H264/90000 +a=fmtp:98 packetization-mode=1; profile-level-id=640028; sprop-parameter-sets=Z2QAKK2UREYjgkwJEDdQyKxXC2B4g+lCkOYJODDA3AP+EAQQUYLOBqAf8oUhzBJwYYG4B/wgCCCjBZwNQD/lJJk6rJtyJLm7bYgggREwgMGDRo0MAsAgQIIEAHwPwIIEAHwD/oRI0Tk8lXJW5KVuaIxMQCAEEEIIQIAEDAggfgH/2AoA8/4CoQAAC7gAAV+Q6MAA/NAAFh8h/+NGAAfmgACw+Q//Cg==,aO4xkhk= +a=h264-esid:201 + +-------------------------------------------- +Send RTSP : +SETUP rtsp://10.180.65.28/MediaInput/h264/trackID=1 RTSP/1.0 +CSeq: 3 +User-Agent: Dummy SCReAM RTSP client +Transport: RTP/AVP;unicast;client_port=31111-31112 + + +response: +RTSP/1.0 200 OK +CSeq: 3 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:20:15 GMT +Session: 5011025200592044897763196751392;timeout=120 +Transport: RTP/AVP/UDP;unicast;client_port=31111-31112;server_port=59006-59007;ssrc=5a72e81d + + +-------------------------------------------- +Send RTSP : +PLAY rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 4 +User-Agent: Dummy SCReAM RTSP client +Session: 5011025200592044897763196751392 +Range: npt=0.000- + + +response: +RTSP/1.0 200 OK +CSeq: 4 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:20:15 GMT +Session: 5011025200592044897763196751392 +Range: clock=20171003T092015Z- +RTP-Info: url=trackID=1;seq=10378;rtptime=150517560 + + +-------------------------------------------- +Send RTSP : +GET_PARAMETER rtsp://10.180.65.28/MediaInput/h264 RTSP/1.0 +CSeq: 5 +User-Agent: Dummy SCReAM RTSP client +Session: 5011025200592044897763196751392 + + +response: +RTSP/1.0 200 OK +CSeq: 5 +Connection: Keep-Alive +Date: Tue, 03 Oct 2017 09:20:15 GMT +Session: 5011025200592044897763196751392 + + +Streaming started. IP:10.180.65.28RTSP streaming started, press ENTER to stop + port:31111 SSRC:5a72e81d + + +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP +Send GET_PARAMETER keep-alive message to keep RTSP session running. + Press ENTER to stop RTSP diff --git a/RPI/scream/scream_receiver/CMakeCache.txt b/RPI/scream/scream_receiver/CMakeCache.txt new file mode 100644 index 0000000..eaf5d48 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeCache.txt @@ -0,0 +1,255 @@ +# This is the CMakeCache file. +# For build in directory: /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver +# It was generated by CMake: /usr/bin/cmake +# 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 +######################## + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=scream + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info 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 +scream_BINARY_DIR:STATIC=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver +//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=7 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//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_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_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=Unix Makefiles +//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=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-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 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7 +//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 + diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..d628b11 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "6.3.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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 "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +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_LINK_LIBRARIES "c") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..0018983 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake @@ -0,0 +1,69 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "6.3.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +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 "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +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_LINK_LIBRARIES "stdc++;m;c") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55 GIT binary patch literal 8472 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 P`X<zZe=q?kjjkU6ISZ}t literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000..ee8af32 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.10.0-35-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-35-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.10.0-35-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.10.0-35-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..512e360 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,561 @@ +#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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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__) +# if defined(_MSC_VER) && !defined(__clang__) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#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 SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81 GIT binary patch literal 8616 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..a6e6bed --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,533 @@ +/* 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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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 "]"; + + + + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/RPI/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766 GIT binary patch literal 8632 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..cf91cfa --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/scream_receiver/CMakeFiles/CMakeOutput.log b/RPI/scream/scream_receiver/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..fbc5e17 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/CMakeOutput.log @@ -0,0 +1,560 @@ +The system is: Linux - 4.10.0-35-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_24c26/fast" +/usr/bin/make -f CMakeFiles/cmTC_24c26.dir/build.make CMakeFiles/cmTC_24c26.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_24c26 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_24c26.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_24c26.dir/testCCompiler.c.o -o cmTC_24c26 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c8162/fast" +/usr/bin/make -f CMakeFiles/cmTC_c8162.dir/build.make CMakeFiles/cmTC_c8162.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_c8162 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c8162.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -o cmTC_c8162 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce5EGm0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c8162 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_c8162/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c8162.dir/build.make CMakeFiles/cmTC_c8162.dir/build] + ignore line: [make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_c8162] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c8162.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -o cmTC_c8162 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c8162' '-rdynamic' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cce5EGm0.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c8162 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cce5EGm0.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c8162] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] + arg [CMakeFiles/cmTC_c8162.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_201be/fast" +/usr/bin/make -f CMakeFiles/cmTC_201be.dir/build.make CMakeFiles/cmTC_201be.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_201be.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_201be.dir/feature_tests.c.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c +Linking C executable cmTC_201be +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_201be.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_201be.dir/feature_tests.c.o -o cmTC_201be -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_5d61b/fast" +/usr/bin/make -f CMakeFiles/cmTC_5d61b.dir/build.make CMakeFiles/cmTC_5d61b.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c +Linking C executable cmTC_5d61b +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5d61b.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_5d61b.dir/feature_tests.c.o -o cmTC_5d61b -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_a3c73/fast" +/usr/bin/make -f CMakeFiles/cmTC_a3c73.dir/build.make CMakeFiles/cmTC_a3c73.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.c +Linking C executable cmTC_a3c73 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a3c73.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_a3c73.dir/feature_tests.c.o -o cmTC_a3c73 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_a39b5/fast" +/usr/bin/make -f CMakeFiles/cmTC_a39b5.dir/build.make CMakeFiles/cmTC_a39b5.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_a39b5 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a39b5.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_a39b5.dir/testCXXCompiler.cxx.o -o cmTC_a39b5 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_e997c/fast" +/usr/bin/make -f CMakeFiles/cmTC_e997c.dir/build.make CMakeFiles/cmTC_e997c.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_e997c +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e997c.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e997c -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPzJgyp.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e997c /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_e997c/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_e997c.dir/build.make CMakeFiles/cmTC_e997c.dir/build] + ignore line: [make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_e997c] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e997c.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e997c -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e997c' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPzJgyp.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e997c /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccPzJgyp.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_e997c] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] + arg [CMakeFiles/cmTC_e997c.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d8ed4/fast" +/usr/bin/make -f CMakeFiles/cmTC_d8ed4.dir/build.make CMakeFiles/cmTC_d8ed4.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_d8ed4 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d8ed4.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_d8ed4.dir/feature_tests.cxx.o -o cmTC_d8ed4 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_5cbc3/fast" +/usr/bin/make -f CMakeFiles/cmTC_5cbc3.dir/build.make CMakeFiles/cmTC_5cbc3.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_5cbc3 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5cbc3.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_5cbc3.dir/feature_tests.cxx.o -o cmTC_5cbc3 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_2c2d6/fast" +/usr/bin/make -f CMakeFiles/cmTC_2c2d6.dir/build.make CMakeFiles/cmTC_2c2d6.dir/build +make[1]: Entering directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o -c /home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_2c2d6 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2c2d6.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_2c2d6.dir/feature_tests.cxx.o -o cmTC_2c2d6 -rdynamic +make[1]: Leaving directory '/home/robert/Downloads/panasonic-ip-cam/scream_receiver/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/RPI/scream/scream_receiver/CMakeFiles/Makefile.cmake b/RPI/scream/scream_receiver/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..35fa7f0 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/Makefile.cmake @@ -0,0 +1,47 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.7.2/CMakeCCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.7.2/CMakeSystem.cmake" + "CMakeLists.txt" + "code/CMakeLists.txt" + "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + "code/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "code/CMakeFiles/scream_receiver.dir/DependInfo.cmake" + ) diff --git a/RPI/scream/scream_receiver/CMakeFiles/Makefile2 b/RPI/scream/scream_receiver/CMakeFiles/Makefile2 new file mode 100644 index 0000000..3da6183 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/Makefile2 @@ -0,0 +1,126 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +#============================================================================= +# Directory level rules for directory code + +# Convenience name for "all" pass in the directory. +code/all: code/CMakeFiles/scream_receiver.dir/all + +.PHONY : code/all + +# Convenience name for "clean" pass in the directory. +code/clean: code/CMakeFiles/scream_receiver.dir/clean + +.PHONY : code/clean + +# Convenience name for "preinstall" pass in the directory. +code/preinstall: + +.PHONY : code/preinstall + +#============================================================================= +# Target rules for target code/CMakeFiles/scream_receiver.dir + +# All Build rule for target. +code/CMakeFiles/scream_receiver.dir/all: + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/depend + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles --progress-num=1,2,3 "Built target scream_receiver" +.PHONY : code/CMakeFiles/scream_receiver.dir/all + +# Include target in all. +all: code/CMakeFiles/scream_receiver.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +code/CMakeFiles/scream_receiver.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles 3 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_receiver.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles 0 +.PHONY : code/CMakeFiles/scream_receiver.dir/rule + +# Convenience name for target. +scream_receiver: code/CMakeFiles/scream_receiver.dir/rule + +.PHONY : scream_receiver + +# clean rule for target. +code/CMakeFiles/scream_receiver.dir/clean: + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/clean +.PHONY : code/CMakeFiles/scream_receiver.dir/clean + +# clean rule for target. +clean: code/CMakeFiles/scream_receiver.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_receiver/CMakeFiles/TargetDirectories.txt b/RPI/scream/scream_receiver/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..368ba43 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles/rebuild_cache.dir +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles/edit_cache.dir +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/rebuild_cache.dir +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/edit_cache.dir +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/scream_receiver.dir diff --git a/RPI/scream/scream_receiver/CMakeFiles/cmake.check_cache b/RPI/scream/scream_receiver/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/RPI/scream/scream_receiver/CMakeFiles/feature_tests.bin b/RPI/scream/scream_receiver/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72 GIT binary patch literal 12520 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 V8;ec<QVozS1H(TE1t-z<0{~bDZFK+u literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/CMakeFiles/feature_tests.c b/RPI/scream/scream_receiver/CMakeFiles/feature_tests.c new file mode 100644 index 0000000..6590dde --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/scream_receiver/CMakeFiles/feature_tests.cxx b/RPI/scream/scream_receiver/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000..b93418c --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/scream_receiver/CMakeFiles/progress.marks b/RPI/scream/scream_receiver/CMakeFiles/progress.marks new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/RPI/scream/scream_receiver/CMakeLists.txt b/RPI/scream/scream_receiver/CMakeLists.txt new file mode 100644 index 0000000..b60cc6e --- /dev/null +++ b/RPI/scream/scream_receiver/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 2.6) + +PROJECT( scream ) + +message("Source Dir:" ${scream_SOURCE_DIR}) + +SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin) +SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib) +SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin) + +SET(scream_BIN ${scream_SOURCE_DIR}/bin) + +message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR}) + +IF(UNIX) +add_definitions(-std=c++0x) +ENDIF(UNIX) + +IF(WIN32) +IF(MSVC12) +message("Detected MSVC12 compiler") +set(MSVC_VER VC12) +ELSEIF(MSVC11) +message("Detected MSVC11 compiler") +set(MSVC_VER VC11) +ELSEIF(MSVC10) +message("Detected MSVC10 compiler") +set(MSVC_VER VC10) +ELSEIF(MSVC14) +message("Detected MSVC14 compiler") +set(MSVC_VER VC14) +ELSE(MSVC12) +message("WARNING: Unknown/unsupported MSVC version") +ENDIF(MSVC12) +ENDIF(WIN32) + +if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 64bit + message("Detected 64-bit build - compiling with -fPIC") + SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread") +else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 32 bit + message("Detected 32-bit build") + SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread") +endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + +SET(screamIncludes +${scream_SOURCE_DIR} +${scream_SOURCE_DIR}/code +) + +message("screamIncludes directories:" ${screamIncludes}) + +# lib directories +IF(WIN32) +SET(screamLink +${scream_SOURCE_DIR}/../lib +) +ELSEIF(UNIX) +SET(screamLink +${scream_SOURCE_DIR}/../lib +/usr/local/lib +/usr/lib +) +ENDIF(WIN32) + +SET(LibDir +${scream_SOURCE_DIR}/../lib +) + +message("LibDir directories:" ${LibDir}) + +# Include directories +INCLUDE_DIRECTORIES( +${scream_SOURCE_DIR}/../include +) + +ADD_SUBDIRECTORY( code) diff --git a/RPI/scream/scream_receiver/Makefile b/RPI/scream/scream_receiver/Makefile new file mode 100644 index 0000000..03866c0 --- /dev/null +++ b/RPI/scream/scream_receiver/Makefile @@ -0,0 +1,148 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named scream_receiver + +# Build rule for target. +scream_receiver: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 scream_receiver +.PHONY : scream_receiver + +# fast build rule for target. +scream_receiver/fast: + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build +.PHONY : scream_receiver/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... scream_receiver" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_receiver/bin/scream_receiver b/RPI/scream/scream_receiver/bin/scream_receiver new file mode 100755 index 0000000000000000000000000000000000000000..c47b99cdac96e737a6236524ac3e10cb45293a67 GIT binary patch literal 44120 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/cmake_install.cmake b/RPI/scream/scream_receiver/cmake_install.cmake new file mode 100644 index 0000000..9750c26 --- /dev/null +++ b/RPI/scream/scream_receiver/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for each subdirectory. + include("/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/cmake_install.cmake") + +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..cf91cfa --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/progress.marks b/RPI/scream/scream_receiver/code/CMakeFiles/progress.marks new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache new file mode 100644 index 0000000..eb75b98 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache @@ -0,0 +1,68 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp +ScreamRx.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.h +ScreamTx.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamTx.h +WinSock2.h +- +arpa/inet.h +- +string.h +- +climits +- +algorithm +- +iostream +- + +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.h +cstdint +- +list +- + +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamTx.h +string.h +- +iostream +- +cstdint +- + +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp +ScreamRx.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.h +sys/socket.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/sys/socket.h +sys/types.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/sys/types.h +netinet/in.h +/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/netinet/in.h +string.h +- +sys/socket.h +- +netinet/in.h +- +arpa/inet.h +- +sys/time.h +- +iostream +- +fcntl.h +- +unistd.h +- +pthread.h +- + diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake new file mode 100644 index 0000000..a68b657 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake @@ -0,0 +1,24 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp" "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" + "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp" "/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + "." + "code" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a598f59386942976b3168bccf0cc162aa3b0a117 GIT binary patch literal 35968 zcmb<-^>JfjWMqH=Mg}_u1P><4z;GY~!FB*M9T@r<`oL<<7#P5`Ih3}9($-Mg21?sO zX^?)99ga}G6O?v=(ymb24N7}JX)h@41EqbTv_F&%gwjD!Is{6GLFou69SNnQp>!;i zj)&5TP&ye(r$Xs;C=Ch<ko&Ws{2VBq2c-+3bP<#;hSH@_x(rHJK<P>-T@9scpmZIS zZh+EFP`VjPw=pm<gnD#7_2{hq(OLS%qucdIcj%W+0T9FExPt&Fnn3L14jeFM+HnUK z1_qE|+HnUq2+QNRg91$cxPu0adCWlvrci=`VM6TT2~fLUcyznI;NR}R!oU3jl*z`w z{eb47&I_Hcf0}Fm2=LE85PKM|y0i3wM`!4bPTwmoorhdHPo#B*Ug&T=1Jc^<pwSz^ z2x4^xXn-jGZ4Nrk9~fH>l&FKb+e0s;bq26N*bXec0slcvn9wl?9Y+4`t`|C8e}IG` zZaUEE`iFmeD9mXr{M!#$9;#JDD7XO90&=Y_g98IY9ebne4^a9=QvlL~W(<m+KOjBb zu0O0@{}k19yZ-1r)b08Qq#~`;^-EfF?H7iUaQ^MCUz&f|*YSbOhQ-Kh2QaTYKma7& zdC=qXBd|bc04U;Kcyv1m@NW<O()@~XA1IM^Ui7&9%%k&@2j?MVWgw@4g5kA8x9cB} z-9Mmqf8*co`mOngeLXk;p{9MqZ`uQogD;ppcAfto{CMf?BMKhhA9-|M@HqH_r4wvt zX8=b-?HPs=QIG@pw>wC5hhAX>%cOM%NWfD@^BV!Al<3iXz`&#P_zPHa@;DA+fm0Mx zdV~cEC`Eqe7hnac`OGiqAOR8pB}@fBNFoI#Y;Y3!aoj-%q-w%RND6CyW8l$Qdn3i8 zn?)6rc0D>>e;6L{=ytt<>;g!d%10OW=yV08W)!6!ovt4|dP6^W^t!(A=)4B=L(72@ z1BejJPYg&>>^nel^;#HN#p|UzKo0fj_WhCKVax+|T?s2VKp<{+3<>sVeiPu)S$o2x zv-E&RXXuVj-z_ekt{YrBPj$Nrq;-a_>2O_v?6ntQubt=);OKVU0FHwbodFyk-L5A< zG40WMpp*x~2|eHeNl*}p?$84snukEKYP+C~k%7N$FC#cy(Pdi?RB)&9zd!KVgJ0{w zYe|pJLmn4jH9uhV;5-BqKJ=MC;=pHq0bY>jKJ!N&{LC-tdIjCqZU>Ho517Gv__Ypv z=8to|0#f$?r0z4nfQJMkwjn0m@aPSF;L+=P11Zcu^9z6y%n4YEIDtqxCqDBFI7ocv zk2>%P>Xc9Xkp~g%xPzbgqYi+qynwJt&=q9M1vFbcIu9W$0XgCUnj^sGfSit;raVXp zEZ+;TkODae#Dk^vxP$z9;ACIS{@H_H=fG<@MA*h01PgiW0tGb#14Dy{;RTQG&=Ve= zP73I*0jF^OmSqgkcty^Bovt^~m3wr$KEM*<EeA@{A;AMr<=vrMP;!Bp3;(v%75v*{ z*Ptu(-Qdw3y2GQp^nh#UL&we=u>A3I4#-j9sD+sNGVlNY|NAW%7#P60!K3qVx9gV9 zV;-INq5Rkf9^Ikfw9@UM(_6sk(d~Ppvrwng$;5?!o9hbx?X_z>x?LZ1Bine;vGWJa zMzC*t13($}fd|Oo>tKUli+Oe)f!X5I`2b1zixdxINC5)Pq8`mh0-_yb;Pn`&hWX*q z?Vtb^ftEWSouwC$GbqlorwB{g1M(qy+4I7qH}r)^uPbsAY&lS33=x8apGP+XxRmO4 z{m|{8(R!c`srZ3=>h&T##Sf$|hx(zj^a@d4D51;?rntPoVC{OPl+y$38xwFDitxmO z9smFT|Bt&2^=N)mfLwrjboy@a>2zJ;)9JgwquW)$qtkT;y629&f>VRXan}zJ!(C6H z<ZF_$OBH%907r-dnkXpYcv!oBD2B!qD>!ai4wPu2D+JX@NLd9G)!hyX;OIsYei;o4 zmFC(P45jQ~qh8m5D(7x+U9bV%1bo529o%qQkp||j;NK2zU!-*guz{6=cssySFFd-z zZI1;W5HA1r08srq1ETST2dMJs3;>llFA(j+6A)nmaK(o=eo!hnQ2e0B2grO-4TdOY zz=c@}7uaVn+aXoehT{yNW~xuG?+2e=*LxnlzE8kerMnbV+n?}ge#7C>Tl*j!o~fIU z2(%pFZ*hib-*Jqg!K2%Chez`P#$ycU_p`xDpR`U_Py=j-M{fWV|900$X`M`<;-lL^ z1KN7&bbSNX*c-so?fM2R3o?b{7z3y=3Sx2|V_?|Ng2g~CsDa(CFE9+_0UO4@-Sr;- z_5)B^B)5QChak7`Z+CrwRe=!HY*4=OIQT-L)AbF=L`VsNaI*+V5ago|I21^L6?D5k zfw}>qRR$~rj^Njj1dBJG1v+d0be8^TuKmMUYSdW!<NtpKhEh$BURzM@1<7%}q9C?M zuPK=72G@JA_<}a*_JOqR2eqbNEcyTcf9zq9QV0h18_%Bcu}@1&vp;+04A@)-h6Z~E z1_lR)0A~-7*x55ab|4z0#@M*no`Iptg@J>Cfs28G!H9u@;RKWxVPIeY^-Dpq#>@bb zX9zg#zSq3X6r`_OWS#rNswp6|85kNG9T*rC92ppXIWwq~crq|B#6x>GKRh~1KY(HY zS}P#+#2Bnyzwl2v5PSIle@21ltf~wQ)7e<RvoYLcGhtx(|DO?t`PEq&7@8Pa_b@VC zWMqZ*=%8(Ba4Q%ZFB484hWGZs;@zMe{KLcY5ZD%oT=N?RkIvc`7o%oXtHb^U<U zumL$6dxYXQ3tT-BXAoK_{qO+0`2(m>vpmE<712wC)~*Z?1wSAK(T`ZDkC8(IRP{m9 zIHVB`>T*CM;m2ow0Z?1`1E}4|uXnHvRM35R4eCAqK*SGJF-Q?eF-Q{whGJL<fO|CH z(1ykW)KZv>AhC~VcXS@~=ne%Xh#wxE=a5o1PV<n>Mu}mV$spr81tvh<53{%1^@m6E z0Rfl|Xs!auLfz}p%>b3`tOW-$B1}R3rWYQakls1CYKQ58bo-E#3b=<2Zjt>!7VdU^ z0q&&2+yVCivO8g>f?Ngd1j5?!&_N1l*7tzx3I#hAoC;t}aLx8(AE+e2unq1taC(EA z;tG!!Xb>RFV1yp1FXrLVS-ZodvvdP;27>gtcED`)=yU~DILLfRUD)k=!lT#q0#d|# zbh~aqXgloD?Ro&gJqW60JUVY7tM7HafZ{`s?$`qmGa*Udqw|JGcPOZ>Dgx<FD!!KT z=sb+B1RCOyGPn7NM>JaMfu${|I*)D+aH?fI<<TjC5f_M1#E4yVbHM55gGVP5!Vpk# z1SuptLqRQx7arZdIP(V?@raWAU?n7^6hyKXRPMn-5HxTBD_}r@>CqX$f#EYyTJ3h= z@Mt|yA`i}@-5%h=!lRpE7pQJRiZq;l1q~k{S&Gfu;PeXeH7q1y8Kc`3R$}2zv!KFn z0wPDF1vbLhaQ}hq!ZaIfJH&n9t|pT2pg9LcA1J42fT|g+g-182?Fj01?FWrILegOC zff8nqPKgN~%||q%5$?rZx}y68o|8e1X#PnDS`NUvY2fnlf(PRP55@}~2OluQG8il^ zptu|qULHGEK>!zW+X7UsfU&!?vz3BIXi{ljNvVRFp0S>RuAxyWm}{g75l}EPFf=zX zF#wHwgW3@weT-E>42%^5jM6;p91|EB7-SeA7$heIA{_Yy+L)Yq*?f7}LE!?D2em&y zQj#D7CLe;3j{%7@Ffe3;XqY@x8dw2HKWLm7B&7!;VDgz@X|VmEZZ}BkH7Lcx<e8r_ zf>eO??*U0NFff3|qZwfGOobq6u>Lzxd9XUT{C2oJNSd)Kzz6Je_Sqn=G|c}h3=9k) z3=&+$%)kI@XTj}o?_q9cVV=j#!_EP6hYQGk3=9mo!YKtR4{i#=-LVhujuxo=5s+nY z`TcPDB~bYVAQ~pmJR2SkM?m7B);oxX%Rh$8KLLp|Ffd3Xn;!-?9vn_AOdtu|@+wey zZ;&#W`AlwL1Hk@=%7f-P;9<n%43|%V$}1u3j|EGE?Qem~%OlH2A>@}p<z<oOBM|aO zpz^xN@)-#ECwSyRT{0f1yc7dkJclC8&;T{E85kJAEq_=T6d>e1pz`X-Zb(ANXF%ma zcEH03$@~teyd1LrNQC|sP<dQoZ~`jNhpgWdq5lO`9yC`3x1R|Th@d#+04Hz;22hy* zmxp8}aJSU}svk5*2386SgCc|-K41w323&5)fy(0wgC3|nwlDzY#Vt@bJVK8r*Jfs> z8wht?ftmvzXNS2n9U=b(Dvv8ah=BWb3=EpcVVQ!^ZvvIaRc?hq<#B~W2~-|eI81@c z<H`?Ppz@%3N_bqAAl!EaDi4~!gv*y9<i9}Wap@NUjV&-RFkp)ZP+Bn|ARhvi=SB`c zNO1wq?<G)qWn}p{g!`sI<#C1I7O1=yvi?+r{wq*<T>8I2<w5hb@bGbMX0C>o=OXMN zgBcib#g7S89#?r70+q*Qe+g6`T=&A#r$55|Q=syojyl|ZOfFyrpzz-Ul?M+-!1M=z zr6CT-Le?;W%C?XHu}Cp6GZ<nMW?*J8#vyKkLmXT>qR4@&9!5y12^I(O!3+il24+ZU z1LJ~ekpDpHp;;7C?}BAO>OrLslmn#<z;nq6_rS~t4Sayi0ku^?N@3<f=G;vgctC=% za)g0_0aPx6)PpCTk;Kcv=9@Br;|k1%Xlw_wO&KI0T(~<YL&ZV<07=2@T?iEi)i=oE zo1x;M@(o%16jU5EC5S8zD*Hh01ea|{?)(8&4+;-t^@5C`d0tZnSO~$~qYV`YO=2Lc zw}*<u+IBGYK~Qnf7#6bnWT-f3?E|uSB~%>TCO~rMG^jXe4Ft0Ktx)j*kRX!!Yfy2} zS_qI7%spSB;-EDV$l_c~5dXs3o-p-lQ1JwiVkGlHTxJGXD1dkf%*+5TArS&l7Bd65 zWQFn&6f<~44#9`9m>EDTM_@bz%?z5qM{waRW(Ls85;zymU}gZVG=X#B3}yyc=);A; z3}yy!2?u5)6U+>tl_|&~5H>RdEVdwg7|F~4TDbz_A!ud>SS%vMKrChkP%Z<pP%$$D zXr&9P7>LKr09yG1VxeMY2GB|vR51{bnE{p>Ks*FyW&o{}LGWQLW(HU)fr&t9W(Lqo z8VDPiWM%-ZtU(rmu$jT71cZ%DGBbcy-XM!W*vt%|l{gSKGRe#UTA70^0%0>VfL7{2 z*vKR^18C(AvIvCD%m7-+17RbR%nYEFJ;)*uHZucgr4NLSOfoZoR{kK1K-kO-pp`%n zHZsY~09qM@ECOLOGk{hKLD<M7GXrSl5V8n_%?#<eK{!YxGXrR45t0Cu$;<#+X$0jU zQOpdWl}AVdP$n}2tcM8|fKtp1pp{8b4id%809vVpBmiYHGk{huK{-eiGXrQP6OsS} z1A{FS0|OI-Awvtaf&tgz3=9mpQ1P=+ad6!Y)ymA!0%f66%nYCvQmA4e9y3EHh{C|k z3|$yvo#4I=wBd{-y9X=|ZlNHFGBA7ti}Rz1fjG`!BVe^4NCbjA!Q$YSG(-SO?f{D` zLU{;^8C)QPdx8i-1_lOqu(%qE7>vWr&;etj(9GafdniI+4l@JT6JRzn!OQ@56tWPQ z%?z)-!CW}O%m8gD!$lwrW(H^j62gU(%na;sHZp@5G=YOG0A({Xa6(zA6f=0X2UQHj zV`kt6Q5cvR-kL#`VrBrZaX}RXx4SUo9i)hv0W;nq;;>c`h=;(;41x#_5{nr!5`rWG zVKOraLl|fzGrV<$D#6TvoJ$aL%nV`(4ibx*K^%#PU^2s7X$Ub8i<tpDas^_dU}i|m zA4LqrVTO#LfS4$l8QiNu5dw3V8Nj`DFdLa*hV-nEg}`iP25^rL%tj`d!98$f5eS=^ z0W*JrWSAK+^A|)M+~Wc<Q7|)nqzgruftf)SRRGFkX26wC!J{8gRS1fi0oIB|h=Ewl zkRCROiGrCKz&$$@F%XBDK^sJ2U}gqbYZz6EnE^Z^genM5|KOfG7IA$HF^~W=1FTgI z;z4jP3j>1^QvU@!_Q$}$FcmD0=%>I^*k%^c_#mR61s)S+U|=|nL;NvR99Cn)T+GD^ zF=rOU84TdDQ3eJEU8r~)wCDqmi83%S*s(G&V9ULrF$yK5_ARUgZ^vQI45;`YsQKVA zRR#uz9ju^mK(vQp=6nE)!+H@64B);p0|SFP8%RB(Jq&Ac#(>3Py$g^UhzBQt#S!gZ zSdKaX7Du#`VL9hL8+QMKie@1OLk38_#J~U=(*@Ze%g(@{$b_h8Vf{r*c90to?P^#` z@&}6}+SM@eRIoUrT@4;PU|?XF!;alOi@@q(zK4!0GB7Ya#G(EL4sjJ6;@{aJ=_CnS zCBf3CBnLzsHU<G6lV)IGFoB9&Km!0g7R|uG;0YD~0~H64K{GHg6hg)4fEFge#-14% z7^ZMw_wOtm;tM!H;f&~K!P3uVusEXM0V`Q}IYH_X{SH_-M}fr={SNTh6$1l9FIXJW z?|`MBt6*_N{{qzi2c-v7E|B?%{snkEl!1Yv8Z3_JU%+zsZm>9}JHLX(G2Q9J4Kg3m z?|`|#0W6N_cfj1g2rQ21AHizwS733Ns~H$T;{qV}`|w~7|4JT^y@-Aati;?07RU52 z3ol4LqW=Pm7h|wEqW=OOBV}M<r~r#2`dKh{9tVpf`Y$kXHa?K~i2e&K9E`!@i2e&K zUsr&|VWlAhyyQ9z7Dx0`U@1wHA7nnFp8^ZdJg_*TzXL0|Hi5+v{TG<}%V2Rt{{_|p zlN11%j~PB5U~xo04pwf@2aCf>Wd;UVP5c=wj_B{e!bedMWIm$51FI1W!Qz<Vum>!T z=m){f`3Dxq^skc;$b3Zq2v(vk1&bs4N3eLg2o}c-2XSGLIf#A}tej5=izE6?F!xLW zizE6?upY%DVeIMlHx6-O5e5bUXk7$K_b{vg5{Ge+XbT+T4DnIHB|e6h1(~VIspXl) zsqxAAdBr6~rO71>@lig8CfSb3*<q>4CHX~8nI**#<reYrnfaM{nP4TB**^Kj#ZIXu ziC_%|*{;cX&Z#iIkwJD~X=-VzOKMJHWk_OCdTNPpW*$ssUSd*CYH(5th;N?lo|u^z zS^#2Og4r(l<q(xd*+Gf91)&AO1*xfEwT9-|zKIn<B?SnxLD~#0vO_AsLcy6;scwlN zSA)gPkR0J&npgxe1mbenvedkipv02Y;N--dRFHBbs2?z83{A2_GILXlOA>PnKw3bm z4UIu=38@H3OwLXPhmen<AxJ2=q$o8p7ZhYZhGyALiN&e@<tZMS#U&uefpi)fBRR`2 zzbF?)(iDeea0XbfIg+$nQDSmQW_});ey7Tk)MC#(x17xMj1rifZ(;>VzoBV1$OEAT zE+C(0RzW;&lnsd@r_7R~#FA8)9<T;;a6E%FAqkrp#>W?zB$i|*$Ai*CW@1ieRU*hK z@rijU@hPd0l$4pD7jKZ6$q?`E<L~6?6CYn(niTIDADj#dpr8u9<N{Ev`vsSn$HymE zR2UkX<YX3?cn0`cz?7Il0@F1((KFaM-qqFF)U}KuJ_<>Tp+US)W^qY;Qetr`aXJl6 zAUZNjQi~Ex@{6$P0$CK`7hGZyAD@z1l9-ueXbRDkm!Fafw#$_~XTY4BnOl$p_e`Q^ za0yHTWC2zeft&>OyP;`(d}2;cesW?-YD#=TNs%Wge26dtWJXZ1X?#GiNj${;<QwGz zjS9>7`1HI|aQqqPrIy1SmS04Qr}D~k1Hhg`k9qUVV&BA)<P6s=kbBW(osDpa8)6qX zG)>M(P0sdAbIU0$&Tvf5hNLERW6g_FlT$OxQeATc$}&rmP;7=+2~E)cZf?P@A@L!O zPCl;C03|*t8=_h6jP7V0uJtA%znG@x7L-&%EFwi)Qfhi;9?9B_Q}a?Fn!JNch{|Sp zsjflZ!N%aQBUVpJD#Q*Vttcn}DF>BS$=UJA8QJk^iJ3VlQHmVhS)llK3D+x1P1B2y zPp_zmFGwva&d*EC$t<aiFEapFgvPmv6`pCXLEa(p!A2ki70t{;7xnWdA=FKZGpite z%PY?XxsU|CmIbB78SzPp$=UD#P00aesnERg%)FHNpw!~hTu@<;C|eE9(^E@=N|FoQ zl05TDQj5wGb3h>#g`~nDv)C;)H3e)e*hTQ1Vw#>>;#q-~%M1<EQ%evUg0g}Q;)6<p za)S-Q5e(OCXacGMN>UL@12Td#88S-p^NPVFIDSa*y|WR-<p?dX;*?;u0M|)WdUZB* zC8}D0S&y?cw~Y6VFH6iRC@F%t94Vc^^b&Hqp>e!#JjjCh<owdS5{Nm75Fl8Wf}D_< zSDac@;^_s>gs!fxWmqy5sN!`g@DBmUA;Ns3oe8a=!8IPV%p=_t^LSryO9S1P#Ja*6 zZZmQ5Y(z{vBUOE7pc*+dJufvSJ~uTtsWc619c~uy3#zUmo&c41(69l;qGzrvC`OPH zMR19ET7FS^Vo{1`kT;e_k*j}5e2`yoiJ@6hYHog6YJ5>@T53^hUUI5uuxY%jNl9fv zDq1szV4^TIiT90%<W6wfLL`j<v^EM_vcTO^0!3X$etx!VK(GP1X~+;9{mJp*5)xbz zk)DKLNd=q`VcDL@rWZ^(yrl{=j9?}Oxx6^Fgd&$4fecAcEs6I7wLYOOzkF!PL2@Dl z#YbXF3RJr{Uj4bQC`p!#K!-UUl*A$FKDdPZMyIo(YY=Mt)eIgS@g+rxnI*+Uw}ma? zJzh}X!V6vm27xRHi3b&Vu=Gm4gA;>YT|k{#P&OsI)$W2Qyzmwnen@diPFoz7%8ASr z2v?CG35EtKsn8fqg-0zogHz@g6mtWDP2<645=!i-Sp!tELfw{ML~81?fa-+!3T!(? z3Ev1FI^f2pp<#SHC=;g^7w4xDo#X>T;)8<CpoK8`iP{C4P$-Kc<ost6?-k@7Y!VM@ zf&?JvJtQkIt5~$s2}vzEsUMo0DKiBT?YRNo;2tfKdDwh_n&glZC>egR$W5$()HEQg zgG&s}<Ks&*it@|jlM+)PJ#&x*Xka5VzZg7@Vd9yWSpsPt#itbK$7dwwrGSUSFcd*b zq4?yA#Q4OL)QZd!&@kgd=vX9Z8N+l228KVNo!S5Y|342E2T`Ea1hDmI%Fv|<AoZZR zJeYbbByrG=1emxVk~nBz1WY^?NqjDny`@Ov^N_?Fki<c26=CK~M-rcpq<#~U_yQ#H zYLLSjKx<tXz^f!uK!L!(z_1rh95%v#6Dkg(79*L%1_~4;b6_LeLTKXPKnBepqKU&s zu<fDZ=;nJt#bMzO8>x<iii6ZIL2^$ylK4_2@!e2ym^rW&JIBz(VJlUx;}B<sE*$~c ziyZF?NaD!x4qIytQjZ+(-bm_^<2@Ql968>zk;Eq;`Ktv<99jJWB=IRo>Ng^ZBc~J4 zd@LvlfZPc>!vmJCE+DC&gk+8obY2pq9@%_NB=O})>dlbES0ITyB8jg=5)VZZM^3l% zk;IY1e;blGa`>M@5=Rby&^#^7zsTYL5lKCAc#1*iPeJ}g4mU$2ab$NUA&Dcqvl2-h z*`2*e;>hk?f+UXY&Mipd$nLz2B#!LPZ%E?E?(~N)VFLLJ**(cf;>hl)LJ~)IPZyFn zvU?Wb5I>1S{0<KB&q(6P{+b4zzXrJ<*<Y8C#MdCDD>3K<AV~c>Byl?=@eN4g@krtu zk;MCv#F5pnK@vw+e+o$)S^aAq;=<5%h9Gw$n`44Q+z*F%9g;Y5_$+~ngUUmY9kBeq z5-JW7yNBf84N!5A`uj-Y+mXaUdSK>&=A}XT3pDTf07?BZsCtmvhe+bEc|?#nXiYuL z9N78{koXoP^|1L)kT|lxK=y&`1&Jf8hpj*Xi6g6rtvCaTZ$&a6**)8k#F6(4Am<C% zJTb_e?MUj8%>f-J0`nL0K7yS{>XFR{t<iz0M>c0Kl6vHQ3ZSjqF!jjp*^i_iIou8) ziNjV#fZTr&NgUZ;&{`9i`LGpLAoZZNCNObi^~aFRLG~AD6Fy8mY-Jh99MIVqFmc$5 zevtT4By)m6kqce_e-cR?wlV^w9yuIfGv^?2<oJcnV1vX#do^J8g6cAm6(I4`Nalmu z7%=fONa7&BU=zOt5`?-Fxn8@DB#xX8k;CUKlKIHtc@9Y&mwMPb8<6`iBB@6<2jn)G ze_`v}K<Y0esYgy%SCPb#_n}-s5=T~#9R8p)Pe5J<nGf<i%wA;o-@suGaytQef6Xl< z^|19oAoG#!g{{;BiT5L^M-GSENaD!u2kkqCxf8a|24v1%B=yMo2)Vrk@+$~~_A!CV zO4xdFkQfMq#8-hBPz);vKx&~)53meuB^^i{TJ?d&Vf_z~I0%CUK}WMe86YtbhPA^% zX$&L<5(8mSTLi=h<$Vwh5(8n_x<gP|jVumZFUSpYIJBL=2&4dt6_CV1=D^nHX(EXu zuV(c?5(lYIf_gdwO&qqqtpiOQw!UoznmBBI+X*yr^!05ZJ7H^gKwjVg2|)b?OJg8$ z4J2{oRkR*R;>fFLGmyk#c@Shy2a-6ftOJR!KoW<o!2*e&KoW=5WgzhvNaDz=XgQ$$ zJCHOit%B4GB8h{-AC~TQki=niD@eT$k~pmH0Ey=yi6gJB?LiWU)de8+YmmfYc@QLi z21y)NCV<4>Ac-UIR^$O?IB2}U${dh-9VBt&-HN72;voOR%9j8naoAcwkU0fN;;^-V zAn^%E;;=dhB)$Pj9JWRcB)$_#9Aq!79JzrcZUs^Z#Xpe5VQbewQW8l0O~k5O1_lcx zap-|lAmt1ZNaBdqxC{&xNaCP9lwidS3=E+4zaTa!oxsW#5FfPu7es@^9YG8zzJX*8 ztnCDn`hg_w3=)8131~kNWDa80EdzrEk~pl)1Zjyt5=X4MWnid45_bnFgyI=U;)qqZ z3=BJv#9@1NKw54fi6d5bGBEr=5{IpI1F4sQmO~)-BUXJfFjydoBUYy}Fhn4U`+*FA z;tC{j#Hv*Wh8alWAUk0Di*}%i!|MyZ;>z5T#3Tm2;*uf=odIJNrRF5+m84dbFzBTu zmLxLhB^4Jl=oRHdI3NkV_$bIq6tFVAc%->-=t?A{^(cDj$;t7l70IauCGjPo1#Jv^ za2r5c5tAhZXWhW_*Kj+L=7I_8gfH+Q+ip|XS`V^KfG+z$c0W;*tnkGjaGh9YpRvt* zf|qolIu|sVO3b=0@Zu4eeZeJ|D>;zm(ARTdSV{C^AK20kR1-)@AsFjBaG6Bx#3X8x zBQoHf2~Ufoy9?$X(EK0PIdPOpZ&ck#83ASt!TDBW^hFVf2&KksI;sOni9qlSHYuwu za9KrkP(bGj;q%>;8VH)I0Il|PEn|QMDj5qgaZhHWx)1NX3AR!JF;k6d5U6N?1_d|~ zqOG$)RZK#RlCx9-mt{o9DQG%9GY`HH0?j-kCvHL0cW62(Uf6(co*~uegyCt9<dgwQ zxS+{WP{Kv2qLHWDuuab4N>YeaLQ=$mmT-WQAci}rH8YG63FI$1z?McRh*RXrUSsfN zFK9WpYgrJ=VheZ_QxYJMB^MY$fv*UFw*9EFegf5Aq@+s5bS{=f4Db*llyq^Xd8)2z zfH^0)gt7$*)C@J`q=tQ60Z!XUDFY~rTC{Znuy909f!G{_9ILQIi<}b3NMy)s1|R_g zs^jAmi;5B}p*<Q<2T2d#qG-M3{M_8syb=bzy!?_>J$JuQ-QtqO<ZP(^)QtGFqQu-( z2EFv6{8GfGHE7?D9BLjf1J+&mus%9;+K!=zfq?-ujtLz;fS-7POFyiSjI19tZ%nLy z*f~DP`ayF9#OjCbBt+H^8ha#GKWv;6SwCogl34w)bqmP)LGv}l>W4)xvVPEfC$air zI|7mQgXS%X)el?efUF-huS%?b*g6Je{h)Ol#Oep76;OIc)(@HkAy)qkkY)x3_{kZd z^b1;#L9Bk*xHYo<p!EdA>IcmofSiD=KO8zA0}_XsgDd}l=4e6ckoAMoG)y0i#-$%L z*N3hjH2(zC2cvQ6hmFr8+Yg$Dgz1CPxb%bO($MV(&5ywJ!Dw9iL32Ck`a$!WFnur@ zmwwQk4!VBOu4$M)7>!FmY#svH|DbtNm_8VdOF#JBU$pcGnn#4`gVDJ3e*ifiO+RQp z7N!qI<I)d0&kbY*vim{vwlIA#8kc_9(KyKZLG!pUeJ~oAeh%n72(o_Aye>>1jK-y3 z0E_-867r7(7X6@kVwk-!8khaBc_n1`gVH2SAB@JOUjvK%p!sN+J{XNlzX2Bgpt)X{ zJ{XNlzXcZkpgalF2cvQ6cfg__bh-dcAB@JOA2!d19DblP^<es7G%o!CSnLPQlf(4E zXk7Xuu;>TPr^EEYXk7Xeu;>TPi^KH6Xk7YX^NGm*2c5P6(+8t*=`X-yKWIK3rVmEr z(qDl^KWN?^rVmEr(%*nZKWKg)rVmEr(hr+AMfN{v9v`L;M&r^CIzt@2`~uD2!}P&u zT>58VaX+X|fa!zLxb(x$DM5BWXx<;D4@TqC51SuG)(@KRhv|dSxb$zp;(pM&0GK`) zjY~iH)*7_>12k_A(+8tL^Zy{Lpwm*IAP3_EAVCHOhDXr#QeZ*od?<_!qCw|+fXssR z7eHbl+yU(XG(hK<K<zKkd@L+HVDqD(Ic$(s&}mqZRxn-!JMaO_Ll7Xf2p$9Y<R*}r zxb&l|N9Tjw1QG+yi6NW20%||39SV~J*#%>RXwY0NNIx5z0T$4s&|v50fYgF8NG*tl zVbB~SNDN)S7gRrNeGE)Jnl<3F@j?30#gn1>k>|`oW`NX!Xcz{aumKW7w|^2;KPY}- zYC$x*J+;s}89n|vpdC0^JcHsN6jreCgNg43pF7LIfNuXfBJKZ&L;oqLe&jh;Z0`Sw z!~F_S_rul}fZPw77e{wLsGh_Yeqzu=v!K}kWHlJ0ho3bg=v-yc1x{dTI1zxwe$YHS zy8YGQb8IogFAi!yXiWgzP%QZua&9iB{syRi*!ejyGtk}t9*6x4p!#9!qj2eeg~R_1 zQ2)cy2`KzQ>j2RGuL?ew7t{TFq4p!MF#)*&6jvY`h8=O}e?_GJBpmuB1R*xS&cA{1 zAp0F)Y!Dp_K35wv{%2tEKWLo-y8l6U8-V<To_~y>_9L%R0ojKhfAewJzX57La{33Q zWpw-B;qZS3)PCf(NZ9OuiNpQ}SnLO_qd>P`j~R4cGiLlxfZ9(e{M&HoUj@|<JI4v+ zb`VAnzeecY9_Zzt0QAT$<n#+#zk%-lBRK3o0kxk{{@IViehn=4gVuwf+b_g|J^Y?R z?T1!_Ag_ZlD6N4RP$CtF{x4Adpf)d5DVRbJzXTTS<(~u8{jhO3Q2qy<wubKh3pnf# zf>yl9Ypy^JK(`-sej>K^%L1tV$ngg{<qX|^MON(L*8#O3d2JUq`(;?M`+o-(`$6NM z==P`Mu>Szme)RZ5_y0j0`p-f26Usk(aJc^h7Wae3U(nsp#fClnUO??9l>b2cp|Hi@ z3oQ17`mgBro8z#b4SLip>|8uh+<`E9_!+Tbk3ZPa<FIiMQ2GVs1$6tD;IRJ%)PCeO zmDuc`kHdZr=t6bm^b1;}j&48bE(=heMz23apbIt$wf{ipWnv3|1uXU_BK1dL?$Tq& z9{&bV`;phCV)H*}zZW+9EwI=RI&~1;|8+R*kA&KfycQK?KPap~Gz?d=V~_s;EcSy= z^+UJ+HV*qcp!O5Wzp5PA!*3c?KcW1qz=7TU8Ccv8n$tjce=H9BH$d$t)P9V>VSfV_ z`$4BVqT9a~hy53z_JjHyu($%z==paA4*O?du^+Ui9o>FrPVC{&1wDEid5tYL`~Tsv ze*+f#L3>Hi?GM6Xzbn*!bpNBLUtdn_@qYqpKXUsIG$(~_|2`b{*Fo(kRDSbuVGqAK zMC#|{!tVYbQ1`>i8BqBPI-L{U{h;$&L1BVk{_TR=58WOIiaIbxPd{xq+<y$JA9<}m z$N+TxjX2yd0BUS7Fu+e92e}_~`X{>kAK<Y671Vx0<%c9U_VE7!)sMUf0OWp9Sb=C5 z7U9Mo{u)@^4?2w$-TnDE>{o&w(T?tZbo=+<&~E_MkG$p^<Yx5n-;Trm4p8?ar+?61 zadh`<@n8?XGN}E8%3oC;?BQ1cwI4bCf=*RMw?7ew{S%<}6B_@B!C`*~)P7K(4-{^o z^aq*~Mz<fd{}L1@==tXk)PD5%Ll6H~INbjVsvla6gPZ`y==z;`A@{|hkN?4r@`t$> ztQo2O0TZ|5#UB0_p#Db=f6$(Nm_C?z2rnf5nb91^0o~XMQ;%*xjPH-b{ufy62c0qw zGY@8e8PtAQI)#}l0JR@i`vnwdAhq>S{UA0nwu9<N76Y+i`ao<Do&wd6=6wbSsQwGk z@n4Wy5Qe!Q#0KGh9R6nr1<5in!1i^3(jVw{5}1CN|3U6Sw;QBW0NU^{fR<yu(Df_m t`ayf!Fwzd_LUrh-A6K*l2(k}kJ`97px!CkefI1rt3=B)ruFyc&4*=#BsOkU! literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make new file mode 100644 index 0000000..0e923a8 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make @@ -0,0 +1,140 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# Include any dependencies generated for this target. +include code/CMakeFiles/scream_receiver.dir/depend.make + +# Include the progress variables for this target. +include code/CMakeFiles/scream_receiver.dir/progress.make + +# Include the compile flags for this target's objects. +include code/CMakeFiles/scream_receiver.dir/flags.make + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/CMakeFiles/scream_receiver.dir/flags.make +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o -c /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp > CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp -o CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires: + +.PHONY : code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides.build +.PHONY : code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.provides.build: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o + + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/CMakeFiles/scream_receiver.dir/flags.make +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/scream_receiver.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o -c /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp > CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp -o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires: + +.PHONY : code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires + $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides.build +.PHONY : code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.provides.build: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o + + +# Object files for target scream_receiver +scream_receiver_OBJECTS = \ +"CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" \ +"CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o" + +# External object files for target scream_receiver +scream_receiver_EXTERNAL_OBJECTS = + +bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o +bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o +bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/build.make +bin/scream_receiver: code/CMakeFiles/scream_receiver.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/scream_receiver" + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/scream_receiver.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +code/CMakeFiles/scream_receiver.dir/build: bin/scream_receiver + +.PHONY : code/CMakeFiles/scream_receiver.dir/build + +code/CMakeFiles/scream_receiver.dir/requires: code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o.requires +code/CMakeFiles/scream_receiver.dir/requires: code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o.requires + +.PHONY : code/CMakeFiles/scream_receiver.dir/requires + +code/CMakeFiles/scream_receiver.dir/clean: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code && $(CMAKE_COMMAND) -P CMakeFiles/scream_receiver.dir/cmake_clean.cmake +.PHONY : code/CMakeFiles/scream_receiver.dir/clean + +code/CMakeFiles/scream_receiver.dir/depend: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/scream_receiver.dir/depend + diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake new file mode 100644 index 0000000..3424e1a --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake @@ -0,0 +1,11 @@ +file(REMOVE_RECURSE + "CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" + "CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o" + "../bin/scream_receiver.pdb" + "../bin/scream_receiver" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/scream_receiver.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal new file mode 100644 index 0000000..15dd4ba --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o + /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.cpp + /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.h + /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamTx.h +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o + /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/ScreamRx.h + /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/scream_receiver.cpp diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make new file mode 100644 index 0000000..6ec4d46 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.cpp +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamRx.h +code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o: code/ScreamTx.h + +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/ScreamRx.h +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o: code/scream_receiver.cpp + diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make new file mode 100644 index 0000000..51f56cd --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIC -fpermissive -pthread -std=c++0x + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/../include -I/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver -I/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code + diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt new file mode 100644 index 0000000..d355ab8 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -fpermissive -pthread CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o -o ../bin/scream_receiver -L/home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/../lib -L/usr/local/lib -rdynamic diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make new file mode 100644 index 0000000..6a9dc74 --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make @@ -0,0 +1,4 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 + diff --git a/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o b/RPI/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b4503a98a7fc89d72ef9d6a7f3b79c2688a918af GIT binary patch literal 23304 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_receiver/code/CMakeLists.txt b/RPI/scream/scream_receiver/code/CMakeLists.txt new file mode 100644 index 0000000..b1a64ce --- /dev/null +++ b/RPI/scream/scream_receiver/code/CMakeLists.txt @@ -0,0 +1,30 @@ +# source files +SET(SRCS +ScreamRx.cpp +scream_receiver.cpp +) + +SET(HEADERS +ScreamRx.h +) + +SET(SRC_1 +${SRCS} +scream_receiver.cpp +) + +INCLUDE_DIRECTORIES( +${screamIncludes} +) + +LINK_DIRECTORIES( +${screamLink} +) + +ADD_EXECUTABLE(scream_receiver ${SRC_1} ${HEADERS}) + + +TARGET_LINK_LIBRARIES ( +scream_receiver +${screamLibs} +) diff --git a/RPI/scream/scream_receiver/code/Makefile b/RPI/scream/scream_receiver/code/Makefile new file mode 100644 index 0000000..26d444d --- /dev/null +++ b/RPI/scream/scream_receiver/code/Makefile @@ -0,0 +1,210 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code/CMakeFiles/progress.marks + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +code/CMakeFiles/scream_receiver.dir/rule: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_receiver.dir/rule +.PHONY : code/CMakeFiles/scream_receiver.dir/rule + +# Convenience name for target. +scream_receiver: code/CMakeFiles/scream_receiver.dir/rule + +.PHONY : scream_receiver + +# fast build rule for target. +scream_receiver/fast: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/build +.PHONY : scream_receiver/fast + +ScreamRx.o: ScreamRx.cpp.o + +.PHONY : ScreamRx.o + +# target to build an object file +ScreamRx.cpp.o: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o +.PHONY : ScreamRx.cpp.o + +ScreamRx.i: ScreamRx.cpp.i + +.PHONY : ScreamRx.i + +# target to preprocess a source file +ScreamRx.cpp.i: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.i +.PHONY : ScreamRx.cpp.i + +ScreamRx.s: ScreamRx.cpp.s + +.PHONY : ScreamRx.s + +# target to generate assembly for a file +ScreamRx.cpp.s: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.s +.PHONY : ScreamRx.cpp.s + +scream_receiver.o: scream_receiver.cpp.o + +.PHONY : scream_receiver.o + +# target to build an object file +scream_receiver.cpp.o: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o +.PHONY : scream_receiver.cpp.o + +scream_receiver.i: scream_receiver.cpp.i + +.PHONY : scream_receiver.i + +# target to preprocess a source file +scream_receiver.cpp.i: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.i +.PHONY : scream_receiver.cpp.i + +scream_receiver.s: scream_receiver.cpp.s + +.PHONY : scream_receiver.s + +# target to generate assembly for a file +scream_receiver.cpp.s: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(MAKE) -f code/CMakeFiles/scream_receiver.dir/build.make code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.s +.PHONY : scream_receiver.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... scream_receiver" + @echo "... ScreamRx.o" + @echo "... ScreamRx.i" + @echo "... ScreamRx.s" + @echo "... scream_receiver.o" + @echo "... scream_receiver.i" + @echo "... scream_receiver.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_receiver/code/ScreamRx.cpp b/RPI/scream/scream_receiver/code/ScreamRx.cpp new file mode 100644 index 0000000..8f43c82 --- /dev/null +++ b/RPI/scream/scream_receiver/code/ScreamRx.cpp @@ -0,0 +1,305 @@ +#include "ScreamRx.h" +#include "ScreamTx.h" +#ifdef _MSC_VER +#define NOMINMAX +#include <WinSock2.h> +#else +#include <arpa/inet.h> +#endif +#include <string.h> +#include <climits> +#include <algorithm> +#include <iostream> +using namespace std; + + +ScreamRx::Stream::Stream(uint32_t ssrc_) { + ssrc = ssrc_; + ackVector = 0; + receiveTimestamp = 0x0; + highestSeqNr = 0x0; + highestSeqNrTx = 0x0; + lastFeedbackT_us = 0; + nRtpSinceLastRtcp = 0; + firstReceived = false; + ecnCeMarkedBytes = 0; +} + +bool ScreamRx::Stream::checkIfFlushAck() { + int diff = highestSeqNr - highestSeqNrTx; + return (diff > (kAckVectorBits / 4)); +} + +void ScreamRx::Stream::receive(uint64_t time_us, + void* rtpPacket, + int size, + uint16_t seqNr, + bool isEcnCe) { + nRtpSinceLastRtcp++; + /* + * Make things wrap-around safe + */ + if (firstReceived == false) { + highestSeqNr = seqNr; + highestSeqNr--; + firstReceived = true; + } + + uint32_t seqNrExt = seqNr; + uint32_t highestSeqNrExt = highestSeqNr; + if (seqNr < highestSeqNr) { + if (highestSeqNr - seqNr > 16384) + seqNrExt += 65536; + } + if (highestSeqNr < seqNr) { + if (seqNr - highestSeqNr > 16384) + highestSeqNrExt += 65536; + } + + /* + * Update the ACK vector that indicates receiption '=1' of RTP packets prior to + * the highest received sequence number. + * The next highest SN is indicated by the least significant bit, + * this means that for the first received RTP, the ACK vector is + * 0x0, for the second received RTP, the ACK vector it is 0x1, for the third 0x3 and so + * on, provided that no packets are lost. + * A 64 bit ACK vector means that it theory it is possible to send one feedback every + * 64 RTP packets, while this can possibly work at low bitrates, it is less likely to work + * at high bitrates because the ACK clocking in SCReAM is disturbed then. + */ + if (seqNrExt >= highestSeqNrExt) { + /* + * Normal in-order reception + */ + uint16_t diff = seqNrExt - highestSeqNrExt; + if (diff != 0) { + if (diff >= kAckVectorBits) { + ackVector = 0x0000; + } + else { + // Fill with potential zeros + ackVector = ackVector << diff; + // Add previous highest seq nr to ack vector + ackVector |= (INT64_C(1) << (diff - 1)); + } + } + highestSeqNr = seqNr; + } + else { + /* + * Out-of-order reception + */ + uint16_t diff = highestSeqNrExt - seqNrExt; + if (diff < kAckVectorBits) { + ackVector = ackVector | (INT64_C(1) << (diff - 1)); + } + } + receiveTimestamp = (uint32_t)(time_us / 1000); + + if (isEcnCe) + ecnCeMarkedBytes += size; +} + +ScreamRx::ScreamRx(uint32_t ssrc_) { + lastFeedbackT_us = 0; + bytesReceived = 0; + lastRateComputeT_us = 0; + averageReceivedRate = 1e5; + rtcpFbInterval_us = 20000; + ssrc = ssrc_; + ix = 0; +} + +bool ScreamRx::checkIfFlushAck() { + if (!streams.empty()) { + for (auto it = streams.begin(); it != streams.end(); ++it) { + if ((*it)->checkIfFlushAck()) + return true; + } + } + return false; +} + +void ScreamRx::receive(uint64_t time_us, + void* rtpPacket, + uint32_t ssrc, + int size, + uint16_t seqNr, + bool isEcnCe) { + bytesReceived += size; + if (lastRateComputeT_us == 0) + lastRateComputeT_us = time_us; + + if (time_us - lastRateComputeT_us > 100000) { + /* + * Media rate computation (for all medias) is done at least every 100ms + * This is used for RTCP feedback rate calculation + */ + float delta = (time_us - lastRateComputeT_us) * 1e-6f; + lastRateComputeT_us = time_us; + averageReceivedRate = std::max(0.95f*averageReceivedRate, bytesReceived * 8 / delta); + bytesReceived = 0; + /* + * The RTCP feedback rate depends on the received media date + * Target ~2% overhead but with feedback interval limited + * to the range [2ms,100ms] + */ + float rate = 0.02*averageReceivedRate / (70.0f * 8.0f); // RTCP overhead + rate = std::min(500.0f, std::max(10.0f, rate)); + /* + * More than one stream ?, increase the feedback rate as + * we currently don't bundle feedback packets + */ + rate *= streams.size(); + rtcpFbInterval_us = uint64_t(1000000.0f / rate); + } + + if (!streams.empty()) { + for (auto it = streams.begin(); it != streams.end(); ++it) { + if ((*it)->isMatch(ssrc)) { + /* + * Packets for this SSRC received earlier + * stream is thus already in list + */ + (*it)->receive(time_us, rtpPacket, size, seqNr, isEcnCe); + return; + + } + } + } + /* + * New {SSRC,PT} + */ + Stream *stream = new Stream(ssrc); + stream->ix = ix++; + stream->receive(time_us, rtpPacket, size, seqNr, isEcnCe); + streams.push_back(stream); +} + + +uint64_t ScreamRx::getRtcpFbInterval() { + return rtcpFbInterval_us; +} + +bool ScreamRx::isFeedback(uint64_t time_us) { + if (!streams.empty()) { + for (auto it = streams.begin(); it != streams.end(); ++it) { + Stream *stream = (*it); + if (stream->nRtpSinceLastRtcp >= 1) { + return true; + } + } + } + return false; +} + +int ScreamRx::getIx(uint32_t ssrc) { + if (!streams.empty()) { + for (auto it = streams.begin(); it != streams.end(); ++it) { + Stream *stream = (*it); + if (ssrc == stream->ssrc) + return stream->ix; + } + } + return -1; +} + +bool ScreamRx::getFeedback(uint64_t time_us, + uint32_t &ssrc, + uint32_t &receiveTimestamp, + uint16_t &highestSeqNr, + uint64_t &ackVector, + uint16_t &ecnCeMarkedBytes) { + + Stream *stream = NULL; + uint64_t minT_us = ULLONG_MAX; + for (auto it = streams.begin(); it != streams.end(); ++it) { + if ((*it)->nRtpSinceLastRtcp > 0 && (*it)->lastFeedbackT_us < minT_us) { + stream = *it; + minT_us = (*it)->lastFeedbackT_us; + + } + } + + if (stream == NULL) + return false; + + receiveTimestamp = stream->receiveTimestamp; + highestSeqNr = stream->highestSeqNr; + stream->highestSeqNrTx = highestSeqNr; + ssrc = stream->ssrc; + ackVector = stream->ackVector; + ecnCeMarkedBytes = stream->ecnCeMarkedBytes; + stream->lastFeedbackT_us = time_us; + stream->nRtpSinceLastRtcp = 0; + lastFeedbackT_us = time_us; + return true; +} + +/* +* Create feedback according to the format below. It is up to the +* wrapper application to prepend this RTCP with SR or RR when needed +* BT = 255, means that this is experimental use +* The code currently only handles one SSRC source per IP packet +* +* 0 1 2 3 +* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* |V=2|P|reserved | PT=XR=207 | length=6 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | BT=255 | reserved | block length=4 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC of source | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Highest recv. seq. nr. (16b) | ECN_CE_bytes | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b0-31) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b32-63) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Timestamp (32bits) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +*/ +bool ScreamRx::createFeedback(uint64_t time_us, unsigned char *buf, int &size) { + + if (!isFeedback(time_us)) + return false; + uint32_t timeStamp; + uint16_t seqNr; + uint64_t ackVector; + uint16_t ecnCeMarkedBytes; + uint32_t ssrc_src; + size = 32; + if (getFeedback(time_us, ssrc_src, timeStamp, seqNr, ackVector, ecnCeMarkedBytes)) { + uint16_t tmp_s; + uint32_t tmp_l; + buf[0] = 0x80; + buf[1] = 207; + tmp_s = htons(6); + memcpy(buf + 2, &tmp_s, 2); + tmp_l = htonl(ssrc); + memcpy(buf + 4, &tmp_l, 4); + buf[8] = 0xFF; // BT=255 + buf[9] = 0x00; + tmp_s = htons(4); + memcpy(buf + 10, &tmp_s, 2); + tmp_l = htonl(ssrc_src); + memcpy(buf + 12, &tmp_l, 4); + tmp_s = htons(seqNr); + memcpy(buf + 16, &tmp_s, 2); + tmp_s = htons(ecnCeMarkedBytes); + memcpy(buf + 18, &tmp_s, 2); + tmp_l = uint32_t((ackVector >> 32) & 0xFFFFFFFF); + tmp_l = htonl(tmp_l); + memcpy(buf + 20, &tmp_l, 4); + tmp_l = uint32_t(ackVector & 0xFFFFFFFF); + tmp_l = htonl(tmp_l); + memcpy(buf + 24, &tmp_l, 4); + tmp_l = htonl(timeStamp); + memcpy(buf + 28, &tmp_l, 4); + return true; + } + return false; +} diff --git a/RPI/scream/scream_receiver/code/ScreamRx.h b/RPI/scream/scream_receiver/code/ScreamRx.h new file mode 100644 index 0000000..f1d9e83 --- /dev/null +++ b/RPI/scream/scream_receiver/code/ScreamRx.h @@ -0,0 +1,146 @@ +#ifndef SCREAM_RX +#define SCREAM_RX +#include <cstdint> +#include <list> +const int kAckVectorBits = 64; + +/* +* This module implements the receiver side of SCReAM. +* As SCReAM is a sender based congestion control, the receiver side is +* actually dumber than dumb. In essense the only thing that it does is to +* + Record receive time stamps and RTP sequence numbers for incoming RTP packets +* + Generate RTCP feedback elements +* + Calculate an appropriate RTCP feedback interval +* See https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf +* for details on how it is integrated in audio/video platforms. +* A full implementation needs the additional code for +* + RTCP feedback (e.g using RFC3611 XR elements) +* + Other obvious stuff such as RTP payload depacketizer, video+audio deoders, rendering, dejitterbuffers +* It is recommended that RTCP feedback for multiple streams are bundled in one RTCP packet. +* However as low bitrate media (e.g audio) requires a lower feedback rate than high bitrate media (e.g video) +* it is possible to include RTCP feedback for the audio stream more seldom. The code for this is T.B.D +*/ +class ScreamRx { +public: + ScreamRx(uint32_t ssrc); // SSRC of this RTCP session + /* + * One instance is created for each source SSRC + */ + class Stream { + public: + Stream(uint32_t ssrc); + + bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; }; + + bool checkIfFlushAck(); + /* + * Receive RTP packet + */ + void receive(uint64_t time_us, + void *rtpPacket, + int size, + uint16_t seqNr, + bool isEcnCe); + + uint32_t ssrc; // SSRC of stream (source SSRC) + uint16_t highestSeqNr; // Highest received sequence number + uint16_t highestSeqNrTx; // Highest fed back sequence number + uint32_t receiveTimestamp; // Wall clock time + uint64_t ackVector; // List of received packets + uint16_t ecnCeMarkedBytes; // Number of ECN-CE marked bytes + // (i.e size of RTP packets with CE set in IP header) + + uint64_t lastFeedbackT_us; // Last time feedback transmitted for + // this SSRC + int nRtpSinceLastRtcp; // Number of RTP packets since last transmitted RTCP + + bool firstReceived; + + float timeStampConversionFactor; + + int ix; + }; + + /* + * Check to ensure that ACK vector can cover also large holes in + * in the received sequence number space. These cases can frequently occur when + * SCReAM is used in frame discard mode i.e. when real video rate control is + * not possible + */ + bool checkIfFlushAck(); + + /* + * Function is called each time an RTP packet is received + */ + void receive(uint64_t time_us, + void* rtpPacket, + uint32_t ssrc, + int size, + uint16_t seqNr, + bool isEcnCe = false); + + /* + * Return TRUE if an RTP packet has been received and there is + * pending feedback + */ + bool isFeedback(uint64_t time_us); + + uint64_t getRtcpFbInterval(); + + /* + * Get SCReAM RTCP feedback elements + * return FALSE if no pending feedback available + */ + bool getFeedback(uint64_t time_us, + uint32_t &ssrc, + uint32_t &receiveTimestamp, + uint16_t &highestSeqNr, + uint64_t &ackVector, + uint16_t &ecnCeMarkedBytes); + + /* + * Create feedback according to the format below. It is up to the + * wrapper application to prepend this RTCP with SR or RR when needed + * BT = 255, means that this is experimental use + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |V=2|P|reserved | PT=XR=207 | length=6 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | BT=255 | reserved | block length=4 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC of source | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Highest recv. seq. nr. (16b) | ECN_CE_bytes | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b0-31) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b32-63) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Timestamp (32bits) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + bool createFeedback(uint64_t time_us, unsigned char *buf, int &size); + + uint64_t getLastFeedbackT() { return lastFeedbackT_us; }; + + uint64_t lastFeedbackT_us; + int bytesReceived; + uint64_t lastRateComputeT_us; + float averageReceivedRate; + uint64_t rtcpFbInterval_us; + uint32_t ssrc; + + int getIx(uint32_t ssrc); + int ix; + + /* + * Variables for multiple steams handling + */ + std::list<Stream*> streams; +}; + +#endif diff --git a/RPI/scream/scream_receiver/code/ScreamTx.cpp b/RPI/scream/scream_receiver/code/ScreamTx.cpp new file mode 100644 index 0000000..9017d69 --- /dev/null +++ b/RPI/scream/scream_receiver/code/ScreamTx.cpp @@ -0,0 +1,1859 @@ +#include "RtpQueue.h" +#include "ScreamTx.h" +#include "ScreamRx.h" +#ifdef _MSC_VER +#define NOMINMAX +#include <winSock2.h> +#else +#include <arpa/inet.h> +#endif +#include <cstdint> +#include <cmath> +#include <string.h> +#include <iostream> +#include <algorithm> +#include <stdio.h> +#include <stdlib.h> +#include <math.h> + +// === Some good to have features, SCReAM works also +// with these disabled +// Fast start can resume if little or no congestion detected +static const bool kEnableConsecutiveFastStart = true; +// Packet pacing reduces jitter +static const bool kEnablePacketPacing = true; +static const float kPacketPacingHeadRoom = 1.25f; + +// Rate update interval +static const uint64_t kRateAdjustInterval_us = 200000; // 200ms + +// ==== Less important tuning parameters ==== +// Min pacing interval and min pacing rate +static const float kMinPaceInterval = 0.000f; +static const float kMinimumBandwidth = 5000.0f; // bps +// Initial MSS, this is set quite low in order to make it possible to +// use SCReAM with audio only +static const int kInitMss = 100; + +// Min and max queue delay target +static const float kQueueDelayTargetMax = 0.3f; //ms + +// Congestion window validation +static const float kBytesInFlightHistInterval_us = 1000000; // Time (s) between stores 1s +static const float kMaxBytesInFlightHeadRoom = 1.1f; +// Queue delay trend and shared bottleneck detection +static const uint64_t kQueueDelayFractionHistInterval_us = 50000; // 50ms +// video rate estimation update period +static const uint64_t kRateUpdateInterval_us = 50000; // 50ms + +// Packet reordering margin (us) +static const uint64_t kReorderTime_us = 20000; +static const uint64_t kMinRtpQueueDiscardInterval_us = 1000000; + +// Update interval for base delay history +static const uint64_t kBaseDelayUpdateInterval_us = 10000000; + +// Min CWND in MSS +static int kMinCwndMss = 3; + +ScreamTx::ScreamTx(float lossBeta_, + float ecnCeBeta_, + float queueDelayTargetMin_, + bool enableSbd_, + float gainUp_, + float gainDown_, + int cwnd_, + float cautiousPacing_, + int bytesInFlightHistSize_, + bool openWindow_ + ) + : sRttSh_us(0), + lossBeta(lossBeta_), + ecnCeBeta(ecnCeBeta_), + queueDelayTargetMin(queueDelayTargetMin_), + enableSbd(enableSbd_), + gainUp(gainUp_), + gainDown(gainDown_), + cautiousPacing(cautiousPacing_), + bytesInFlightHistSize(bytesInFlightHistSize_), + openWindow(openWindow_), + sRtt_us(0), + sRtt(0.0f), + ackedOwd(0), + baseOwd(UINT32_MAX), + queueDelay(0.0), + queueDelayFractionAvg(0.0), + queueDelayTrend(0.0), + queueDelayTarget(queueDelayTargetMin), + queueDelaySbdVar(0.0), + queueDelaySbdMean(0.0), + queueDelaySbdMeanSh(0.0), + + bytesNewlyAcked(0), + mss(kInitMss), + cwnd(kInitMss * 2), + cwndMin(kInitMss * 2), + lastBytesInFlightT_us(0), + bytesInFlightMaxLo(0), + bytesInFlightMaxHi(0), + bytesInFlightHistLoMem(0), + bytesInFlightHistHiMem(0), + maxBytesInFlight(0.0f), + + lossEvent(false), + wasLossEvent(false), + lossEventRate(0.0), + ecnCeEvent(false), + + inFastStart(true), + + paceInterval_us(0), + paceInterval(0.0), + rateTransmittedAvg(0.0), + + isInitialized(false), + lastSRttUpdateT_us(0), + lastBaseOwdAddT_us(0), + baseOwdResetT_us(0), + lastAddToQueueDelayFractionHistT_us(0), + lastLossEventT_us(0), + lastTransmitT_us(0), + nextTransmitT_us(0), + lastRateUpdateT_us(0), + accBytesInFlightMax(0), + nAccBytesInFlightMax(0), + rateTransmitted(0.0f), + rateAcked(0.0f), + queueDelayTrendMem(0.0f), + lastCwndUpdateT_us(0), + bytesInFlight(0), + lastBaseDelayRefreshT_us(0), + maxRate(0.0f), + baseOwdHistMin(UINT32_MAX) +{ + if (cwnd_ == 0) { + cwnd = kInitMss * 2; + } + else { + cwnd = cwnd_; + } + if (openWindow) { + cwndMin = 10000000; + cwnd = cwndMin; + } + + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHist[n] = UINT32_MAX; + baseOwdHistPtr = 0; + for (int n = 0; n < kQueueDelayFractionHistSize; n++) + queueDelayFractionHist[n] = 0.0f; + queueDelayFractionHistPtr = 0; + for (int n = 0; n < kQueueDelayNormHistSize; n++) + queueDelayNormHist[n] = 0.0f; + queueDelayNormHistPtr = 0; + for (int n = 0; n < kBytesInFlightHistSizeMax; n++) { + bytesInFlightHistLo[n] = 0; + bytesInFlightHistHi[n] = 0; + } + bytesInFlightHistPtr = 0; + nStreams = 0; + for (int n = 0; n < kMaxStreams; n++) + streams[n] = NULL; + + queueDelayMax = 0.0f; + queueDelayMinAvg = 0.0f; + queueDelayMin = 1000.0; + + statistics = new Statistics(); +} + +ScreamTx::~ScreamTx() { + for (int n = 0; n < nStreams; n++) + delete streams[n]; + delete statistics; +} + +ScreamTx::Statistics::Statistics() { + sumRateTx = 0.0f; + sumRateLost = 0.0f; + avgRateTx = 0.0f; + avgRtt = 0.0f; + avgQueueDelay = 0.0f; + rateLostAcc = 0.0f; + rateLostN = 0; + for (int n = 0; n < kLossRateHistSize; n++) { + lossRateHist[n] = 0.0f; + } + lossRateHistPtr = 0; +} + +void ScreamTx::Statistics::add(float rateTx, float rateLost, float rtt, float queueDelay) { + const float alpha = 0.98f; + sumRateTx += rateTx; + sumRateLost += rateLost; + if (avgRateTx == 0.0f) { + avgRateTx = rateTx; + avgRtt = rtt; + avgQueueDelay = queueDelay; + } + else { + avgRateTx = alpha*avgRateTx + (1.0f - alpha)*rateTx; + rateLostAcc += rateLost; + rateLostN++; + if (rateLostN == 10) { + rateLostAcc /= 10; + rateLostN = 0; + float lossRate = 0.0f; + if (rateTx > 0) + lossRate = rateLostAcc / rateTx*100.0f; + lossRateHist[lossRateHistPtr] = lossRate; + lossRateHistPtr = (lossRateHistPtr + 1) % kLossRateHistSize; + } + avgRtt = alpha*avgRtt + (1.0f - alpha)*rtt; + avgQueueDelay = alpha*avgQueueDelay + (1.0f - alpha)*queueDelay; + } +} + +void ScreamTx::Statistics::getSummary(float time, char s[]) { + float lossRate = 0.0f; + for (int n = 0; n < kLossRateHistSize; n++) + lossRate += lossRateHist[n]; + lossRate /= kLossRateHistSize; + float lossRateLong = 0.0f; + if (sumRateTx > 100000.0f) { + lossRateLong = sumRateLost / sumRateTx*100.0f; + } + sprintf(s, "%5.1f Transmit rate = %5.0fkbps, PLR = %5.2f%%(%5.2f%%), RTT = %5.3fs, Queue delay = %5.3fs", + time, + avgRateTx / 1000.0f, + lossRate, + lossRateLong, + avgRtt, + avgQueueDelay); +} + +/* +* Register new stream +*/ +void ScreamTx::registerNewStream(RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, + float minBitrate, + float startBitrate, + float maxBitrate, + float rampUpSpeed, + float maxRtpQueueDelay, + float txQueueSizeFactor, + float queueDelayGuard, + float lossEventRateScale, + float ecnCeEventRateScale) { + Stream *stream = new Stream(this, + rtpQueue, + ssrc, + priority, + minBitrate, + startBitrate, + maxBitrate, + rampUpSpeed, + maxRtpQueueDelay, + txQueueSizeFactor, + queueDelayGuard, + lossEventRateScale, + ecnCeEventRateScale); + streams[nStreams++] = stream; +} + +void ScreamTx::updateBitrateStream(uint32_t ssrc, + float minBitrate, + float maxBitrate) { + Stream *stream = getStream(ssrc); + stream->minBitrate = minBitrate; + stream->maxBitrate = maxBitrate; +} + +RtpQueueIface * ScreamTx::getStreamQueue(uint32_t ssrc) { + Stream* stream = getStream(ssrc); + return stream->rtpQueue; +} + + +/* +* New media frame +*/ +void ScreamTx::newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp) { + if (!isInitialized) initialize(time_us); + + Stream *stream = getStream(ssrc); + stream->updateTargetBitrate(time_us); + if (time_us - lastCwndUpdateT_us < 500000) { + /* + * We expect feedback at least every 500ms + * to update the target rate. + */ + stream->updateTargetBitrate(time_us); + } + if (time_us - lastBaseDelayRefreshT_us < sRtt_us * 2) { + /* + * _Very_ long periods of congestion can cause the base delay to increase + * with the effect that the queue delay is estimated wrong, therefore we seek to + * refresh the whole thing by deliberately allowing the network queue to drain + * Clear the RTP queue for 2 RTTs, this will allow the queue to drain so that we + * get a good estimate for the min queue delay. + * This funtion is executed very seldom so it should not affect overall experience too much + */ + stream->rtpQueue->clear(); + } + else { + stream->bytesRtp += bytesRtp; + /* + * Need to update MSS here, otherwise it will be nearly impossible to + * transmit video packets, this because of the small initial MSS + * which is necessary to make SCReAM work with audio only + */ + int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp(); + mss = std::max(mss, sizeOfNextRtp); + if (!openWindow) + cwndMin = 2 * mss; + cwnd = max(cwnd, cwndMin); + } +} + +/* +* Determine if OK to transmit RTP packet +*/ +float ScreamTx::isOkToTransmit(uint64_t time_us, uint32_t &ssrc) { + if (!isInitialized) initialize(time_us); + /* + * Update rateTransmitted and rateAcked if time for it + * This is used in video rate computation + * The update interval is doubled at very low bitrates, + * the reason is that the feedback interval is very low then and + * a longer window is needed to avoid aliasing effects + */ + uint64_t tmp = kRateUpdateInterval_us; + + if (rateAcked < 50000.0f) { + tmp *= 2; + } + + if (time_us - lastRateUpdateT_us > tmp) { + rateTransmitted = 0.0; + rateAcked = 0.0; + for (int n = 0; n < nStreams; n++) { + streams[n]->updateRate(time_us); + rateTransmitted += streams[n]->rateTransmitted; + rateTransmittedAvg = 0.8*rateTransmittedAvg + 0.2*rateTransmitted; + rateAcked += streams[n]->rateAcked; + if (n == 0) + statistics->add(streams[0]->rateTransmitted, streams[0]->rateLost, sRtt, queueDelay); + } + lastRateUpdateT_us = time_us; + /* + * Adjust stream priorities + */ + adjustPriorities(time_us); + + /* + * Update maxRate + */ + maxRate = 0.0f; + for (int n = 0; n < nStreams; n++) + maxRate += streams[n]->getMaxRate(); + } + + /* + * Get index to the prioritized RTP queue + */ + Stream* stream = getPrioritizedStream(time_us); + + if (stream == NULL) + /* + * No RTP packets to transmit + */ + return -1.0f; + ssrc = stream->ssrc; + + bytesInFlightMaxHi = std::max(bytesInFlight, bytesInFlightMaxHi); + + /* + * Update bytes in flight history for congestion window validation + */ + if (time_us - lastBytesInFlightT_us > kBytesInFlightHistInterval_us) { + bytesInFlightMaxLo = 0; + if (nAccBytesInFlightMax > 0) { + bytesInFlightMaxLo = accBytesInFlightMax / nAccBytesInFlightMax; + } + bytesInFlightHistLo[bytesInFlightHistPtr] = bytesInFlightMaxLo; + bytesInFlightHistHi[bytesInFlightHistPtr] = bytesInFlightMaxHi; + bytesInFlightHistPtr = (bytesInFlightHistPtr + 1) % bytesInFlightHistSize; + lastBytesInFlightT_us = time_us; + accBytesInFlightMax = 0; + nAccBytesInFlightMax = 0; + bytesInFlightMaxHi = 0; + bytesInFlightHistLoMem = 0; + bytesInFlightHistHiMem = 0; + for (int n = 0; n < bytesInFlightHistSize; n++) { + bytesInFlightHistLoMem = std::max(bytesInFlightHistLoMem, bytesInFlightHistLo[n]); + bytesInFlightHistHiMem = std::max(bytesInFlightHistHiMem, bytesInFlightHistHi[n]); + } + + /* + * In addition, reset MSS, this is useful in case for instance + * a video stream is put on hold, leaving only audio packets to be + * transmitted + */ + mss = kInitMss; + if (!openWindow) + cwndMin = kMinCwndMss * mss; + cwnd = max(cwnd, cwndMin); + } + + int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp(); + if (sizeOfNextRtp == -1){ + return -1.0f; + } + /* + * Determine if window is large enough to transmit + * an RTP packet + */ + bool exit = false; + if (queueDelay < queueDelayTarget) + exit = (bytesInFlight + sizeOfNextRtp) > cwnd + mss; + else + exit = (bytesInFlight + sizeOfNextRtp) > cwnd; + /* + * Enforce packet pacing + */ + float retVal = 0.0f; + if (kEnablePacketPacing && nextTransmitT_us > time_us){ + retVal = (nextTransmitT_us - time_us) * 1e-6f; + } + + /* + * A retransmission time out mechanism to avoid deadlock + */ + if (time_us - lastTransmitT_us > 500000 && lastTransmitT_us < time_us) { // 200ms + for (int n = 0; n < kMaxTxPackets; n++) { + stream->txPackets[n].isUsed = false; + } + bytesInFlight = 0; + exit = false; + retVal = 0.0f; + } + + if (!exit) { + /* + * Return value 0.0 = RTP packet can be immediately transmitted + */ + return retVal; + } + + return -1.0f; +} + +/* +* RTP packet transmitted +*/ +float ScreamTx::addTransmitted(uint64_t time_us, + uint32_t ssrc, + int size, + uint16_t seqNr) { + if (!isInitialized) + initialize(time_us); + + Stream *stream = getStream(ssrc); + + int ix = seqNr % kMaxTxPackets; + Transmitted *txPacket = &(stream->txPackets[ix]); + if (txPacket->isUsed) { + /* + * This event should occur quite rarely. + * The most likely reason is that thoughput has dropped + * considerably. + * Therefore we clean the list and set cwnd and bitrate low + */ + for (int n = 0; n < kMaxTxPackets; n++) { + stream->txPackets[n].isUsed = false; + } + bytesInFlight = 0;//-= txPacket->size; + cwnd = cwndMin; + stream->targetBitrate = stream->minBitrate; + } + stream->hiSeqTx = seqNr; + txPacket->timestamp = (uint32_t)(time_us / 1000); + txPacket->timeTx_us = time_us; + txPacket->size = size; + txPacket->seqNr = seqNr; + txPacket->isUsed = true; + txPacket->isAcked = false; + txPacket->isAfterReceivedEdge = false; + + /* + * Update bytesInFlight + */ + bytesInFlight += size; + + stream->bytesTransmitted += size; + lastTransmitT_us = time_us; + /* + * Add credit to unserved streams + */ + addCredit(time_us, stream, size); + /* + * Reduce used credit for served stream + */ + subtractCredit(time_us, stream, size); + + /* + * Update MSS and cwndMin + */ + mss = std::max(mss, size); + if (!openWindow) + cwndMin = 2 * mss; + cwnd = max(cwnd, cwndMin); + + /* + * Determine when next RTP packet can be transmitted + */ + if (kEnablePacketPacing) + nextTransmitT_us = time_us + paceInterval_us; + else + nextTransmitT_us = time_us; + + return paceInterval; +} + +/* +* Parse feedback according to the format below. It is up to the +* wrapper application this RTCP from a compound RTCP if needed +* BT = 255, means that this is experimental use. +* The code currently only handles one SSRC source per IP packet +* +* 0 1 2 3 +* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* |V=2|P|reserved | PT=XR=207 | length=6 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | BT=255 | reserved | block length=4 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC of source | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Highest recv. seq. nr. (16b) | ECN_CE_bytes | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b0-31) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b32-63) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Timestamp (32bits) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +*/ +void ScreamTx::incomingFeedback(uint64_t time_us, + unsigned char* buf, + int size) { + if (!(size == 32 && buf[0] == 0x80 && buf[1] == 207 && buf[8] == 255)) { + // This does not seem as a valid size, exit function + return; + } + uint32_t tmp_l_1; + uint16_t tmp_s; + uint32_t tmp_l_2; + uint32_t timeStamp; + uint16_t seqNr; + uint64_t ackVector; + uint16_t ecnCeMarkedBytes; + uint32_t ssrc; + uint16_t rawSeq; + memcpy(&tmp_l_1, buf + 12, 4); + ssrc = ntohl(tmp_l_1); + memcpy(&seqNr, buf + 16, 2); + seqNr = ntohs(seqNr); + memcpy(&ecnCeMarkedBytes, buf + 18, 2); + ecnCeMarkedBytes = ntohs(ecnCeMarkedBytes); + memcpy(&tmp_l_1, buf + 20, 4); + memcpy(&tmp_l_2, buf + 24, 4); + tmp_l_1 = ntohl(tmp_l_1); + tmp_l_2 = ntohl(tmp_l_2); + ackVector = ((uint64_t(tmp_l_1)) << 32) | tmp_l_2; + memcpy(&timeStamp, buf + 28, 4); + timeStamp = ntohl(timeStamp); + incomingFeedback(time_us, ssrc, timeStamp, seqNr, ackVector, ecnCeMarkedBytes); +} +/* +* New incoming feedback +*/ +void ScreamTx::incomingFeedback(uint64_t time_us, + uint32_t ssrc, + uint32_t timestamp, + uint16_t highestSeqNr, + uint64_t ackVector, + uint16_t ecnCeMarkedBytes) { + + if (!isInitialized) initialize(time_us); + Stream *stream = getStream(ssrc); + if (stream == 0) { + // Bogus RTCP?, the SSRC is wrong anyway, Skip + return; + } + + uint16_t diff = highestSeqNr - stream->hiSeqAck; + if (diff > 65000 && stream->hiSeqAck != 0 && stream->timeTxAck_us != 0) { + /* + * Out of order received ACKs are ignored + */ + return; + } + accBytesInFlightMax += bytesInFlight; + nAccBytesInFlightMax++; + Transmitted *txPackets = stream->txPackets; + /* + * Mark received packets, given by the ACK vector + */ + markAcked(time_us, txPackets, highestSeqNr, ackVector, timestamp, stream); + + /* + * Detect lost pakcets + */ + detectLoss(time_us, txPackets, highestSeqNr, stream); + + if (ecnCeMarkedBytes != stream->ecnCeMarkedBytes && time_us - lastLossEventT_us > sRtt_us) { + ecnCeEvent = true; + lastLossEventT_us = time_us; + } + stream->ecnCeMarkedBytes = ecnCeMarkedBytes; + + if (lossEvent || ecnCeEvent) { + lastLossEventT_us = time_us; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (lossEvent) + tmp->lossEventFlag = true; + else + tmp->ecnCeEventFlag = true; + } + } + + if (lastCwndUpdateT_us == 0) + lastCwndUpdateT_us = time_us; + + if (time_us - lastCwndUpdateT_us > 10000) { + /* + * There is no gain with a too frequent CWND update + * An update every 10ms is fast enough even at very high high bitrates + */ + updateCwnd(time_us); + lastCwndUpdateT_us = time_us; + } +} + +/* +* Mark ACKed RTP packets +*/ +void ScreamTx::markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream) { + /* + * Loop only through the packets that are covered by the last highest ACK, this saves complexity + */ + int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets; + int ix0 = stream->hiSeqAck + 1; + if (ix0 < 0) ix0 += kMaxTxPackets; + while (ix1 < ix0) + ix1 += kMaxTxPackets; + for (int m = ix0; m <= ix1; m++) { + int n = m % kMaxTxPackets; + /* + * Loop through TX packets + */ + if (txPackets[n].isUsed) { + /* + * RTP packet is in flight + */ + Transmitted *tmp = &txPackets[n]; + + /* + * Compute SN difference + */ + uint16_t diff = highestSeqNr - tmp->seqNr; + diff -= 1; + + if (diff <= kAckVectorBits) { + if (ackVector & (INT64_C(1) << diff)) { + /* + * SN marked as received + */ + tmp->isAcked = true; + } + } + + /* + * Receiption of packet given by highestSeqNr + */ + if (tmp->seqNr == highestSeqNr) { + tmp->isAcked = true; + ackedOwd = timestamp - tmp->timestamp; + /* + * Compute the queue delay + */ + uint32_t qDel = estimateOwd(time_us); + qDel -= getBaseOwd(); + + /* + * Convert from [jiffy] OWD to an OWD in [s] + */ + queueDelay = qDel / kTimestampRate; + + uint64_t rtt = time_us - tmp->timeTx_us; + + sRttSh_us = (7 * sRttSh_us + rtt) / 8; + if (time_us - lastSRttUpdateT_us > sRttSh_us) { + sRtt_us = (7 * sRtt_us + sRttSh_us) / 8; + lastSRttUpdateT_us = time_us; + sRtt = sRtt_us*1e-6f; + } + stream->timeTxAck_us = tmp->timeTx_us; + } + } + } +} + +/* +* Detect lost RTP packets +*/ +void ScreamTx::detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream) { + /* + * Loop only through the packets that are covered by the last highest ACK, this saves complexity + * There is a faint possibility that we miss to detect large bursts of lost packets with this fix + */ + int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets; + int ix0 = stream->hiSeqAck + 1; + stream->hiSeqAck = highestSeqNr; + if (ix0 < 0) ix0 += kMaxTxPackets; + while (ix1 < ix0) + ix1 += kMaxTxPackets; + + /* + * Mark packets outside the 64 bit ACK vector range as forever lost + */ + if (stream->lastLossDetectIx >= 0) { + int ix0_ = ix0; + if (stream->lastLossDetectIx > ix0_) ix0_ += kMaxTxPackets; + for (int m = stream->lastLossDetectIx; m < ix0_; m++) { + int n = m % kMaxTxPackets; + if (txPackets[n].isUsed) { + Transmitted *tmp = &txPackets[n]; + if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) { + lossEvent = true; + } + stream->bytesLost += tmp->size; + tmp->isUsed = false; + stream->repairLoss = true; + } + } + } + stream->lastLossDetectIx = ix0; + + /* + * Mark late packets as lost + */ + for (int m = ix0; m <= ix1; m++) { + int n = m % kMaxTxPackets; + /* + * Loop through TX packets + */ + if (txPackets[n].isUsed) { + Transmitted *tmp = &txPackets[n]; + /* + * RTP packet is in flight + */ + /* + * Wrap-around safety net + */ + uint32_t seqNrExt = tmp->seqNr; + uint32_t highestSeqNrExt = highestSeqNr; + if (seqNrExt < highestSeqNrExt && highestSeqNrExt - seqNrExt > 20000) + seqNrExt += 65536; + else if (seqNrExt > highestSeqNrExt && seqNrExt - highestSeqNrExt > 20000) + highestSeqNrExt += 65536; + + /* + * RTP packets with a sequence number lower + * than or equal to the highest received sequence number + * are treated as received even though they are not + * This advances the send window, similar to what + * SACK does in TCP + */ + if (seqNrExt <= highestSeqNrExt && tmp->isAfterReceivedEdge == false) { + bytesNewlyAcked += tmp->size; + bytesInFlight -= tmp->size; + if (bytesInFlight < 0) + bytesInFlight = 0; + stream->bytesAcked += tmp->size; + tmp->isAfterReceivedEdge = true; + } + + if (tmp->timeTx_us + kReorderTime_us < stream->timeTxAck_us && !tmp->isAcked) { + /* + * Packet ACK is delayed more than kReorderTime_us after an ACK of a higher SN packet + * raise a loss event and remove from TX list + */ + if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) { + lossEvent = true; + } + stream->bytesLost += tmp->size; + tmp->isUsed = false; + stream->repairLoss = true; + } + else if (tmp->isAcked) { + tmp->isUsed = false; + } + } + } + +} + +float ScreamTx::getTargetBitrate(uint32_t ssrc) { + return getStream(ssrc)->getTargetBitrate(); +} + +void ScreamTx::setTargetPriority(uint32_t ssrc, float priority) { + Stream *stream = getStream(ssrc); + if (queueDelayTrend > 0.02) { + stream->targetBitrate *= priority / stream->targetPriority; + stream->targetBitrate = std::min(std::max(stream->targetBitrate, stream->minBitrate), stream->maxBitrate); + } + stream->targetPriority = priority; + stream->targetPriorityInv = 1.0f / priority; +} + +void ScreamTx::getLog(float time, char *s) { + int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem); + sprintf(s, "%4.3f, %4.3f, %4.3f, %4.3f, %6d, %6d, %6.0f, %1d, ", + queueDelay, queueDelayMax, queueDelayMinAvg, sRtt, + cwnd, bytesInFlight, rateTransmitted / 1000.0f, isInFastStart()); + + queueDelayMax = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + char s2[200]; + sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %6.0f, %5.0f, %5d, ", + std::max(0.0f, tmp->rtpQueue->getDelay(time)), + tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f, + tmp->rateTransmitted / 1000.0f, tmp->rateAcked / 1000.0f, + tmp->rateLost / 1000.0f, + tmp->hiSeqAck); + strcat(s, s2); + } +} + +void ScreamTx::getShortLog(float time, char *s) { + int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem); + sprintf(s, "%4.3f, %4.3f, %6d, %6d, %6.0f, ", + queueDelayMax, sRtt, + cwnd, bytesInFlight, rateTransmitted / 1000.0f); + + queueDelayMax = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + char s2[200]; + sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %5.0f, ", + std::max(0.0f, tmp->rtpQueue->getDelay(time)), + tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f, + tmp->rateTransmitted / 1000.0f, + tmp->rateLost / 1000.0f); + strcat(s, s2); + } +} + +void ScreamTx::getStatistics(float time, char *s) { + statistics->getSummary(time, s); +} + +void ScreamTx::initialize(uint64_t time_us) { + isInitialized = true; + lastSRttUpdateT_us = time_us; + lastBaseOwdAddT_us = time_us; + baseOwdResetT_us = time_us; + lastAddToQueueDelayFractionHistT_us = time_us; + lastLossEventT_us = time_us; + lastTransmitT_us = time_us; + nextTransmitT_us = time_us; + lastRateUpdateT_us = time_us; + lastAdjustPrioritiesT_us = time_us; + lastRttT_us = time_us; + lastBaseDelayRefreshT_us = time_us + 1000000; + initTime_us = time_us; +} + +/* +* Update the congestion window +*/ +void ScreamTx::updateCwnd(uint64_t time_us) { + float dT = 0.001; + if (lastCwndUpdateT_us == 0) + lastCwndUpdateT_us = time_us; + else + dT = (time_us - lastCwndUpdateT_us) * 1e-6f; + + /* + * This adds a limit to how much the CWND can grow, it is particularly useful + * in case of short gliches in the transmission, in which a large chunk of data is delivered + * in a burst with the effect that the estimated queue delay is low because it typically depict the queue + * delay for the last non-delayed RTP packet. The rule is that the CWND cannot grow faster + * than the 1.25 times the average amount of bytes that transmitted in the given feedback interval + */ + float bytesNewlyAckedLimited = bytesNewlyAcked; + if (maxRate > 1.0e5f) + bytesNewlyAckedLimited = std::min(bytesNewlyAckedLimited, 1.25f*maxRate*dT / 8.0f); + else + bytesNewlyAckedLimited = 2.0f*mss; + + queueDelayMin = std::min(queueDelayMin, queueDelay); + + queueDelayMax = std::max(queueDelayMax, queueDelay); + + float time = time_us*1e-6; + if (queueDelayMinAvg > 0.25f*queueDelayTarget && time_us - baseOwdResetT_us > 20000000) { + /* + * The base OWD is likely wrong, for instance due to + * a channel change or clock drift, reset base OWD history + */ + queueDelayMinAvg = 0.0f; + queueDelay = 0.0f; + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHist[n] = UINT32_MAX; + baseOwd = UINT32_MAX; + baseOwdHistMin = UINT32_MAX; + baseOwdResetT_us = time_us; + } + /* + * An averaged version of the queue delay fraction + * neceassary in order to make video rate control robust + * against jitter + */ + queueDelayFractionAvg = 0.9f*queueDelayFractionAvg + 0.1f*getQueueDelayFraction(); + + /* + * Less frequent updates here + * + Compute pacing interval + * + Save to queue delay fraction history + * used in computeQueueDelayTrend() + * + Update queueDelayTarget + */ + if ((time_us - lastAddToQueueDelayFractionHistT_us) > + kQueueDelayFractionHistInterval_us) { + + /* + * compute paceInterval, we assume a min bw of 50kbps and a min tp of 1ms + * for stable operation + * this function implements the packet pacing + */ + paceInterval = kMinPaceInterval; + if (queueDelayFractionAvg > 0.05f && kEnablePacketPacing) { + /* + * The cautiousPacing parameter restricts transmission of large key frames when the parameter is set to a value closer to 1.0 + */ + float pacingBitrate = (1.0 - cautiousPacing)*cwnd * 8.0f / std::max(0.001f, sRtt) + cautiousPacing*rateTransmittedAvg; + pacingBitrate = kPacketPacingHeadRoom*std::max(kMinimumBandwidth, pacingBitrate); + float tp = (mss * 8.0f) / pacingBitrate; + paceInterval = std::max(kMinPaceInterval, tp); + } + paceInterval_us = (uint64_t)(paceInterval * 1000000); + + if (queueDelayMin < queueDelayMinAvg) + queueDelayMinAvg = queueDelayMin; + else + queueDelayMinAvg = 0.001f*queueDelayMin + 0.999f*queueDelayMinAvg; + queueDelayMin = 1000.0f; + /* + * Need to duplicate insertion incase the feedback is sparse + */ + int nIter = (int)(time_us - lastAddToQueueDelayFractionHistT_us) / kQueueDelayFractionHistInterval_us; + for (int n = 0; n < nIter; n++) { + queueDelayFractionHist[queueDelayFractionHistPtr] = getQueueDelayFraction(); + queueDelayFractionHistPtr = (queueDelayFractionHistPtr + 1) % kQueueDelayFractionHistSize; + } + + if (time_us - initTime_us > 2000000) { + /* + * Queue delay trend calculations are reliable after ~2s + */ + computeQueueDelayTrend(); + } + + queueDelayTrendMem = std::max(queueDelayTrendMem*0.98f, queueDelayTrend); + + /* + * Compute bytes in flight limitation + */ + int maxBytesInFlightHi = (int)(std::max(bytesInFlightMaxHi, bytesInFlightHistHiMem)); + int maxBytesInFlightLo = (int)(std::max(bytesInFlight, bytesInFlightHistLoMem)); + + float alpha = std::max(queueDelayTrend, cautiousPacing); + maxBytesInFlight = + (maxBytesInFlightHi*(1.0f - alpha) + maxBytesInFlightLo*alpha)* + kMaxBytesInFlightHeadRoom; + + if (enableSbd) { + /* + * Shared bottleneck detection, + */ + float queueDelayNorm = queueDelay / queueDelayTargetMin; + queueDelayNormHist[queueDelayNormHistPtr] = queueDelayNorm; + queueDelayNormHistPtr = (queueDelayNormHistPtr + 1) % kQueueDelayNormHistSize; + /* + * Compute shared bottleneck detection and update queue delay target + * if queue dela variance is sufficienctly low + */ + computeSbd(); + /* + * This function avoids the adjustment of queueDelayTarget when + * congestion occurs (indicated by high queueDelaydSbdVar and queueDelaySbdSkew) + */ + float oh = queueDelayTargetMin*(queueDelaySbdMeanSh + sqrt(queueDelaySbdVar)); + if (lossEventRate > 0.002 && queueDelaySbdMeanSh > 0.5 && queueDelaySbdVar < 0.2) { + queueDelayTarget = std::min(kQueueDelayTargetMax, oh*1.5f); + } + else { + if (queueDelaySbdVar < 0.2 && queueDelaySbdSkew < 0.05) { + queueDelayTarget = std::max(queueDelayTargetMin, std::min(kQueueDelayTargetMax, oh)); + } + else { + if (oh < queueDelayTarget) + queueDelayTarget = std::max(queueDelayTargetMin, std::max(queueDelayTarget*0.99f, oh)); + else + queueDelayTarget = std::max(queueDelayTargetMin, queueDelayTarget*0.999f); + } + } + } + lastAddToQueueDelayFractionHistT_us = time_us; + } + /* + * offTarget is a normalized deviation from the queue delay target + */ + float offTarget = (queueDelayTarget - queueDelay) / float(queueDelayTarget); + + if (lossEvent) { + /* + * loss event detected, decrease congestion window + */ + cwnd = std::max(cwndMin, (int)(lossBeta*cwnd)); + lossEvent = false; + lastCongestionDetectedT_us = time_us; + + inFastStart = false; + wasLossEvent = true; + } + else if (ecnCeEvent) { + /* + * loss event detected, decrease congestion window + */ + cwnd = std::max(cwndMin, (int)(ecnCeBeta*cwnd)); + ecnCeEvent = false; + lastCongestionDetectedT_us = time_us; + + inFastStart = false; + wasLossEvent = true; + } + else { + + if (time_us - lastRttT_us > sRtt_us) { + if (wasLossEvent) + lossEventRate = 0.99f*lossEventRate + 0.01f; + else + lossEventRate *= 0.99f; + wasLossEvent = false; + lastRttT_us = time_us; + } + + if (inFastStart) { + /* + * In fast start + */ + if (queueDelayTrend < 0.2) { + /* + * CWND is increased by the number of ACKed bytes if + * window is used to 1/1.5 = 67% + * We need to relax the rule a bit for the case that + * feedback may be sparse due to limited RTCP report interval + * In addition we put a limit for the cases where feedback becomes + * piled up (sometimes happens with e.g LTE) + */ + if (bytesInFlight*1.5 + bytesNewlyAcked > cwnd) { + cwnd += bytesNewlyAckedLimited; + } + } + else { + inFastStart = false; + } + } + else { + if (offTarget > 0.0f) { + /* + * queue delay below target, increase CWND if window + * is used to 1/1.2 = 83% + */ + if (bytesInFlight*1.2 + bytesNewlyAcked > cwnd) { + float increment = gainUp * offTarget * bytesNewlyAckedLimited * mss / cwnd; + cwnd += (int)(increment + 0.5f); + } + } + else { + /* + * Queue delay above target. + * Limit the CWND reduction to at most a quarter window + * this avoids unduly large reductions for the cases + * where data is queued up e.g because of retransmissions + * on lower protocol layers. + */ + float delta = -(gainDown * offTarget * bytesNewlyAcked * mss / cwnd); + delta = std::min((int)delta, cwnd / 4); + cwnd -= (int)(delta); + + /* + * Especially when running over low bitrate bottlenecks, it is + * beneficial to reduce the target bitrate a little, it limits + * possible RTP queue delay spikes when congestion window is reduced + */ + float rateTotal = 0.0f; + for (int n = 0; n < nStreams; n++) + rateTotal += streams[n]->getMaxRate(); + if (rateTotal < 1.0e5f) { + delta = delta / cwnd; + float rateAdjustFactor = (1.0f - delta); + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + tmp->targetBitrate = std::max(tmp->minBitrate, + std::min(tmp->maxBitrate, + tmp->targetBitrate*rateAdjustFactor)); + } + } + lastCongestionDetectedT_us = time_us; + + } + } + } + /* + * Congestion window validation, checks that the congestion window is + * not considerably higher than the actual number of bytes in flight + */ + if (maxBytesInFlight > 5000) { + cwnd = std::min(cwnd, (int)maxBytesInFlight); + } + + if (sRtt < 0.01f && queueDelayTrend < 0.1) { + int tmp = int(rateTransmitted*0.01f / 8); + tmp = std::max(tmp, (int)(maxBytesInFlight*1.5f)); + cwnd = std::max(cwnd, tmp); + } + cwnd = std::max(cwndMin, cwnd); + + /* + * Make possible to enter fast start if OWD has been low for a while + */ + if (queueDelayTrend > 0.2) { + lastCongestionDetectedT_us = time_us; + } + else if (time_us - lastCongestionDetectedT_us > 5000000 && + !inFastStart && kEnableConsecutiveFastStart) { + /* + * The queue delay trend has been low for more than 5.0s, resume fast start + */ + inFastStart = true; + lastCongestionDetectedT_us = time_us; + } + bytesNewlyAcked = 0; +} + +/* +* Update base OWD (if needed) and return the +* last estimated OWD (without offset compensation) +*/ +uint32_t ScreamTx::estimateOwd(uint64_t time_us) { + baseOwd = std::min(baseOwd, ackedOwd); + if (time_us - lastBaseOwdAddT_us >= kBaseDelayUpdateInterval_us) { + baseOwdHist[baseOwdHistPtr] = baseOwd; + baseOwdHistPtr = (baseOwdHistPtr + 1) % kBaseOwdHistSize; + lastBaseOwdAddT_us = time_us; + baseOwd = UINT32_MAX; + baseOwdHistMin = UINT32_MAX; + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHistMin = std::min(baseOwdHistMin, baseOwdHist[n]); + /* + * _Very_ long periods of congestion can cause the base delay to increase + * with the effect that the queue delay is estimated wrong, therefore we seek to + * refresh the whole thing by deliberately allowing the network queue to drain + */ + if (time_us - lastBaseDelayRefreshT_us > kBaseDelayUpdateInterval_us*(kBaseOwdHistSize - 1)) { + lastBaseDelayRefreshT_us = time_us; + } + } + return ackedOwd; +} + +/* +* Get the base one way delay +*/ +uint32_t ScreamTx::getBaseOwd() { + return std::min(baseOwd, baseOwdHistMin); +} + +/* +* Get the queue delay fraction +*/ +float ScreamTx::getQueueDelayFraction() { + return queueDelay / queueDelayTarget; +} + +/* +* Compute congestion indicator +*/ +void ScreamTx::computeQueueDelayTrend() { + queueDelayTrend = 0.0; + int ptr = queueDelayFractionHistPtr; + float avg = 0.0f, x1, x2, a0, a1; + + for (int n = 0; n < kQueueDelayFractionHistSize; n++) { + avg += queueDelayFractionHist[ptr]; + ptr = (ptr + 1) % kQueueDelayFractionHistSize; + } + avg /= kQueueDelayFractionHistSize; + + ptr = queueDelayFractionHistPtr; + x2 = 0.0f; + a0 = 0.0f; + a1 = 0.0f; + for (int n = 0; n < kQueueDelayFractionHistSize; n++) { + x1 = queueDelayFractionHist[ptr] - avg; + a0 += x1 * x1; + a1 += x1 * x2; + x2 = x1; + ptr = (ptr + 1) % kQueueDelayFractionHistSize; + } + if (a0 > 0) { + queueDelayTrend = std::max(0.0f, std::min(1.0f, (a1 / a0)*queueDelayFractionAvg)); + } +} + +/* +* Compute indicators of shared bottleneck +*/ +void ScreamTx::computeSbd() { + float queueDelayNorm, tmp; + queueDelaySbdMean = 0.0; + queueDelaySbdMeanSh = 0.0; + queueDelaySbdVar = 0.0; + int ptr = queueDelayNormHistPtr; + for (int n = 0; n < kQueueDelayNormHistSize; n++) { + queueDelayNorm = queueDelayNormHist[ptr]; + queueDelaySbdMean += queueDelayNorm; + if (n >= kQueueDelayNormHistSize - kQueueDelayNormHistSizeSh) { + queueDelaySbdMeanSh += queueDelayNorm; + } + ptr = (ptr + 1) % kQueueDelayNormHistSize; + } + queueDelaySbdMean /= kQueueDelayNormHistSize; + queueDelaySbdMeanSh /= kQueueDelayNormHistSizeSh; + + ptr = queueDelayNormHistPtr; + for (int n = 0; n < kQueueDelayNormHistSize; n++) { + queueDelayNorm = queueDelayNormHist[ptr]; + tmp = queueDelayNorm - queueDelaySbdMean; + queueDelaySbdVar += tmp * tmp; + queueDelaySbdSkew += tmp * tmp * tmp; + ptr = (ptr + 1) % kQueueDelayNormHistSize; + } + queueDelaySbdVar /= kQueueDelayNormHistSize; + queueDelaySbdSkew /= kQueueDelayNormHistSize; +} + +/* +* true if the queueDelayTarget is increased due to +* detected competing flows +*/ +bool ScreamTx::isCompetingFlows() { + return queueDelayTarget > queueDelayTargetMin; +} + +/* +* Get queue delay trend +*/ +float ScreamTx::getQueueDelayTrend() { + return queueDelayTrend; +} + +/* +* Determine active streams +*/ +void ScreamTx::determineActiveStreams(uint64_t time_us) { + float surplusBitrate = 0.0f; + float sumPrio = 0.0; + bool streamSetInactive = false; + for (int n = 0; n < nStreams; n++) { + if (time_us - streams[n]->lastFrameT_us > 1000000 && streams[n]->isActive) { + streams[n]->isActive = false; + surplusBitrate += streams[n]->targetBitrate; + streams[n]->targetBitrate = streams[n]->minBitrate; + streamSetInactive = true; + } + else { + sumPrio += streams[n]->targetPriority; + } + } + if (streamSetInactive) { + for (int n = 0; n < nStreams; n++) { + if (streams[n]->isActive) { + streams[n]->targetBitrate = std::min(streams[n]->maxBitrate, + streams[n]->targetBitrate + + surplusBitrate*streams[n]->targetPriority / sumPrio); + } + } + } +} + +/* +* Add credit to streams that was not served +*/ +void ScreamTx::addCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) { + /* + * Add a credit to stream(s) that did not get priority to transmit RTP packets + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return; + int maxCredit = 10 * mss; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (tmp != servedStream) { + int credit = (int)(transmittedBytes*tmp->targetPriority * servedStream->targetPriorityInv); + if (tmp->rtpQueue->sizeOfQueue() > 0) { + tmp->credit += credit; + } + else { + tmp->credit += credit; + if (tmp->credit > maxCredit) { + tmp->creditLost += tmp->credit - maxCredit; + tmp->credit = maxCredit; + } + //tmp->credit = std::min(10 * mss, tmp->credit + credit); + } + } + } +} + +/* +* Subtract credit from served stream +*/ +void ScreamTx::subtractCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) { + /* + * Subtract a credit equal to the number of transmitted bytes from the stream that + * transmitted a packet + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return; + servedStream->credit = std::max(0, servedStream->credit - transmittedBytes); +} +ScreamTx::Stream::Stream(ScreamTx *parent_, + RtpQueueIface *rtpQueue_, + uint32_t ssrc_, + float priority_, + float minBitrate_, + float startBitrate_, + float maxBitrate_, + float rampUpSpeed_, + float maxRtpQueueDelay_, + float txQueueSizeFactor_, + float queueDelayGuard_, + float lossEventRateScale_, + float ecnCeEventRateScale_) { + parent = parent_; + rtpQueue = rtpQueue_; + ssrc = ssrc_; + targetPriority = priority_; + targetPriorityInv = 1.0f / targetPriority; + minBitrate = minBitrate_; + maxBitrate = maxBitrate_; + targetBitrate = std::min(maxBitrate, std::max(minBitrate, startBitrate_)); + rampUpSpeed = rampUpSpeed_; + maxRtpQueueDelay = maxRtpQueueDelay_; + txQueueSizeFactor = txQueueSizeFactor_; + queueDelayGuard = queueDelayGuard_; + lossEventRateScale = lossEventRateScale_; + ecnCeEventRateScale = ecnCeEventRateScale_; + targetBitrateHistUpdateT_us = 0; + targetBitrateI = 1.0f; + credit = 0; + creditLost = 0; + bytesTransmitted = 0; + bytesAcked = 0; + bytesLost = 0; + hiSeqAck = 0; + hiSeqTx = 0; + rateTransmitted = 0.0f; + rateAcked = 0.0f; + rateLost = 0.0f; + lossEventFlag = false; + ecnCeEventFlag = false; + txSizeBitsAvg = 0.0f; + lastRateUpdateT_us = 0; + lastBitrateAdjustT_us = 0; + lastTargetBitrateIUpdateT_us = 0; + bytesRtp = 0; + rateRtp = 0.0f; + lastLossDetectIx = -1; + ecnCeMarkedBytes = 0; + timeTxAck_us = 0; + + for (int n = 0; n < kRateUpDateSize; n++) { + rateRtpHist[n] = 0.0f; + rateAckedHist[n] = 0.0f; + rateLostHist[n] = 0.0f; + rateTransmittedHist[n] = 0.0f; + } + rateUpdateHistPtr = 0; + for (int n = 0; n < kTargetBitrateHistSize; n++) { + targetBitrateHist[n] = 0; + } + targetBitrateHistPtr = 0; + targetRateScale = 1.0; + isActive = false; + lastFrameT_us = 0; + initTime_us = 0; + rtpQueueDiscard = false; + lastRtpQueueDiscardT_us = 0; + rateLost = 0.0; + bytesLost = 0; + wasRepairLoss = false; + repairLoss = false; + for (int n = 0; n < kMaxTxPackets; n++) + txPackets[n].isUsed = false; + txPacketsPtr = 0; +} + +/* +* Update the estimated max media rate +*/ +void ScreamTx::Stream::updateRate(uint64_t time_us) { + if (lastRateUpdateT_us != 0) { + float tDelta = (time_us - lastRateUpdateT_us) * 1e-6f; + + rateTransmittedHist[rateUpdateHistPtr] = bytesTransmitted*8.0f / tDelta; + rateAckedHist[rateUpdateHistPtr] = bytesAcked*8.0f / tDelta; + rateLostHist[rateUpdateHistPtr] = bytesLost*8.0f / tDelta; + rateRtpHist[rateUpdateHistPtr] = bytesRtp * 8.0f / tDelta; + rateUpdateHistPtr = (rateUpdateHistPtr + 1) % kRateUpDateSize; + rateTransmitted = 0.0f; + rateAcked = 0.0f; + rateLost = 0.0f; + rateRtp = 0.0f; + for (int n = 0; n < kRateUpDateSize; n++) { + rateTransmitted += rateTransmittedHist[n]; + rateAcked += rateAckedHist[n]; + rateLost += rateLostHist[n]; + rateRtp += rateRtpHist[n]; + } + rateTransmitted /= kRateUpDateSize; + rateAcked /= kRateUpDateSize; + rateLost /= kRateUpDateSize; + rateRtp /= kRateUpDateSize; + if (rateRtp > 0) { + /* + * Video coders are strange animals.. In certain cases the average bitrate is + * consistently lower or higher than the target bitare. This additonal scaling compensates + * for this anomaly. + */ + const float alpha = 0.05f; + targetRateScale *= (1.0f - alpha); + targetRateScale += alpha*targetBitrate / rateRtp; + targetRateScale = std::min(1.25f, std::max(0.8f, targetRateScale)); + } + } + + bytesTransmitted = 0; + bytesAcked = 0; + bytesRtp = 0; + bytesLost = 0; + lastRateUpdateT_us = time_us; +} + +/* +* Get the estimated maximum media rate +*/ +float ScreamTx::Stream::getMaxRate() { + return std::max(rateTransmitted, rateAcked); +} + +/* +* The the stream that matches SSRC +*/ +ScreamTx::Stream* ScreamTx::getStream(uint32_t ssrc) { + for (int n = 0; n < nStreams; n++) { + if (streams[n]->isMatch(ssrc)) { + return streams[n]; + } + } + return NULL; +} + +/* +* Get the target bitrate. +* This function returns a value -1 if loss of RTP packets is detected, +* either because of loss in network or RTP queue discard +*/ +float ScreamTx::Stream::getTargetBitrate() { + + bool requestRefresh = isRtpQueueDiscard() || repairLoss; + repairLoss = false; + if (requestRefresh && !wasRepairLoss) { + wasRepairLoss = true; + return -1.0; + } + float rate = targetRateScale*targetBitrate; + /* + * Video coders are strange animals.. In certain cases a very frequent rate requests can confuse the + * rate control logic in the coder + */ + wasRepairLoss = false; + return rate; +} + +/* +* A small history of past max bitrates is maintained and the max value is picked. +* This solves a problem where consequtive rate decreases can give too low +* targetBitrateI values. +*/ +void ScreamTx::Stream::updateTargetBitrateI(float br) { + targetBitrateHist[targetBitrateHistPtr] = std::min(br, targetBitrate); + targetBitrateHistPtr = (targetBitrateHistPtr + 1) % kTargetBitrateHistSize; + targetBitrateI = std::min(br, targetBitrate); + for (int n = 0; n < kTargetBitrateHistSize; n++) { + targetBitrateI = std::max(targetBitrateI, targetBitrateHist[n]); + } + +} + +/* +* Update the target bitrate, the target bitrate includes the RTP overhead +*/ +void ScreamTx::Stream::updateTargetBitrate(uint64_t time_us) { + /* + * Compute a maximum bitrate, this bitrates includes the RTP overhead + */ + float br = getMaxRate(); + float rateRtpLimit = br; + if (initTime_us == 0) { + /* + * Initialize if the first time + */ + initTime_us = time_us; + lastRtpQueueDiscardT_us = time_us; + } + + if (lastBitrateAdjustT_us == 0) lastBitrateAdjustT_us = time_us; + isActive = true; + lastFrameT_us = time_us; + + if (lossEventFlag || ecnCeEventFlag) { + /* + * Loss event handling + * Rate is reduced slightly to avoid that more frames than necessary + * queue up in the sender queue + */ + if (time_us - lastTargetBitrateIUpdateT_us > 2000000) { + /* + * The timing constraint avoids that targetBitrateI + * is set too low in cases where a congestion event is prolonged. + * An accurate targetBitrateI is not of extreme importance + * but helps to avoid jitter spikes when SCReAM operates + * over fixed bandwidth or slowly varying links. + */ + updateTargetBitrateI(br); + lastTargetBitrateIUpdateT_us = time_us; + } + if (lossEventFlag) + targetBitrate = std::max(minBitrate, targetBitrate*lossEventRateScale); + else if (ecnCeEventFlag) + targetBitrate = std::max(minBitrate, targetBitrate*ecnCeEventRateScale); + + lossEventFlag = false; + ecnCeEventFlag = false; + lastBitrateAdjustT_us = time_us; + } + else { + if (time_us - lastBitrateAdjustT_us < kRateAdjustInterval_us) + return; + /* + * A scale factor that is dependent on the inflection point + * i.e the last known highest video bitrate + */ + float sclI = (targetBitrate - targetBitrateI) / targetBitrateI; + sclI *= 4; + sclI = std::max(0.2f, std::min(1.0f, sclI*sclI)); + float increment = 0.0f; + + /* + * Size of RTP queue [bits] + * As this function is called immediately after a + * video frame is produced, we need to accept the new + * RTP packets in the queue, we subtract a number of bytes correspoding to the size + * of the last frame (including RTP overhead), this is simply the aggregated size + * of the RTP packets with the highest RTP timestamp + */ + int lastBytes = rtpQueue->getSizeOfLastFrame(); + int txSizeBits = std::max(0, rtpQueue->bytesInQueue() - lastBytes) * 8; + + float alpha = 0.5f; + + txSizeBitsAvg = txSizeBitsAvg*alpha + txSizeBits*(1.0f - alpha); + /* + * tmp is a local scaling factor that makes rate adaptation sligthly more + * aggressive when competing flows (e.g file transfers) are detected + */ + float rampUpSpeedTmp = std::min(rampUpSpeed, targetBitrate*0.5f); + if (parent->isCompetingFlows()) { + rampUpSpeedTmp *= 2.0f; + } + + float rtpQueueDelay = rtpQueue->getDelay(time_us * 1e-6f); + if (rtpQueueDelay > maxRtpQueueDelay && + (time_us - lastRtpQueueDiscardT_us > kMinRtpQueueDiscardInterval_us)) { + /* + * RTP queue is cleared as it is becoming too large, + * Function is however disabled initially as there is no reliable estimate of the + * throughput in the initial phase. + */ + rtpQueue->clear(); + + rtpQueueDiscard = true; + //parent->bytesInFlight = 0; + + lastRtpQueueDiscardT_us = time_us; + targetRateScale = 1.0; + txSizeBitsAvg = 0.0f; + } + else if (parent->inFastStart && rtpQueueDelay < 0.1f) { + /* + * Increment bitrate, limited by the rampUpSpeed + */ + increment = rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6f); + /* + * Limit increase rate near the last known highest bitrate or if priority is low + */ + increment *= sclI*sqrt(targetPriority); + /* + * No increase if the actual coder rate is lower than the target + */ + if (targetBitrate > rateRtpLimit*1.5f) + increment = 0; + /* + * Add increment + */ + targetBitrate += increment; + wasFastStart = true; + } + else { + if (wasFastStart) { + wasFastStart = false; + if (time_us - lastTargetBitrateIUpdateT_us > 2000000) { + /* + * The timing constraint avoids that targetBitrateI + * is set too low in cases where a + * congestion event is prolonged + */ + updateTargetBitrateI(br); + lastTargetBitrateIUpdateT_us = time_us; + } + } + /* + * scl is based on the queue delay trend + */ + float scl = queueDelayGuard*parent->getQueueDelayTrend(); + if (parent->isCompetingFlows()) + scl *= 0.05f; + + /* + * Update target rate + * At very low bitrates it is necessary to actively try to push the + * the bitrate up some extra + */ + float incrementScale = 1.0f + 0.05f*std::min(1.0f, 50000.0f / targetBitrate); + + float increment = incrementScale*br*(1.0f - scl) - + txQueueSizeFactor*txSizeBitsAvg - targetBitrate; + if (txSizeBits > 12000 && increment > 0) + increment = 0; + + if (increment > 0) { + wasFastStart = true; + if (!parent->isCompetingFlows()) { + /* + * Limit the bitrate increase so that it does not go faster than rampUpSpeedTmp + * This limitation is not in effect if competing flows are detected + */ + increment *= sclI; + increment = std::min(increment, (float)(rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6))); + } + if (targetBitrate > rateRtpLimit*1.5f) + increment = 0; + } + else { + /* + * Avoid that the target bitrate is reduced if it actually is the media + * coder that limits the output rate e.g due to inactivity + */ + if (rateRtp < targetBitrate*0.8f) + increment = 0.0f; + /* + * Also avoid that the target bitrate is reduced if + * the coder bitrate is higher + * than the target. + * The possible reason is that a large I frame is transmitted, another reason is + * complex dynamic content. + */ + if (rateRtp > targetBitrate*2.0f) + increment = 0.0f; + } + targetBitrate += increment; + } + lastBitrateAdjustT_us = time_us; + } + + targetBitrate = std::min(maxBitrate, std::max(minBitrate, targetBitrate)); +} + +bool ScreamTx::Stream::isRtpQueueDiscard() { + bool tmp = rtpQueueDiscard; + rtpQueueDiscard = false; + return tmp; +} + +/* +* Adjust (enforce) proper prioritization between active streams +* at regular intervals. This is a necessary addon to mitigate +* issues that VBR media brings +* The function consists of equal measures or rational thinking and +* black magic, which means that there is no 100% guarantee that +* will always work. +*/ +void ScreamTx::adjustPriorities(uint64_t time_us) { + if (nStreams == 1 || time_us - lastAdjustPrioritiesT_us < 1000000) { + /* + * Skip if only one stream or if adjustment done less than 5s ago + */ + return; + } + + if (queueDelayTrend > 0.02) { + /* + * Adjust only if there is some evidence of congestion + */ + int avgCreditLost = 0; + int avgCreditLostN = 0; + for (int n = 0; n < nStreams; n++) { + avgCreditLost += streams[n]->creditLost; + if (streams[n]->isActive) + avgCreditLostN++; + } + if (avgCreditLostN <= 1) { + /* + * At the most 1 steam active, skip adjustment + */ + return; + } + + avgCreditLost /= avgCreditLostN; + for (int n = 0; n < nStreams; n++) { + if (true && streams[n]->isActive) { + if (streams[n]->creditLost < avgCreditLost && + streams[n]->targetBitrate > streams[n]->rateRtp) { + /* + * Stream is using more of its share than the average + * bitrate is likelky too high, reduce target bitrate + * This algorithm works best when we want to ensure + * different priorities + */ + streams[n]->targetBitrate = std::max(streams[n]->minBitrate, streams[n]->targetBitrate*0.9f); + } + } + } + + for (int n = 0; n < nStreams; n++) + streams[n]->creditLost = 0; + + + lastAdjustPrioritiesT_us = time_us; + + } + if (time_us - lastAdjustPrioritiesT_us < 20000000) { + /* + * Clear old statistics of unused credits + */ + for (int n = 0; n < nStreams; n++) + streams[n]->creditLost = 0; + + + lastAdjustPrioritiesT_us = time_us; + } +} + +/* +* Get the prioritized stream +*/ +ScreamTx::Stream* ScreamTx::getPrioritizedStream(uint64_t time_us) { + /* + * Function that prioritizes between streams, this function may need + * to be modified to handle the prioritization better for e.g + * FEC, SVC etc. + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return streams[0]; + + int maxCredit = 1; + Stream *stream = NULL; + /* + * Pick a stream with credit higher or equal to + * the size of the next RTP packet in queue for the given stream. + */ + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (tmp->rtpQueue->sizeOfQueue() == 0) { + /* + * Queue empty + */ + } + else { + /* + * Pick stream if it has the highest credit so far + */ + if (tmp->credit >= std::max(maxCredit, tmp->rtpQueue->sizeOfNextRtp())) { + stream = tmp; + maxCredit = tmp->credit; + } + } + } + if (stream != NULL) { + return stream; + } + /* + * If the above doesn't give a candidate.. + * Pick the stream with the highest priority that also + * has at least one RTP packet in queue. + */ + float maxPrio = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + float priority = tmp->targetPriority; + if (tmp->rtpQueue->sizeOfQueue() > 0 && priority > maxPrio) { + maxPrio = priority; + stream = tmp; + } + } + return stream; +} diff --git a/RPI/scream/scream_receiver/code/ScreamTx.h b/RPI/scream/scream_receiver/code/ScreamTx.h new file mode 100644 index 0000000..786f465 --- /dev/null +++ b/RPI/scream/scream_receiver/code/ScreamTx.h @@ -0,0 +1,618 @@ +#ifndef SCREAM_TX +#define SCREAM_TX + +#include <string.h> +#include <iostream> +#include <cstdint> +using namespace std; + +/* +* This module implements the sender side of SCReAM, +* see https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf +* for details on how it is integrated in audio/video platforms +* A full implementation needs the additional code for +* + RTCP feedback (e.g using RFC3611 XR elements) +* + RTP queue(s), one queue per stream, see SCReAM description for interface description +* + Other obvious stuff such as RTP payload packetizer, video+audio capture, coders.... +* +*/ + +// ==== Default parameters (if tuning necessary) ==== +// Connection related default parameters +// CWND scale factor upon loss event +static const float kLossBeta = 0.8f; +// CWND scale factor upon ECN-CE event +static const float kEcnCeBeta = 0.9f; +// Min and max queue delay target +static const float kQueueDelayTargetMin = 0.1f; //ms +// Enable shared botleneck detection and queue delay target adjustement +// good if SCReAM needs to compete with e.g FTP but +// Can in some cases cause self-inflicted congestion +// i.e the e2e delay can become large even though +// there is no competing traffic present +// For some reason, self-inflicted congestion is easily triggered +// when an audio + video stream is run, so bottomline is that +// this feature is a bit shaky +static const bool kEnableSbd = false; +// CWND up and down gain factors +static const float kGainUp = 1.0f; +static const float kGainDown = 2.0f; + +// Stream related default parameters +// Max video rampup speed in bps/s (bits per second increase per second) +static const float kRampUpSpeed = 200000.0f; // bps/s +// Max RTP queue delay, RTP queue is cleared if this value is exceeded +static const float kMaxRtpQueueDelay = 0.1; // 0.1s +// Compensation factor for RTP queue size +// A higher value such as 0.2 gives less jitter esp. in wireless (LTE) +// but potentially also lower link utilization +static const float kTxQueueSizeFactor = 0.2f; +// Compensation factor for detected congestion in rate computation +// A higher value such as 0.5 gives less jitter esp. in wireless (LTE) +// but potentially also lower link utilization +static const float kQueueDelayGuard = 0.1f; +// Video rate scaling due to loss events +static const float kLossEventRateScale = 0.9f; +// Video rate scaling due to ECN marking events +static const float kEcnCeEventRateScale = 0.95f; + + + +// Constants +/* +* Timestamp sampling rate for SCReAM feedback +*/ +static const float kTimestampRate = 1000.0f; +/* +* Max number of RTP packets in flight +* With and MSS = 1200 byte and an RTT = 200ms +* this is enount to support media bitrates of ~50Mbps +* Note, 65536 % kMaxTxPackets must be zero +*/ +static const int kMaxTxPackets = 2048; +/* +* Max number of streams +*/ +static const int kMaxStreams = 10; +/* +* History vectors +*/ +static const int kBaseOwdHistSize = 50; +static const int kQueueDelayNormHistSize = 200; +static const int kQueueDelayNormHistSizeSh = 50; +static const int kQueueDelayFractionHistSize = 20; +static const int kBytesInFlightHistSizeMax = 60; +static const int kRateUpDateSize = 4; +static const int kTargetBitrateHistSize = 3; +static const int kLossRateHistSize = 10; + +class RtpQueueIface; +class ScreamTx { +public: + /* + * Constructor, see constant definitions above for an explanation of parameters + * cwnd > 0 sets a different initial congestion window, for example it can be set to + * initialrate/8*rtt + * cautiousPacing is set in the range [0.0..1.0]. A higher values restricts the transmission rate of large key frames + * which can be beneficial if it is evident that large key frames cause packet drops, for instance due to + * reduced buffer size in wireless modems. + * This is however at the potential cost of an overall increased transmission delay also when links are uncongested + * as the RTP packets are more likely to be buffered up on the sender side when cautiousPacing is set close to 1.0. + * lossBeta == 1.0 means that packet losses are ignored by the congestion control + */ + ScreamTx(float lossBeta = kLossBeta, + float ecnCeBeta = kEcnCeBeta, + float queueDelayTargetMin = kQueueDelayTargetMin, + bool enableSbd = kEnableSbd, + float gainUp = kGainUp, + float gainDown = kGainDown, + int cwnd = 0, // An initial cwnd larger than 2*mss + float cautiousPacing = 0.0f, + int bytesInFlightHistSize = 5, + bool openWindow = false); + + ~ScreamTx(); + + /* + * Register a new stream {SSRC,PT} tuple, + * with a priority value in the range ]0.0..1.0] + * where 1.0 denotes the highest priority. + * It is recommended that at least one stream has prioritity 1.0. + * Bitrates are specified in bps + * See constant definitions above for an explanation of other default parameters + */ + void registerNewStream(RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, // priority in range ]0.0 .. 1.0], 1.0 is highest + float minBitrate, // Min target bitrate + float startBitrate, // Starting bitrate + float maxBitrate, // Max target bitrate + float rampUpSpeed = kRampUpSpeed, + float maxRtpQueueDelay = kMaxRtpQueueDelay, + float txQueueSizeFactor = kTxQueueSizeFactor, + float queueDelayGuard = kQueueDelayGuard, + float lossEventRateScale = kLossEventRateScale, + float ecnCeEventRateScale = kEcnCeEventRateScale); + + /* + * Updates the min and max bitrates for an existing stream + */ + void updateBitrateStream(uint32_t ssrc, + float minBitrate, + float maxBitrate); + + /* + * Access the configured RtpQueue of an existing stream + */ + RtpQueueIface * getStreamQueue(uint32_t ssrc); + + /* + * Call this function for each new video frame + * Note : isOkToTransmit should be called after newMediaFrame + */ + void newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp); + + /* + * Function determines if an RTP packet with SSRC can be transmitted + * Return values : + * 0.0 : RTP packet with SSRC can be immediately transmitted + * addTransmitted must be called if packet is transmitted as a result of this + * >0.0 : Time [s] until this function should be called again + * This can be used to start a timer + * Note that a call to newMediaFrame or incomingFeedback should + * cause an immediate call to isOkToTransmit + * -1.0 : No RTP packet available to transmit or send window is not large enough + */ + float isOkToTransmit(uint64_t time_us, uint32_t &ssrc); + + /* + * Add packet to list of transmitted packets + * should be called when an RTP packet transmitted + * Return time until isOkToTransmit can be called again + */ + float addTransmitted(uint64_t timestamp_us, // Wall clock ts when packet is transmitted + uint32_t ssrc, + int size, + uint16_t seqNr); + + /* + * New incoming feedback, this function + * triggers a CWND update + * The SCReAM timestamp is in jiffies, where the frequency is controlled + * by the timestamp clock frequency (default 1000Hz) + * The ackVector indicates recption of the 64 RTP SN prior to highestSeqNr + * Note : isOkToTransmit should be called after incomingFeedback + * ecnCeMarkedBytes indicates the cumulative number of bytes that are ECN-CE marked + */ + void incomingFeedback(uint64_t time_us, + uint32_t ssrc, // SSRC of stream + uint32_t timestamp, // SCReAM FB timestamp [jiffy] + uint16_t highestSeqNr, // Highest ACKed RTP sequence number + uint64_t ackVector, // ACK vector + uint16_t ecnCeMarkedBytes = 0); // Number of ECN marked bytes + + /* + * Parse feedback according to the format below. It is up to the + * wrapper application this RTCP from a compound RTCP if needed + * BT = 255, means that this is experimental use + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |V=2|P|reserved | PT=XR=207 | length=6 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | BT=255 | reserved | block length=4 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC of source | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Highest recv. seq. nr. (16b) | ECN_CE_bytes | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b0-31) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b32-63) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Timestamp (32bits) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + void incomingFeedback(uint64_t time_us, + unsigned char* buf, + int size); + + /* + * Get the target bitrate for stream with SSRC + * NOTE!, Because SCReAM operates on RTP packets, the target bitrate will + * also include the RTP overhead. This means that a subsequent call to set the + * media coder target bitrate must subtract an estimate of the RTP + framing + * overhead. This is not critical for Video bitrates but can be important + * when SCReAM is used to congestion control e.g low bitrate audio streams + * Function returns -1 if a loss is detected, this signal can be used to + * request a new key frame from a video encoder + */ + float getTargetBitrate(uint32_t ssrc); + + /* + * Set target priority for a given stream, priority value should be in range ]0.0..1.0] + */ + void setTargetPriority(uint32_t ssrc, float aPriority); + + /* + * Get verbose log information + */ + void getLog(float time, char *s); + + /* + * Get verbose log information + */ + void getShortLog(float time, char *s); + + /* + * Get overall simplified statistics + */ + void getStatistics(float time, char *s); + + +private: + /* + * Struct for list of RTP packets in flight + */ + struct Transmitted { + uint64_t timeTx_us; + uint32_t timestamp; + int size; + uint16_t seqNr; + bool isUsed; + bool isAcked; + bool isAfterReceivedEdge; + + }; + + /* + * Statistics for the network congestion control and the + * stream[0] + */ + class Statistics { + public: + Statistics(); + void getSummary(float time, char s[]); + void add(float rateTx, float rateLost, float rtt, float queueDelay); + private: + float lossRateHist[kLossRateHistSize]; + float rateLostAcc; + int rateLostN; + int lossRateHistPtr; + float avgRateTx; + float avgRtt; + float avgQueueDelay; + float sumRateTx; + float sumRateLost; + + }; + + + /* + * One instance is created for each {SSRC,PT} tuple + */ + class Stream { + public: + Stream(ScreamTx *parent, + RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, + float minBitrate, + float startBitrate, + float maxBitrate, + float rampUpSpeed, + float maxRtpQueueDelay, + float txQueueSizeFactor, + float queueDelayGuard, + float lossEventRateScale, + float ecnCeEventRateScale); + + float getMaxRate(); + + float getTargetBitrate(); + + void updateRate(uint64_t time_us); + + void updateTargetBitrateI(float br); + + void updateTargetBitrate(uint64_t time_us); + + bool isRtpQueueDiscard(); + + bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; }; + ScreamTx *parent; + RtpQueueIface *rtpQueue; // RTP Packet queue + uint32_t ssrc; // SSRC of stream + float rampUpSpeed; + float maxRtpQueueDelay; + float txQueueSizeFactor; + float queueDelayGuard; + float lossEventRateScale; + float ecnCeEventRateScale; + + int credit; // Credit that is received if another stream gets + // priority to transmit + int creditLost; // Amount of lost (unused) credit, input to + // adjustPriorities function + float targetPriority; // Stream target priority + float targetPriorityInv;// Stream target priority inverted + int bytesTransmitted; // Number of bytes transmitted + int bytesAcked; // Number of ACKed bytes + int bytesLost; // Number of lost bytes + float rateTransmitted; // Transmitted rate + float rateAcked; // ACKed rate + float rateLost; // Lost packets (bit)rate + uint16_t hiSeqAck; // Highest sequence number ACKed + uint16_t hiSeqTx; // Highest sequence number transmitted + float minBitrate; // Min bitrate + float maxBitrate; // Max bitrate + float targetBitrate; // Target bitrate + float targetBitrateI; // Target bitrate inflection point + bool wasFastStart; // Was fast start + bool lossEventFlag; // Was loss event + bool ecnCeEventFlag; // Was ECN mark event + float txSizeBitsAvg; // Avergage nymber of bits in RTP queue + uint64_t lastBitrateAdjustT_us; // Last time rate was updated for this stream + uint64_t lastRateUpdateT_us; // Last time rate estimate was updated + uint64_t lastTargetBitrateIUpdateT_us; // Last time rate estimate was updated + + uint64_t timeTxAck_us; // timestamp when higest ACKed SN was transmitted + + int bytesRtp; // Number of RTP bytes from media coder + float rateRtp; // Media bitrate + float rateRtpHist[kRateUpDateSize]; + float rateAckedHist[kRateUpDateSize]; + float rateLostHist[kRateUpDateSize]; + float rateTransmittedHist[kRateUpDateSize]; + int rateUpdateHistPtr; + float targetBitrateHist[kTargetBitrateHistSize]; + int targetBitrateHistPtr; + uint64_t targetBitrateHistUpdateT_us; + float targetRateScale; + + bool isActive; + uint64_t lastFrameT_us; + uint64_t initTime_us; + bool rtpQueueDiscard; + uint64_t lastRtpQueueDiscardT_us; + bool wasRepairLoss; + bool repairLoss; + int lastLossDetectIx; + uint16_t ecnCeMarkedBytes; + + + Transmitted txPackets[kMaxTxPackets]; + int txPacketsPtr; + + }; + + /* + * Initialize values + */ + void initialize(uint64_t time_us); + + /* + * Mark ACKed RTP packets + */ + void markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream); + + /* + * Update CWND + */ + void updateCwnd(uint64_t time_us); + + /* + * Detect lost RTP packets + */ + void detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream); + + /* + * Call this function at regular intervals to determine active streams + */ + void determineActiveStreams(uint64_t time_us); + + /* + * Compute 1st order prediction coefficient of queue delay multiplied by the queue delay fraction + * A value [0.0..1.0] indicates if queue delay is increasing + * This gives a rough estimate of how the queuing delay delay evolves + */ + void computeQueueDelayTrend(); + + /* + * Estimate one way delay [jiffy] and updated base delay + * Base delay is not subtracted + */ + uint32_t estimateOwd(uint64_t time_us); + + /* + * return base delay [jiffy] + */ + uint32_t getBaseOwd(); + + /* + * Compute indicators of shared bottleneck + */ + void computeSbd(); + + /* + * True if competing (TCP)flows detected + */ + bool isCompetingFlows(); + + /* + * Get stream with corresponding SSRC + */ + Stream* getStream(uint32_t ssrc); + + /* + * Get matching stream index for this SSRC tuple, + * return -1 if no match + */ + int getStreamIndex(uint32_t ssrc); + + /* + * Adjust stream bitrates to reflect priorities + */ + void adjustPriorities(uint64_t time_us); + + /* + * Get the prioritized stream + * Return NULL if no stream with + * with RTP packets + */ + Stream* getPrioritizedStream(uint64_t time_us); + + /* + * Add credit to unserved streams + */ + void addCredit(uint64_t time_us, + Stream* servedStream, + int transmittedBytes); + + /* + * Subtract used credit + */ + void subtractCredit(uint64_t time_us, + Stream* servedStream, + int transmittedBytes); + + /* + * return 1 if in fast start + */ + int isInFastStart() { return inFastStart ? 1 : 0; }; + + /* + * Get the fraction between queue delay and the queue delay target + */ + float getQueueDelayFraction(); + + /* + * Get the queuing delay trend + */ + float getQueueDelayTrend(); + + /* + * Variables for network congestion control + */ + + /* + * Related to computation of queue delay and target queuing delay + */ + float lossBeta; + float ecnCeBeta; + float queueDelayTargetMin; + bool enableSbd; + float gainUp; + float gainDown; + float cautiousPacing; + + uint64_t sRttSh_us; + uint64_t sRtt_us; + float sRtt; + uint32_t ackedOwd; + uint32_t baseOwd; + + uint32_t baseOwdHist[kBaseOwdHistSize]; + int baseOwdHistPtr; + uint32_t baseOwdHistMin; + float queueDelay; + float queueDelayFractionAvg; + float queueDelayFractionHist[kQueueDelayFractionHistSize]; + int queueDelayFractionHistPtr; + float queueDelayTrend; + float queueDelayTarget; + float queueDelayNormHist[kQueueDelayNormHistSize]; + int queueDelayNormHistPtr; + float queueDelaySbdVar; + float queueDelaySbdMean; + float queueDelaySbdSkew; + float queueDelaySbdMeanSh; + float queueDelayMax; + + /* + * CWND management + */ + int bytesNewlyAcked; + int mss; // Maximum Segment Size + int cwnd; // congestion window + int cwndMin; + bool openWindow; + int bytesInFlight; + int bytesInFlightHistLo[kBytesInFlightHistSizeMax]; + int bytesInFlightHistHi[kBytesInFlightHistSizeMax]; + int bytesInFlightHistSize; + int bytesInFlightHistPtr; + int bytesInFlightMaxLo; + int bytesInFlightHistLoMem; + int bytesInFlightMaxHi; + int bytesInFlightHistHiMem; + float maxBytesInFlight; + int accBytesInFlightMax; + int nAccBytesInFlightMax; + float rateTransmitted; + float rateAcked; + float queueDelayTrendMem; + float maxRate; + uint64_t lastCwndUpdateT_us; + + /* + * Loss event + */ + bool lossEvent; + bool wasLossEvent; + float lossEventRate; + + /* + * ECN-CE + */ + bool ecnCeEvent; + + /* + * Fast start + */ + bool inFastStart; + + /* + * Transmission scheduling + */ + uint64_t paceInterval_us; + float paceInterval; + float rateTransmittedAvg; + + /* + * Update control variables + */ + bool isInitialized; + uint64_t lastSRttUpdateT_us; + uint64_t lastBaseOwdAddT_us; + uint64_t baseOwdResetT_us; + uint64_t lastAddToQueueDelayFractionHistT_us; + uint64_t lastBytesInFlightT_us; + uint64_t lastCongestionDetectedT_us; + uint64_t lastLossEventT_us; + uint64_t lastTransmitT_us; + uint64_t nextTransmitT_us; + uint64_t lastRateUpdateT_us; + uint64_t lastAdjustPrioritiesT_us; + uint64_t lastRttT_us; + uint64_t lastBaseDelayRefreshT_us; + uint64_t initTime_us; + float queueDelayMin; + float queueDelayMinAvg; + + /* + * Variables for multiple steams handling + */ + Stream *streams[kMaxStreams]; + int nStreams; + + /* + * Statistics + */ + Statistics *statistics; + +}; +#endif diff --git a/RPI/scream/scream_receiver/code/cmake_install.cmake b/RPI/scream/scream_receiver/code/cmake_install.cmake new file mode 100644 index 0000000..e6a060c --- /dev/null +++ b/RPI/scream/scream_receiver/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/robert/Downloads/panasonic-ip-cam_new/scream_receiver/code + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + diff --git a/RPI/scream/scream_receiver/code/scream_receiver.cpp b/RPI/scream/scream_receiver/code/scream_receiver.cpp new file mode 100644 index 0000000..33da685 --- /dev/null +++ b/RPI/scream/scream_receiver/code/scream_receiver.cpp @@ -0,0 +1,317 @@ +// Scream sender side wrapper +#include "ScreamRx.h" +#include "sys/socket.h" +#include "sys/types.h" +#include "netinet/in.h" +#include <string.h> /* needed for memset */ +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <sys/time.h> +#include <iostream> +#include <fcntl.h> +#include <unistd.h> +#include <pthread.h> +using namespace std; + +/* +* Scream receiver side wrapper +* Receives SCReAM congestion controlled RTP media and +* generates RTCP feedback to the sender, over the same RTP port +* Media sources (max 6) are demultiplexed and forwarded to local RTP ports +* given by local_port list +*/ + +#define BUFSIZE 2048 + +#define MAX_SOURCES 6 +uint32_t SSRC_RTCP=10; + + +// Input UDP socket, RTP packets come here and we send RTCP packets in the +// reverse direction through this socket +int fd_in_rtp; + +ScreamRx *screamRx = 0; + + +int fd_local_rtp[MAX_SOURCES]; +uint32_t ssrcMap[MAX_SOURCES]; + +char* in_ip = "192.168.0.20"; +int in_port = 30122; +struct sockaddr_in in_rtp_addr, out_rtcp_addr, sender_rtcp_addr; +struct sockaddr_in local_rtp_addr[MAX_SOURCES]; + +char* local_ip = "127.0.0.1"; +int local_port[MAX_SOURCES] = {30130,30132,30134,30136,30138,30140}; +int nSources = 0; + +pthread_mutex_t lock_scream; + +long getTimeInUs(){ + struct timeval tp; + gettimeofday(&tp, NULL); + long us = tp.tv_sec * 1000000 + tp.tv_usec; + return us; +} + +/* +Extract the sequence number and the timestamp from the RTP header +0 1 2 3 +0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +|V=2|P|X| CC |M| PT | sequence number | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| timestamp | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +| synchronization source (SSRC) identifier | ++=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ +| contributing source (CSRC) identifiers | +| .... | ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +*/ + +void parseRtp(unsigned char *buf, uint16_t* seqNr, uint32_t* timeStamp, uint32_t* ssrc) { + uint16_t tmp_s; + uint32_t tmp_l; + memcpy(&tmp_s, buf + 2, 2); + *seqNr = ntohs(tmp_s); + memcpy(&tmp_l, buf + 4, 4); + *timeStamp = ntohl(tmp_l); + memcpy(&tmp_l, buf + 8, 4); + *ssrc = ntohl(tmp_l); +} + +uint64_t lastPunchNatT_us = 0; + +#define KEEP_ALIVE_PKT_SIZE 1 + +void *rtcpPeriodicThread(void *arg) { + unsigned char buf[BUFSIZE]; + int rtcpSize; + uint64_t rtcpFbInterval_us = screamRx->getRtcpFbInterval(); + for (;;) { + uint64_t time_us = getTimeInUs(); + + if (getTimeInUs() - lastPunchNatT_us > 500000) { + /* + * Send a small packet just to punch open a hole in the NAT, + * just one single byte will do. + * This makes in possible to receive packets on the same port + */ + int ret = sendto(fd_in_rtp, buf, KEEP_ALIVE_PKT_SIZE, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr)); + lastPunchNatT_us = getTimeInUs(); + cerr << "." << endl; + } + + if (screamRx->isFeedback(time_us) && + (screamRx->checkIfFlushAck() || + (time_us - screamRx->getLastFeedbackT() > rtcpFbInterval_us))) { + rtcpFbInterval_us = screamRx->getRtcpFbInterval(); + + pthread_mutex_lock(&lock_scream); + screamRx->createFeedback(time_us, buf, rtcpSize); + pthread_mutex_unlock(&lock_scream); + sendto(fd_in_rtp, buf, rtcpSize, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr)); + lastPunchNatT_us = getTimeInUs(); + } + usleep(500); + } +} + +#define MAX_CTRL_SIZE 8192 +#define MAX_BUF_SIZE 65536 +#define ALL_CODE + +int main(int argc, char* argv[]) +{ + unsigned char bufRtp[BUFSIZE]; + if (argc <= 1) { + cerr << "Usage :" << endl << " >scream_receiver incoming_ip incoming_port" << endl; + exit(-1); + } + in_ip = argv[1]; + in_port = atoi(argv[2]); + + + screamRx = new ScreamRx(SSRC_RTCP); + + in_rtp_addr.sin_family = AF_INET; + in_rtp_addr.sin_addr.s_addr = htonl(INADDR_ANY); + in_rtp_addr.sin_port = htons(in_port); + + if ((fd_in_rtp = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + perror("cannot create socket for incoming RTP packets"); + return 0; + } + + out_rtcp_addr.sin_family = AF_INET; + inet_aton(in_ip,(in_addr*) &out_rtcp_addr.sin_addr.s_addr); + out_rtcp_addr.sin_port = htons(in_port); + + for (int n=0; n < MAX_SOURCES; n++) { + local_rtp_addr[n].sin_family = AF_INET; + inet_aton(local_ip,(in_addr*) &local_rtp_addr[n].sin_addr.s_addr); + local_rtp_addr[n].sin_port = htons(local_port[n]); + if ((fd_local_rtp[n] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + perror("cannot create socket for outgoing RTP packets to renderer (video decoder)"); + return 0; + } + } + + int enable = 1; + if (setsockopt(fd_in_rtp, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)) < 0) { + perror("setsockopt(SO_REUSEADDR) failed"); + } + unsigned char set = 0x03; + if (setsockopt(fd_in_rtp, IPPROTO_IP, IP_RECVTOS, &set,sizeof(set)) < 0) { + cerr << "cannot set recvtos on incoming socket" << endl; + } else { + cerr << "socket set to recvtos" << endl; + } + + if (bind(fd_in_rtp, (struct sockaddr *)&in_rtp_addr, sizeof(in_rtp_addr)) < 0) { + perror("bind incoming_rtp_addr failed"); + return 0; + } else{ + cerr << "Listen on port " << in_port <<" to receive RTP from sender, this is the new version " << endl; + } + + struct sockaddr_in sender_rtp_addr; + socklen_t addrlen_sender_rtp_addr = sizeof(sender_rtp_addr); + + int recvlen; + + uint64_t last_received_time = 0; + uint32_t receivedRtp = 0; + + /* + * Send a small packet just to punch open a hole in the NAT, + * just one single byte will do. + * This makes in possible to receive packets on the same port + */ + sendto(fd_in_rtp, bufRtp, KEEP_ALIVE_PKT_SIZE, 0, (struct sockaddr *)&out_rtcp_addr, sizeof(out_rtcp_addr)); + lastPunchNatT_us = getTimeInUs(); + + pthread_t rtcp_thread; + pthread_mutex_init(&lock_scream, NULL); + pthread_create(&rtcp_thread, NULL, rtcpPeriodicThread, "Periodic RTCP thread..."); + + int *ecnptr; + unsigned char received_ecn; + + struct msghdr rcv_msg; + struct iovec rcv_iov[1]; + char rcv_ctrl_data[MAX_CTRL_SIZE]; + char rcv_buf[MAX_BUF_SIZE]; + + /* Prepare message for receiving */ + rcv_iov[0].iov_base = rcv_buf; + rcv_iov[0].iov_len = MAX_BUF_SIZE; + + rcv_msg.msg_name = NULL; // Socket is connected + rcv_msg.msg_namelen = 0; + rcv_msg.msg_iov = rcv_iov; + rcv_msg.msg_iovlen = 1; + rcv_msg.msg_control = rcv_ctrl_data; + rcv_msg.msg_controllen = MAX_CTRL_SIZE; + + for (;;) { + /* + * Wait for incoing RTP packet, this call can be blocking + */ + + /* + * Extract ECN bits + */ + int recvlen = recvmsg(fd_in_rtp, &rcv_msg, 0); + bool isEcnCe = false; + if (recvlen == -1) { + perror("recvmsg()"); + close(fd_in_rtp); + return EXIT_FAILURE; + } else { + struct cmsghdr *cmptr; + int *ecnptr; + unsigned char received_ecn; + for (cmptr = CMSG_FIRSTHDR(&rcv_msg); + cmptr != NULL; + cmptr = CMSG_NXTHDR(&rcv_msg, cmptr)) { + if (cmptr->cmsg_level == IPPROTO_IP && cmptr->cmsg_type == IP_TOS) { + ecnptr = (int*)CMSG_DATA(cmptr); + received_ecn = *ecnptr; + if (received_ecn == 0x3) + isEcnCe = true; + } + } + memcpy(bufRtp,rcv_msg.msg_iov[0].iov_base,recvlen); + } + uint64_t time_us = getTimeInUs(); + if (recvlen > 1) { + if (bufRtp[1] == 0x7F) { + // Packet contains statistics + recvlen -= 2; // 2 bytes + char s[1000]; + memcpy(s,&bufRtp[2],recvlen); + s[recvlen] = 0x00; + cout << s << endl; + } else if (bufRtp[1] == 0x7E) { + // Packet contains an SSRC map + nSources = (recvlen-2)/4; + for (int n=0; n < nSources; n++) { + uint32_t tmp_l; + memcpy(&tmp_l, bufRtp+2+n*4, 4); + ssrcMap[n] = ntohl(tmp_l); + } + } else { + if (time_us - last_received_time > 2000000) { + /* + * It's been more than 5 seconds since we last received an RTP packet + * let's reset everything to be on the safe side + */ + receivedRtp = 0; + pthread_mutex_lock(&lock_scream); + delete screamRx; + screamRx = new ScreamRx(SSRC_RTCP); + pthread_mutex_unlock(&lock_scream); + cerr << "Receiver state reset due to idle input" << endl; + } + last_received_time = time_us; + receivedRtp++; + + /* + * Parse RTP header + */ + uint16_t seqNr; + uint32_t ts; + uint32_t ssrc; + parseRtp(bufRtp,&seqNr, &ts, &ssrc); + + /* + * Map the RTP packets to correct display by means of the ssrcMap + */ + int ix = -1; + for (int n=0; n < nSources; n++) { + if (ssrc == ssrcMap[n]) { + ix = n; + break; + } + } + if (ix != -1) { + /* + * Forward RTP packet to the correct internal port, for e.g GStreamer playout + */ + sendto(fd_local_rtp[ix], bufRtp, recvlen, 0, (struct sockaddr *)&local_rtp_addr[ix], sizeof(local_rtp_addr[ix])); + } + + /* + * Register received RTP packet with ScreamRx + */ + pthread_mutex_lock(&lock_scream); + screamRx->receive(time_us, 0, ssrc, recvlen, seqNr, isEcnCe); + pthread_mutex_unlock(&lock_scream); + } + } + } +} diff --git a/RPI/scream/scream_sender/CMakeCache.txt b/RPI/scream/scream_sender/CMakeCache.txt new file mode 100644 index 0000000..01b7fee --- /dev/null +++ b/RPI/scream/scream_sender/CMakeCache.txt @@ -0,0 +1,255 @@ +# This is the CMakeCache file. +# For build in directory: /home/pi/scream/scream_sender +# It was generated by CMake: /usr/bin/cmake +# 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 +######################## + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING= + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=scream + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//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. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info 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 +scream_BINARY_DIR:STATIC=/home/pi/scream/scream_sender + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/pi/scream/scream_sender + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/pi/scream/scream_sender +//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=7 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//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_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_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=Unix Makefiles +//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=/home/pi/scream/scream_sender +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-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 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=2 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.7 +//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 + diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..d628b11 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "6.3.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +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 "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +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_LINK_LIBRARIES "c") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..0018983 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake @@ -0,0 +1,69 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "6.3.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;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_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_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "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_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_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +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 "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +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 "x86_64-linux-gnu") +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_LINK_LIBRARIES "stdc++;m;c") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55 GIT binary patch literal 8472 zcmb<-^>JfjWMqH=W(GS3FpnJ~;sBu-Zb(8I3=9ko3>FNW3=Ryk3^ELC3=9mcU@?e1 zOg)VL0XB?*0Y-B`lrb<fFfgz%Ffdp!K?Klg8Hg|gjD{Kmb{oh(s5A!E!UYk6(F_a< zU;&VRkXs+{g1HP2cp>62+5pWRFnu6lkiH*KeLtZ3VDtfy!3+!xFdF7Rkl#Q!1Y`gM z0|Pqk0&xZdj0UL%2?abYNdd7fI6*uH26Wm6BFq4zL25xlflo_PK<)&wiNOL;ML|&e zaD|Hk)cr6T>Rkr?oXjLM6aAbN-JHz4(hA)Q3o~6a6TRYmJtJ_ug3Jf0b@vMe+XONO z<UUZSgWN2_zyMAIAo<b=^FKC8t78xB&N9om=_mhgt?xom`T!+CkUkJSL7;(yK~aR0 zgN22+gN4BXBnFCVK?Vi}C)cZQvN)Zu?S4F|hR13;_ZsiV2X38xJkKcU_S+kU5i(iz zvubwse&pj3c{K0!<@bDG2jL(<;R<piy0jDn1A`E{AOizK4g)Nuph~XBA-*4nI5z_W zgA%F{U|s|R1A_pAID>!ys;lCm;tXiwv%umK3=(MKiC}xh8PL^NGcYg+GVn7nK+_v2 zZa@}yf&I(N&;U))sUSfH1_lr<#K6nI0Ez$x1_o`Y_<X3n=<Za9nqvSp#}%r63Rs+r z;RGmAK*d0m4p^L*;R94XDE>j>W?*qXhA&WYkQf-}WF{qplARete0*|6VtiU=USdvW zRVqV#JV+|OxFoTtBtADWGY=+`TwDrLmB|qA8R8qCl3J9So>^RyS`^~zoRgoI8j_fl zlgbdEnvz(O$Pgb7q9BGa#K))S=I22;@$n4tp8oO0B`KMC@ukJ7DafX0=4F;J#HZ$g z1e1!3Avzf1y~^T)pmsUuBo-H^7DJqX)dB84o=(p3MtVkireJ?Ez(RtFfe{A;se{OY z(hP{lz)&ic$;rUL#BdYBg_nEqV1zPWK+82Km*D_3emS7&2qq5WU*LzNM^N;E@;TIa zh8sxYFc*X59w3Q>@-|2egkK<u!_po|`~#9Wa(Vv)NgQN1NG%9^G{52S=w{{RRABIE zJy62*|AI&J5st$Q|4nakC@}n2y~Clvz%TE>@L!dQQ-L9E0!R-C8@~1Iycp-v`N*UB z$%lXtpI+8mj0_AOy}Zd_%9e+bf#JXCIt~SfFZ}W@AQ{`69108`y{sTA)I;-!N9R+I z<{x}zq8{C>bs(wM10|fX{~x4*)yEzN*_x)uFW&;Pj=`hXb|y$sujwQX1%^-$&3_>M z2mdj9bbjzS_`=?U@tDWOe<czg-K>Eib*%?Vcp!#B^rM^CVC%`Dz`#(d?$K<k4q}CR zbUrQN@#wbI;!t3C!TbOJ{}&$r|NoCY#;U-fz`*z!(>*U)6&O64?HNkBU&j6a{~zLR zk8akJ?2xd02{Q8kh1i!4|Ns97u{&$ucyyLNIPUrf<fU%cHy+6sJbGCVGB7akZ)0KN z-*<q~^$%S55Ss9x*u#k6nBW-h80Ogd-!arN#HUx)j};Uqy}BSe*t7GSXXjNP&8OhF zJ@}XTh4{b!|2<mYmM9qBhJ~k3=PRGiZ!Vqx9si5m@n}BG=wW%c^c5)XqhlRo9Ah2h z9ODm9Kv?+sFarbFJaFn@U|@vjE0A9p7(D&l{H=;Jt5WmR;!_GrilPlHVnH%s@x-Le zXjdOMkN~4Jvo)x$0HwhdfB*mQU|?X_@%R7#4GatnC;tBb4=T5R{QLj^1Oo#DDEwc5 z<p2NwZvf3Kp!yGFE@M>?17n2%qcjgY#{@=p0gyPT&6Dx>|9@E73Q`9W2hphN85mR; z7{F~LiNF8<gX&xcJ^?pA2`_%`a*hTDdns!zV-;|<0@4p|YyAEHAC{Lv=7H>rVPIg; z`1k)mxNLUh6KG>{=4E4Y;9=)r0Jl$S7#J8L{{8<CD*G9n_yqcyocJXAm|gi4dRd(K zG<sM)_zc?EJoqe{*?svOiuf!X`3xNSG@SSpocJW1_ynBzI2b_oA7Nl%X!!U4KXSPM za>FPd4S~@Rpiu}wGdrw4huH!xhQR$PkQfh$0F_;!0*!$I)WQRcz}j1|?jNkbBn_5j zV1OFW0BRqDgkbFmP`Lu)!{opI`=1Zu&wyrrSe<?VTIoZrW%vP=2es`%>YsuL1_lOD z`xwNO01*rf45CmPM#0(?JD}|YX!C{P1JojzJ8nQVK%2V^F!SV~;xKi;|3lo%2=(GW zDE|V~y#G)>EF3>T`OBd4KcRe>yP(EXje_+*sbwInUFYuXY^9(PnpB!sQmSC4XRK$S zYiLvo<{D{21Qd)649yKp3_wkCyw)=_Fv9!y$O@Smm>6LFVN`Kuh7xG}ql&XIz|sw> zI4eB8po+6Gz|s|}I6DI@eo)0Z7+~>=D$WT{Kd9oE{T7fsGXpon16V=^2|zJ30}sOo ztm24%6jUjgVrIb7&jI(B5&bl<LMXw^AOIgHfC_;rW(Glq3Rpr1i$Dlw1|fJq03re* znHhu`VEGp!0wI|hL>N9m`v(va2+7PK%785$GBb!V!15tPC4^*V!0dm5WSAKwF#5L; zaagGX;z2Mdzp*fU{14$FNKpC3h{c^C6POry84O?r0#pmA`~ry=po!}-fO<>3@cs`} zIk+9fh~!R?J3w;544^h7X1G;B&4Cw?AjJ#}3~gZbnBl(^JRXMWuf1UP{0sunc!ZUE zm!aYsP;uCx2FP95!sh{4y&yvatYC$@=N(uad;DTE=NDL?5Jo!TW(0+UI0LL40V`u* zV2}WdW2O^DkVCPgLldw#W_or9n}azH5)2l{OmCTtpz#{aafC`n?Bg|i!Qz<db1EaK zFO6w$G1z>}d^!g#4)Z;N-VHSeef;GF*j|J>80$JC_HmhKVDmA@W!S*xV~+bAgsMj$ zulWX5k3L?*!~_X9^zj;YChXxRjYHg&3Hx}~2e5mvl%L5(CB-GBX=!@N4Ds<^&Oz}$ zp1~pU@eGLZnfQ|2_+-!sO)+R#CO<wsCqF4MCqAVlzo<Aqv9y9AIX|}`C$%IsMbF&S z%n-XG@W@YmVo_0IWqfL0Nl_(3T2W$dYJ5s*Zf+$*d^{2_9yE-DqSV<pF+0^cBEmU8 zw;(eowaC%QQ!lxofFVB0$IvV@FD*YFspkk1wEznyCS@|j$GZhN`ntxu`niCHj=(;I zu~F;+jTxmB=f`Ix=B0qfp<E*U9DO~V8RC(h10K|3h>v&o3ypX6fEw-L62uT6AL8o_ zv&7xU-^tM@-rvnF*fk_R#L>yeH6D4GDlIdQ$U!i)ku(Pf<k2Zg#>nCk!()&kI+Di7 zP)GbwUB#eRT$x*vn8cu0Tv7y~GhnRDypq(S0tUUj{E}2XM<-9+lEic<FFmhRFR3&$ zCq*|ig+UL*%SbHFV9-mc%qy<Uh0rBM5Sg;nqT<Z_JQPlR5rbY)YEB|Z1A`tYW*PJf za!SC2UV45BgI-B$MG1o*IPCR`@<GFk40@><(1e$fQiR|^^g~i0L<fwWm0SdNN@8wi zGJ_t(jHKdX2EF9`+}zZ>5?CohJ`JiLK}9jFIfiR~24(|DEsPDKl^GyI#4!D^_8yFe zj2?niLNK%&0O2q&Fc_lghqVh~G-%udt{7Z*BJ&{Q7T^B=&xhF$Yd^wh(3l5E2ei44 zUQILjLHisq{jh!sj0Tn4ApM|b9mwynegmvO5e9Crf!Y!vRSfX<D6Cxy>(@YJL3JmL z1)<{@7#Ki(44D0}b}NilgD3;fy@8l8buc=cfq?<kXMyoy?OPZP3x9O?gUkY9Q2PZG zCoui6eiV#`^`p?k59WW+XeB6IK<0zYgN^gUXmOAr5(e3Y#AN`@KOpOewX0z?c&rOa z1B?%&`@!uR2JrkONExjC4WnW41(E|{bp8x9{jmBIMt=f14x|x^VfI3~4D-<R!}`%M z8rp1wDF@G)!8r^J3`?N;Vc`#(pMlZnoiB9z*P!XgHIE3h6FvNQq3MV9BVaUWTpXqs zM5BivXsi#^CWZBXVdDm{c}8^gFg}dF02(!h<{^;zuztx4=sYY;9Y_v@VSE^U2kL&9 z{jmPa2Lk#*W`XcS21we0>4)`mVDrGR`CeH1hS>{?hskL6!}>!z_(7&KFnB;HI0@4a zqhF!vhqoJ{7C<Qs{V;(K43L2fnEPSvJOQXim_0D{Xvvx3E7X1im;xvb)2|EV!zh@3 zWE!4!VTwTO1fceNKm!g`&w$E$n0sL52Pl8Q+>WH3p+gM93q&&<W-mk*)OLo<FT?mS P`X<zZe=q?kjjkU6ISZ}t literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000..50dad55 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.10.0-37-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.10.0-37-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.10.0-37-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.10.0-37-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..512e360 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,561 @@ +#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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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__) +# if defined(_MSC_VER) && !defined(__clang__) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#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 SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100644 index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81 GIT binary patch literal 8616 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..a6e6bed --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,533 @@ +/* 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 + + +/* 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 + /* __INTEL_COMPILER = VRP */ +# 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 +# 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 + +#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(__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(__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(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#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__) +# 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(__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(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# 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(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 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(__sgi) +# define COMPILER_ID "MIPSpro" + +#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(__CRAYXE) || defined(__CRAYXC) +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(__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(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#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" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#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_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# 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 + +#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 components. */ +#ifdef 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 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 "]"; + + + + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/RPI/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100644 index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766 GIT binary patch literal 8632 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..0ec4406 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pi/scream/scream_sender") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pi/scream/scream_sender") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/scream_sender/CMakeFiles/CMakeOutput.log b/RPI/scream/scream_sender/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..c3698a8 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/CMakeOutput.log @@ -0,0 +1,560 @@ +The system is: Linux - 4.10.0-37-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/user/scream_panasonic/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/user/scream_panasonic/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d13ba/fast" +/usr/bin/make -f CMakeFiles/cmTC_d13ba.dir/build.make CMakeFiles/cmTC_d13ba.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_d13ba +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d13ba.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_d13ba.dir/testCCompiler.c.o -o cmTC_d13ba -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_2a927/fast" +/usr/bin/make -f CMakeFiles/cmTC_2a927.dir/build.make CMakeFiles/cmTC_2a927.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_2a927 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a927.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -o cmTC_2a927 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cciIeLsA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a927 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_2a927/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_2a927.dir/build.make CMakeFiles/cmTC_2a927.dir/build] + ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_2a927] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a927.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -o cmTC_2a927 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_2a927' '-rdynamic' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/cciIeLsA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a927 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cciIeLsA.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_2a927] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] + arg [CMakeFiles/cmTC_2a927.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_bf6b4/fast" +/usr/bin/make -f CMakeFiles/cmTC_bf6b4.dir/build.make CMakeFiles/cmTC_bf6b4.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c +Linking C executable cmTC_bf6b4 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bf6b4.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_bf6b4.dir/feature_tests.c.o -o cmTC_bf6b4 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_89a4a/fast" +/usr/bin/make -f CMakeFiles/cmTC_89a4a.dir/build.make CMakeFiles/cmTC_89a4a.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c +Linking C executable cmTC_89a4a +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_89a4a.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_89a4a.dir/feature_tests.c.o -o cmTC_89a4a -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_bf412/fast" +/usr/bin/make -f CMakeFiles/cmTC_bf412.dir/build.make CMakeFiles/cmTC_bf412.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_bf412.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_bf412.dir/feature_tests.c.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.c +Linking C executable cmTC_bf412 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bf412.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_bf412.dir/feature_tests.c.o -o cmTC_bf412 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_ea3ab/fast" +/usr/bin/make -f CMakeFiles/cmTC_ea3ab.dir/build.make CMakeFiles/cmTC_ea3ab.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_ea3ab +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ea3ab.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_ea3ab.dir/testCXXCompiler.cxx.o -o cmTC_ea3ab -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_9a8a9/fast" +/usr/bin/make -f CMakeFiles/cmTC_9a8a9.dir/build.make CMakeFiles/cmTC_9a8a9.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_9a8a9 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9a8a9.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9a8a9 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuqNCoS.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_9a8a9 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_9a8a9/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_9a8a9.dir/build.make CMakeFiles/cmTC_9a8a9.dir/build] + ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_9a8a9] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9a8a9.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_9a8a9 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 6.3.0-12ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-6/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-6-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-6-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-6-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 6.3.0 20170406 (Ubuntu 6.3.0-12ubuntu2) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/6/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/6/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_9a8a9' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/6/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper -plugin-opt=-fresolution=/tmp/ccuqNCoS.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_9a8a9 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/6 -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/6/../../.. CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/6/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccuqNCoS.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_9a8a9] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] + arg [CMakeFiles/cmTC_9a8a9.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/6/crtendS.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6] ==> [/usr/lib/gcc/x86_64-linux-gnu/6] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/6/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/6;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_de348/fast" +/usr/bin/make -f CMakeFiles/cmTC_de348.dir/build.make CMakeFiles/cmTC_de348.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_de348 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_de348.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_de348.dir/feature_tests.cxx.o -o cmTC_de348 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_df609/fast" +/usr/bin/make -f CMakeFiles/cmTC_df609.dir/build.make CMakeFiles/cmTC_df609.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_df609 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_df609.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_df609.dir/feature_tests.cxx.o -o cmTC_df609 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_bda1a/fast" +/usr/bin/make -f CMakeFiles/cmTC_bda1a.dir/build.make CMakeFiles/cmTC_bda1a.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/scream_sender/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_bda1a +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bda1a.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_bda1a.dir/feature_tests.cxx.o -o cmTC_bda1a -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/scream_sender/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/RPI/scream/scream_sender/CMakeFiles/Makefile.cmake b/RPI/scream/scream_sender/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..7c9aa76 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/Makefile.cmake @@ -0,0 +1,48 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "CMakeFiles/3.7.2/CMakeCCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.7.2/CMakeSystem.cmake" + "CMakeLists.txt" + "code/CMakeLists.txt" + "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.7/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + "code/CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "code/CMakeFiles/scream_sender.dir/DependInfo.cmake" + ) diff --git a/RPI/scream/scream_sender/CMakeFiles/Makefile2 b/RPI/scream/scream_sender/CMakeFiles/Makefile2 new file mode 100644 index 0000000..b0a6b8d --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/Makefile2 @@ -0,0 +1,126 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/scream_sender + +#============================================================================= +# Directory level rules for directory code + +# Convenience name for "all" pass in the directory. +code/all: code/CMakeFiles/scream_sender.dir/all + +.PHONY : code/all + +# Convenience name for "clean" pass in the directory. +code/clean: code/CMakeFiles/scream_sender.dir/clean + +.PHONY : code/clean + +# Convenience name for "preinstall" pass in the directory. +code/preinstall: + +.PHONY : code/preinstall + +#============================================================================= +# Target rules for target code/CMakeFiles/scream_sender.dir + +# All Build rule for target. +code/CMakeFiles/scream_sender.dir/all: + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/depend + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/pi/scream/scream_sender/CMakeFiles --progress-num=1,2,3,4 "Built target scream_sender" +.PHONY : code/CMakeFiles/scream_sender.dir/all + +# Include target in all. +all: code/CMakeFiles/scream_sender.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +code/CMakeFiles/scream_sender.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_sender.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles 0 +.PHONY : code/CMakeFiles/scream_sender.dir/rule + +# Convenience name for target. +scream_sender: code/CMakeFiles/scream_sender.dir/rule + +.PHONY : scream_sender + +# clean rule for target. +code/CMakeFiles/scream_sender.dir/clean: + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/clean +.PHONY : code/CMakeFiles/scream_sender.dir/clean + +# clean rule for target. +clean: code/CMakeFiles/scream_sender.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_sender/CMakeFiles/TargetDirectories.txt b/RPI/scream/scream_sender/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..dfd9217 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/pi/scream/scream_sender/CMakeFiles/rebuild_cache.dir +/home/pi/scream/scream_sender/CMakeFiles/edit_cache.dir +/home/pi/scream/scream_sender/code/CMakeFiles/rebuild_cache.dir +/home/pi/scream/scream_sender/code/CMakeFiles/edit_cache.dir +/home/pi/scream/scream_sender/code/CMakeFiles/scream_sender.dir diff --git a/RPI/scream/scream_sender/CMakeFiles/cmake.check_cache b/RPI/scream/scream_sender/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/RPI/scream/scream_sender/CMakeFiles/feature_tests.bin b/RPI/scream/scream_sender/CMakeFiles/feature_tests.bin new file mode 100644 index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72 GIT binary patch literal 12520 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 V8;ec<QVozS1H(TE1t-z<0{~bDZFK+u literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/CMakeFiles/feature_tests.c b/RPI/scream/scream_sender/CMakeFiles/feature_tests.c new file mode 100644 index 0000000..6590dde --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/scream_sender/CMakeFiles/feature_tests.cxx b/RPI/scream/scream_sender/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000..b93418c --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/RPI/scream/scream_sender/CMakeFiles/progress.marks b/RPI/scream/scream_sender/CMakeFiles/progress.marks new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeFiles/progress.marks @@ -0,0 +1 @@ +4 diff --git a/RPI/scream/scream_sender/CMakeLists.txt b/RPI/scream/scream_sender/CMakeLists.txt new file mode 100644 index 0000000..2b4e245 --- /dev/null +++ b/RPI/scream/scream_sender/CMakeLists.txt @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 2.6) + +PROJECT( scream ) + +message("Source Dir:" ${scream_SOURCE_DIR}) + +SET(EXECUTABLE_OUTPUT_PATH ${scream_SOURCE_DIR}/bin) +SET(LIBRARY_OUTPUT_PATH ${scream_SOURCE_DIR}/lib) +SET(RUNTIME_OUTPUT_DIRECTORY ${scream_SOURCE_DIR}/bin) + +SET(scream_BIN ${scream_SOURCE_DIR}/bin) + +message("scream_SOURCE_DIR directories:" ${scream_SOURCE_DIR}) + +IF(UNIX) +add_definitions(-std=c++0x) +ENDIF(UNIX) + +IF(WIN32) +IF(MSVC12) +message("Detected MSVC12 compiler") +set(MSVC_VER VC12) +ELSEIF(MSVC11) +message("Detected MSVC11 compiler") +set(MSVC_VER VC11) +ELSEIF(MSVC10) +message("Detected MSVC10 compiler") +set(MSVC_VER VC10) +ELSEIF(MSVC14) +message("Detected MSVC14 compiler") +set(MSVC_VER VC14) +ELSE(MSVC12) +message("WARNING: Unknown/unsupported MSVC version") +ENDIF(MSVC12) +ENDIF(WIN32) + +if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 64bit + message("Detected 64-bit build - compiling with -fPIC") + SET(CMAKE_CXX_FLAGS "-fPIC -fpermissive -pthread") +else( CMAKE_SIZEOF_VOID_P EQUAL 8 ) +# 32 bit +message("Detected 32-bit build") +SET(CMAKE_CXX_FLAGS "-fpermissive -pthread") +endif( CMAKE_SIZEOF_VOID_P EQUAL 8 ) + +#SET(LDFLAGS "-lrt -pthread -lpthread") + +SET(screamIncludes +${scream_SOURCE_DIR} +${scream_SOURCE_DIR}/code +) + +message("screamIncludes directories:" ${screamIncludes}) + +# lib directories +IF(WIN32) +SET(screamLink +${scream_SOURCE_DIR}/../lib +) +ELSEIF(UNIX) +SET(screamLink +${scream_SOURCE_DIR}/../lib +/usr/local/lib +/usr/lib +) +ENDIF(WIN32) + +SET(LibDir +${scream_SOURCE_DIR}/../lib +) + + +set(LIBS ${LIBS} -lrt -pthread) + +message("LibDir directories:" ${LibDir}) + +# Include directories +INCLUDE_DIRECTORIES( +${scream_SOURCE_DIR}/../include +) + +ADD_SUBDIRECTORY( code) diff --git a/RPI/scream/scream_sender/Makefile b/RPI/scream/scream_sender/Makefile new file mode 100644 index 0000000..8f3cf80 --- /dev/null +++ b/RPI/scream/scream_sender/Makefile @@ -0,0 +1,148 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/scream_sender + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles /home/pi/scream/scream_sender/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named scream_sender + +# Build rule for target. +scream_sender: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 scream_sender +.PHONY : scream_sender + +# fast build rule for target. +scream_sender/fast: + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build +.PHONY : scream_sender/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... scream_sender" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_sender/bin/scream_sender b/RPI/scream/scream_sender/bin/scream_sender new file mode 100755 index 0000000000000000000000000000000000000000..2716fd7fc63730fdf6efbe8e9342721aa5a5d932 GIT binary patch literal 78988 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 MJw^uPlNw;^0L&(u4gdfE literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/cmake_install.cmake b/RPI/scream/scream_sender/cmake_install.cmake new file mode 100644 index 0000000..846ae66 --- /dev/null +++ b/RPI/scream/scream_sender/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/pi/scream/scream_sender + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +if(NOT CMAKE_INSTALL_LOCAL_ONLY) + # Include the install script for each subdirectory. + include("/home/pi/scream/scream_sender/code/cmake_install.cmake") + +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/pi/scream/scream_sender/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/RPI/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake b/RPI/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..0ec4406 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/pi/scream/scream_sender") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/pi/scream/scream_sender") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/RPI/scream/scream_sender/code/CMakeFiles/progress.marks b/RPI/scream/scream_sender/code/CMakeFiles/progress.marks new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +4 diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache new file mode 100644 index 0000000..8325fd4 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache @@ -0,0 +1,62 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/pi/scream/scream_sender/code/RtpQueue.cpp +RtpQueue.h +/home/pi/scream/scream_sender/code/RtpQueue.h +iostream +- +string.h +- + +/home/pi/scream/scream_sender/code/RtpQueue.h + +/home/pi/scream/scream_sender/code/ScreamRx.h +cstdint +- +list +- + +/home/pi/scream/scream_sender/code/ScreamTx.cpp +RtpQueue.h +/home/pi/scream/scream_sender/code/RtpQueue.h +ScreamTx.h +/home/pi/scream/scream_sender/code/ScreamTx.h +ScreamRx.h +/home/pi/scream/scream_sender/code/ScreamRx.h +winSock2.h +- +arpa/inet.h +- +cstdint +- +cmath +- +string.h +- +iostream +- +algorithm +- +stdio.h +- +stdlib.h +- +math.h +- + +/home/pi/scream/scream_sender/code/ScreamTx.h +string.h +- +iostream +- +cstdint +- + +/home/pi/scream/scream_sender/code/scream_sender.cpp + diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake new file mode 100644 index 0000000..3c3288c --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake @@ -0,0 +1,25 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/pi/scream/scream_sender/code/RtpQueue.cpp" "/home/pi/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" + "/home/pi/scream/scream_sender/code/ScreamTx.cpp" "/home/pi/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" + "/home/pi/scream/scream_sender/code/scream_sender.cpp" "/home/pi/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../include" + "." + "code" + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..57ed2b0231188518261dfe63677a9b6c500fca61 GIT binary patch literal 7976 zcmb<-^>JflWMqH=Mg|QA1doA1KoTs&Y67M-7}Ocm!1CM-3=BLB3=F&s3}C)60|SF7 z0|SE?lrIIPWuUYi0|Nug2HmF&8+sq{T=0Fw!NC2L!$A5egTjKxchnEV*%#EC!R%VQ z=0_|B&5uCx8x#&d1gT|aSn!bHLiZz<4RfE!{nvje;Gz4HV?*yFkqf?$BpA4#$~ew{ z%Hq)fK*B)!DM;<V|Nmd}7|wsnY%t|HheGoskT`=v^HT<c1&;*`xSt9bNIzxd4t~tX zz_6;0Z^2`bdIp0951AbnJY->5@DRk8P>=?zV>VpyklCQ=0gFR3n9pd?{0L;m+yDPx zfy`yJYJSA5u;3ws!Gp&v22D><#TGo~z#_(jMN9yTm<Sdz2@J6Zk7b}@ObiUKVD1O` z0TdP-7rY+{bnJa00gGG@-IpvIdLJoV@O>n}!2MK2fcvS00{2r6F7CIx480$M!^R2} z2a}(I{K{bfi7!xiF)}bnfx-|ZCZHe<jxTul7)*Y8$NchB28Q6rUJMLUFmpg*1BydX z*ucbC3?@GX=||QJaw{n8K<Y&Vq@RM^k54@;o$OMKeh5k@_|$^p5|qC1sR5bCVbJ_Y zK>?IDp>Yij2XwbGLennHJQ0P-;CKh66OdX)t)@qyxP!?{7(l`jCI^Z`0S1U485kH| zF)%E6$a2B^5ktq`7Yxw&5rF0u9s%yB0t(zuMPTt@)%=LVVDeKA1?i{A;RgzPMg!$X z#Rl)6f#QIXfq@GYSN;qPuR!4sN~hTLT~MD4PS>FPflnQ?zyfgEU@(~c6ck51Q1|20 z0}4}6Uf!T^`Jsq`^ixng;ZqOF^RO}j=3a0bRFHlO3R6&CLe>vTlPnAjQZO-)yFh+M zRtJh3P&|O$ZQ%3(6mB51K=A|92Z<l&M=&{1{BS`1$7rzNF(_@q;s;w<26HP&KfX9& zWnkcf*$HtgB=2$&iX(GKe1qH#%Il!?f?OWra+3@wuF%R(TxzkU4eV*^!DCJW?uEy@ z!R3dbup`E;A|$vK6kmkQW#;033kz#v{U%U#|1CEWegl;g3{{ukGFM5zO|L3{m(I1} z9kL(6RVIOa3`&mzpn49Jml>p=8voaS2&#j?dDmdUVFrT*mtlFCje&s+lz%|w2akaC zQ{=P>E<bRjQBeH|D&rw}0#S~0F)*wGnFR_T<n)S?{|rFo4ENKI|Np-N<sVQQhoxEM zvK%4?spnADEqDy7=g`GK`3_wSl;2RrAo&74ox|#VP&)$TFHqf;-~g%n!TK439}6-t zNP)u2M`8X`CWhdLybKIdE(V~sK>q_!ngP`-7BIfTf`<lR_LS$K@=XKGMyLbX534_8 z7#JA-|7T!uU|?W?w22rPR6r38jb{#l`A-=c7CgTC|Nm=HISx|Gzyeahz+e$nQV>|0 zTAGTZEd&Z%0W9esq#IUkw>Zvb+^}Io<NyDRd;u&B3<)fAm>8BYfo*V@&DgkMLqiKl zJuWs#4rEpUh{3?X(8I{UpuoVupu^0-pu@nxaE1lao=aeb&^=I^hYiBFfYK>Y`U@Ka zg9QTvLjgNP-h%@|-+|KT<%|X>J{0;NsDQ(G61ZIkN`J6=2NXBRc?cY~P`85I4Q1k` zIPl71O2X6|8p9&UGc7S06iW;Y4DQa(Rtg$HiNys;nTdG{W_reY2D*k8+C>GKhMEwr zf{}rtxq+#n8H1x90|P^1YGP6*10%@gtY!>sY#fZ7j9g4YEFz4ejN;4^jFOB}Ofrme zY)aVt(~RUi7KV@ik+=-Z3~b0;24)7B%OS$d44e=Klw@Y$0=LbfTn1260Gv=j=?~m4 z=R!y^FfcGPa5IRbh=5x82mxkriyxWKi)KDA1E}2(vIFEdMg}ehQ>bzXpA$_zCz^fe z{^N)0hEU85f@t~$ArerMnL!xMJYleUP+o;70rgTKED*^I?y-Pa5X{UV238N@fk+6y z1>|@Tmw^pUo*!%<C=Y?9q4FQ#-e3dEgYpPW9zsJ%W(El~^CTb=P?DKJ3QZmqx==}Q ze9556gL+%Y@^WbMattmE3=E(=I)#COfeGr~Bk*JdaW5$ELQG*}C}Ch=0P#U4!_<F4 zQV&rFA(<KE(d?6lNI*$u1|^0GP&R~Of>2PBnL!cCf>6v1$`A&WWJWWcnE_otGgKvn zVulsG5H15V11rOFC>vDPDKT&}oPzQ}<)IJ*8^Z%M{x>M!gMooTi9wiw7oHXv7z7v? z7?h!WP;OUbkYX^0@?q-z7#SEqX4^0_Fo4XDhsuMD1?f*k<L999>!5s)`GO1*;PM)z z7lc9j7owTJi4jt!FM!&23aTHb{vso!j0eR($UWcC<awDObpcGjDiZ?(s4f777f8J` z69WUNPH13&_$P^pfdN!Ez~t+h7#Kix1dKnMiGcxBSAgOjq<=FL0|O{O)IjxLW`fim zH=z6%Opy8%G`0Zp?>A@^gOZ#ggA4-~QWS&yFN?-^V`c!CilCBBkb#RK1WmpQ$_MFH zWRPR%gYseFvkZ;D6`9Y(z;Fne57MNP!Vn+jV`!WWt2=@-t5O+M5*gy7f=hf1EekSJ zlT*txi&Nv1^Ye;Jib|79AW|0b@tOIVd6^)tiD7(vaY<rHW^z18Br`E5vnsJ9Ge0jr zF)t-PB^9C%#5c&yWQce7@pp3ciH|QXO^Wx7hgqzbTu{IeALWNujX9gTmVt!ftq((s z^wbiNEB(`a5{paRiV|~EAxaF5U}kxiq~<ysVHGumilSDQ5XDf3`MbFVyN1MvI6C>b z#xul6g@mEG3FIC$A!n$$aA!hHjLIv|Vu+7Q$q6W9h>uUMNQ_U-ONmd;NlnZv1^G54 z46cD8K0dvoBEBHCs5n0_F(<R6GQP|JWD{Hkh8-parNtSp0cDvbX$-lkxyc2UDC&(2 zlJj#5N=s59q2-raQ4&;A0P=r4xRQ@A%`49YIj5i?zM#kuMXzx|et~O1Sx{yWD1!aq zZZI@1&a6uHPeU>+3Q5+aIJMBP2&c4BQe{bMv1cB*83}R-vR*@o$=KvTQSOqOlUV7R zhT=*?gW}Y@lz_zK?9>u$t~CXPbP?F15Kp)tKvC+67Jty#DJU&UjW5eADk)9O0Vxaf zGc*9jTSa10W|^UpL4161W_)r^VsUYNNo7H5d}dx+zAH#!FpBA@+6>L(vFpKbLzG`| ziA839aePu@ajJ=DUS<g-&Y|&@Sdv-+%5d>1#rg3WiFqkGsi5FM*W&_8iwq0}3=9l1 zRtyXaK(svr!v+v-$-q#+$iN`uz`#%fq8%9+K<xubYX*i6(7>1z1A_?@1A~kk1A_!J z1A~k^1H%mv?Z&{cg9XA5VP{~F@nm4=;b35piC|#Z0-_@s7(n$f$ec4A3=GUH3=9`Q zbQA-_6%Galsb~g<8z4TYamB#Epam)rL9{cd5Mp4^VuF-=AR1J5Y6(K>ClDW0)-iZ6 zFo=NE3o<Z(S{Wd5P@N7^2WtO=_!=O2CI$urC=F`YgTz7YClC#)(?B$+J_FGqAa#Na z3=tq2R8K(Z3@8oK2l5Z7%^_t2b*BgexK?Hggt(U}05Xou<OOjrlQ+bjOg<2IGWjwv zfZWOC2kECUnM3LarVs`Okb9XzA^jGnAgH-PP;-N!<_1H}4ThQ<3^g|xYHl#p++c|N zn8KjughTmS3=9l<#g(}wiAfB4#U(`$Is?WkO3l$LNv$Yh&`U`yNo3GVDlTTwE6Rs( z9D{uIQY%UllfX*!;*m2eC`Uqy734x#4`d!hTV_fHIoiPPLotN`Y$(W)AQzxz8E`49 z2eA>^p;(on7z=kCPNkqg0NY)Z4{-yMfF8D50jwBJ5k@%!4PB4{!Dv=PYys7v@rgx6 ziIog`$@#gtsd*&~dU^RJse0~yp}NH-iOJavU>_%zloVwqm6oIyGw7uk<(Go;J0#W# zlaCo07?67(ps@f@J_EJW%%S}&P*z1(2g(aDb^3VJf$|n8i-XJqWgU=NAdGGvXgmU@ zE(ni#DGZQ&0WuGiv_WQpFsOwNY68N#EIAAe3_m~yLW2OL2E>$RU;y_nL3tX)ml0)P zn85(aiy*xqbs%l3;C>~jF9}k`z>tF4C55-(wW02THK#!8K<<F(g5*IE8&np7#G%bV zuz5lt2`C2H3t~D!?PY^1tl)%{3m`cVhN%OUX<+l9>XzVeUp~aVf+i$&ApgO7#4z)+ z(ZXemC?cFeb7LTNAbraq=D~X`Yd9IeeKC;RKp3PBL@z=!Zx51rpx!V@9mu?`5c3L} zK$;jB7(Q@9>MKxOfP_HmK=ej5^Nt|J8z}vP)Pc-<4Ka@a7Jdm_44^6lWCR$4)PWcW z(9DYwgOsnJbOq{NgVce{dk8g;2^xMYKn-$`0Z<Hz0}zvk5j<W54`+}%kbaO^AbF5^ zAew^_HT~s?A;K9n=Lk{<(g*5)fy{=bs|{R``V3?S2!qstXk#?<O2i=b7|0)>`VpiK zWS$4aeGJS{e>~uVq<N4TAPiCmqFvC;J0k`eBLtZT>a~N^fy~QAGmnKE;t!A+APiCm zqBGIV;}J)MGpIfUsRNnU2Q?2C&OF=@bs#f97^DtFuVZ9j-~*2tfOrfHGTewf1`+|O z1L0L@_R5Gu+z0XpsH^~~0ol6?YA+~%g7hnJGcbS#zd&pd2E_pgABL&}iGi>mECYc! z&@=*KUS<TB8So+)qz+U*g5*FLWEPBuMg@q=(7?^WaDbJ80aWh5%3V<T3d+{7GyqcQ cAjrUQ3rPTG9w-kW2{WjOGcde@Ng}xq03f8Gi2wiq literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..7f7e674ae3d05fed89c1bbf8d0ee6edb4bb96c39 GIT binary patch literal 40828 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 bn2NOa0AvnG9Mr}^R>w1$fx#3>0HzKA2g|dt literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make new file mode 100644 index 0000000..1bf79ff --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make @@ -0,0 +1,167 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/scream_sender + +# Include any dependencies generated for this target. +include code/CMakeFiles/scream_sender.dir/depend.make + +# Include the progress variables for this target. +include code/CMakeFiles/scream_sender.dir/progress.make + +# Include the compile flags for this target's objects. +include code/CMakeFiles/scream_sender.dir/flags.make + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pi/scream/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/RtpQueue.cpp.o -c /home/pi/scream/scream_sender/code/RtpQueue.cpp + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/RtpQueue.cpp.i" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pi/scream/scream_sender/code/RtpQueue.cpp > CMakeFiles/scream_sender.dir/RtpQueue.cpp.i + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/RtpQueue.cpp.s" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pi/scream/scream_sender/code/RtpQueue.cpp -o CMakeFiles/scream_sender.dir/RtpQueue.cpp.s + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires: + +.PHONY : code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides.build +.PHONY : code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o + + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pi/scream/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/ScreamTx.cpp.o -c /home/pi/scream/scream_sender/code/ScreamTx.cpp + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/ScreamTx.cpp.i" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pi/scream/scream_sender/code/ScreamTx.cpp > CMakeFiles/scream_sender.dir/ScreamTx.cpp.i + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/ScreamTx.cpp.s" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pi/scream/scream_sender/code/ScreamTx.cpp -o CMakeFiles/scream_sender.dir/ScreamTx.cpp.s + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires: + +.PHONY : code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides.build +.PHONY : code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o + + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/CMakeFiles/scream_sender.dir/flags.make +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/scream_sender.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/pi/scream/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/scream_sender.cpp.o -c /home/pi/scream/scream_sender/code/scream_sender.cpp + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/scream_sender.dir/scream_sender.cpp.i" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/pi/scream/scream_sender/code/scream_sender.cpp > CMakeFiles/scream_sender.dir/scream_sender.cpp.i + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/scream_sender.dir/scream_sender.cpp.s" + cd /home/pi/scream/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/pi/scream/scream_sender/code/scream_sender.cpp -o CMakeFiles/scream_sender.dir/scream_sender.cpp.s + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires: + +.PHONY : code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires + $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides.build +.PHONY : code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.provides.build: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o + + +# Object files for target scream_sender +scream_sender_OBJECTS = \ +"CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" \ +"CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" \ +"CMakeFiles/scream_sender.dir/scream_sender.cpp.o" + +# External object files for target scream_sender +scream_sender_EXTERNAL_OBJECTS = + +bin/scream_sender: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o +bin/scream_sender: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o +bin/scream_sender: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o +bin/scream_sender: code/CMakeFiles/scream_sender.dir/build.make +bin/scream_sender: code/CMakeFiles/scream_sender.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/pi/scream/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking CXX executable ../bin/scream_sender" + cd /home/pi/scream/scream_sender/code && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/scream_sender.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +code/CMakeFiles/scream_sender.dir/build: bin/scream_sender + +.PHONY : code/CMakeFiles/scream_sender.dir/build + +code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o.requires +code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o.requires +code/CMakeFiles/scream_sender.dir/requires: code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o.requires + +.PHONY : code/CMakeFiles/scream_sender.dir/requires + +code/CMakeFiles/scream_sender.dir/clean: + cd /home/pi/scream/scream_sender/code && $(CMAKE_COMMAND) -P CMakeFiles/scream_sender.dir/cmake_clean.cmake +.PHONY : code/CMakeFiles/scream_sender.dir/clean + +code/CMakeFiles/scream_sender.dir/depend: + cd /home/pi/scream/scream_sender && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/pi/scream/scream_sender /home/pi/scream/scream_sender/code /home/pi/scream/scream_sender /home/pi/scream/scream_sender/code /home/pi/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/scream_sender.dir/depend + diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake new file mode 100644 index 0000000..045d102 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake @@ -0,0 +1,12 @@ +file(REMOVE_RECURSE + "CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" + "CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" + "CMakeFiles/scream_sender.dir/scream_sender.cpp.o" + "../bin/scream_sender.pdb" + "../bin/scream_sender" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/scream_sender.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal new file mode 100644 index 0000000..34cc2de --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal @@ -0,0 +1,13 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o + /home/pi/scream/scream_sender/code/RtpQueue.cpp + /home/pi/scream/scream_sender/code/RtpQueue.h +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o + /home/pi/scream/scream_sender/code/RtpQueue.h + /home/pi/scream/scream_sender/code/ScreamRx.h + /home/pi/scream/scream_sender/code/ScreamTx.cpp + /home/pi/scream/scream_sender/code/ScreamTx.h +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o + /home/pi/scream/scream_sender/code/scream_sender.cpp diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make new file mode 100644 index 0000000..6ebc7b0 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make @@ -0,0 +1,13 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.cpp +code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o: code/RtpQueue.h + +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/RtpQueue.h +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamRx.h +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.cpp +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o: code/ScreamTx.h + +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o: code/scream_sender.cpp + diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make new file mode 100644 index 0000000..c981ec6 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -fPIC -fpermissive -pthread -std=c++0x + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/pi/scream/scream_sender/../include -I/home/pi/scream/scream_sender -I/home/pi/scream/scream_sender/code + diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt new file mode 100644 index 0000000..8940f42 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -fpermissive -pthread CMakeFiles/scream_sender.dir/RtpQueue.cpp.o CMakeFiles/scream_sender.dir/ScreamTx.cpp.o CMakeFiles/scream_sender.dir/scream_sender.cpp.o -o ../bin/scream_sender -L/home/pi/scream/scream_sender/../lib -L/usr/local/lib -rdynamic diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make new file mode 100644 index 0000000..a69a57e --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make @@ -0,0 +1,5 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 + diff --git a/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o b/RPI/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..34426e56f872faf61374de4738f53aa2c4ebc01f GIT binary patch literal 28328 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 literal 0 HcmV?d00001 diff --git a/RPI/scream/scream_sender/code/CMakeLists.txt b/RPI/scream/scream_sender/code/CMakeLists.txt new file mode 100644 index 0000000..a3a4646 --- /dev/null +++ b/RPI/scream/scream_sender/code/CMakeLists.txt @@ -0,0 +1,33 @@ +# source files +SET(SRCS +RtpQueue.cpp +ScreamTx.cpp +scream_sender.cpp +) + +SET(HEADERS +RtpQueue.h +ScreamRx.h +ScreamTx.h +) + +SET(SRC_1 +${SRCS} +scream_sender.cpp +) + +INCLUDE_DIRECTORIES( +${screamIncludes} +) + +LINK_DIRECTORIES( +${screamLink} +) + +ADD_EXECUTABLE(scream_sender ${SRC_1} ${HEADERS}) + + +TARGET_LINK_LIBRARIES ( +scream_sender +${screamLibs} +) diff --git a/RPI/scream/scream_sender/code/Makefile b/RPI/scream/scream_sender/code/Makefile new file mode 100644 index 0000000..8d64f4d --- /dev/null +++ b/RPI/scream/scream_sender/code/Makefile @@ -0,0 +1,240 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.7 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/pi/scream/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/pi/scream/scream_sender + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + cd /home/pi/scream/scream_sender && $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles /home/pi/scream/scream_sender/code/CMakeFiles/progress.marks + cd /home/pi/scream/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/pi/scream/scream_sender/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/pi/scream/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + cd /home/pi/scream/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/pi/scream/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/pi/scream/scream_sender && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +# Convenience name for target. +code/CMakeFiles/scream_sender.dir/rule: + cd /home/pi/scream/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_sender.dir/rule +.PHONY : code/CMakeFiles/scream_sender.dir/rule + +# Convenience name for target. +scream_sender: code/CMakeFiles/scream_sender.dir/rule + +.PHONY : scream_sender + +# fast build rule for target. +scream_sender/fast: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/build +.PHONY : scream_sender/fast + +RtpQueue.o: RtpQueue.cpp.o + +.PHONY : RtpQueue.o + +# target to build an object file +RtpQueue.cpp.o: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o +.PHONY : RtpQueue.cpp.o + +RtpQueue.i: RtpQueue.cpp.i + +.PHONY : RtpQueue.i + +# target to preprocess a source file +RtpQueue.cpp.i: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.i +.PHONY : RtpQueue.cpp.i + +RtpQueue.s: RtpQueue.cpp.s + +.PHONY : RtpQueue.s + +# target to generate assembly for a file +RtpQueue.cpp.s: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.s +.PHONY : RtpQueue.cpp.s + +ScreamTx.o: ScreamTx.cpp.o + +.PHONY : ScreamTx.o + +# target to build an object file +ScreamTx.cpp.o: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o +.PHONY : ScreamTx.cpp.o + +ScreamTx.i: ScreamTx.cpp.i + +.PHONY : ScreamTx.i + +# target to preprocess a source file +ScreamTx.cpp.i: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.i +.PHONY : ScreamTx.cpp.i + +ScreamTx.s: ScreamTx.cpp.s + +.PHONY : ScreamTx.s + +# target to generate assembly for a file +ScreamTx.cpp.s: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.s +.PHONY : ScreamTx.cpp.s + +scream_sender.o: scream_sender.cpp.o + +.PHONY : scream_sender.o + +# target to build an object file +scream_sender.cpp.o: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o +.PHONY : scream_sender.cpp.o + +scream_sender.i: scream_sender.cpp.i + +.PHONY : scream_sender.i + +# target to preprocess a source file +scream_sender.cpp.i: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.i +.PHONY : scream_sender.cpp.i + +scream_sender.s: scream_sender.cpp.s + +.PHONY : scream_sender.s + +# target to generate assembly for a file +scream_sender.cpp.s: + cd /home/pi/scream/scream_sender && $(MAKE) -f code/CMakeFiles/scream_sender.dir/build.make code/CMakeFiles/scream_sender.dir/scream_sender.cpp.s +.PHONY : scream_sender.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... scream_sender" + @echo "... RtpQueue.o" + @echo "... RtpQueue.i" + @echo "... RtpQueue.s" + @echo "... ScreamTx.o" + @echo "... ScreamTx.i" + @echo "... ScreamTx.s" + @echo "... scream_sender.o" + @echo "... scream_sender.i" + @echo "... scream_sender.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + cd /home/pi/scream/scream_sender && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/RPI/scream/scream_sender/code/RtpQueue.cpp b/RPI/scream/scream_sender/code/RtpQueue.cpp new file mode 100644 index 0000000..47c1fb4 --- /dev/null +++ b/RPI/scream/scream_sender/code/RtpQueue.cpp @@ -0,0 +1,121 @@ +#include "RtpQueue.h" +#include <iostream> +#include <string.h> +using namespace std; +/* +* Implements a simple RTP packet queue +*/ + +RtpQueueItem::RtpQueueItem() { + used = false; + size = 0; + seqNr = 0; +} + + +RtpQueue::RtpQueue() { + for (int n=0; n < kRtpQueueSize; n++) { + items[n] = new RtpQueueItem(); + } + head = -1; + tail = 0; + nItems = 0; + sizeOfLastFrame = 0; + bytesInQueue_ = 0; + sizeOfQueue_ = 0; + sizeOfNextRtp_ = -1; +} + +void RtpQueue::push(void *rtpPacket, int size, unsigned short seqNr, float ts) { + int ix = head+1; + if (ix == kRtpQueueSize) ix = 0; + if (items[ix]->used) { + /* + * RTP queue is full, do a drop tail i.e ignore new RTP packets + */ + return; + } + head = ix; + + memcpy(items[head]->packet, rtpPacket, size); + items[head]->seqNr = seqNr; + items[head]->size = size; + items[head]->ts = ts; + items[head]->used = true; + bytesInQueue_ += size; + sizeOfQueue_ += 1; + computeSizeOfNextRtp(); +} + +bool RtpQueue::pop(void *rtpPacket, int& size, unsigned short& seqNr) { + if (items[tail]->used == false) { + return false; + sizeOfNextRtp_ = -1; + } else { + size = items[tail]->size; + memcpy(rtpPacket,items[tail]->packet,size); + seqNr = items[tail]->seqNr; + items[tail]->used = false; + tail++; if (tail == kRtpQueueSize) tail = 0; + bytesInQueue_ -= size; + sizeOfQueue_ -= 1; + computeSizeOfNextRtp(); + return true; + } +} + +void RtpQueue::computeSizeOfNextRtp() { + if (!items[tail]->used) { + sizeOfNextRtp_ = - 1; + } else { + sizeOfNextRtp_ = items[tail]->size; + } +} + +int RtpQueue::sizeOfNextRtp() { + return sizeOfNextRtp_; +} + +int RtpQueue::seqNrOfNextRtp() { + if (!items[tail]->used) { + return -1; + } else { + return items[tail]->seqNr; + } +} + +int RtpQueue::bytesInQueue() { + return bytesInQueue_; +} + +int RtpQueue::sizeOfQueue() { + return sizeOfQueue_; +} + +float RtpQueue::getDelay(float currTs) { + if (items[tail]->used == false) { + return 0; + } else { + return currTs-items[tail]->ts; + } +} + +bool RtpQueue::sendPacket(void *rtpPacket, int& size, unsigned short& seqNr) { + if (sizeOfQueue() > 0) { + pop(rtpPacket, size, seqNr); + return true; + } + return false; +} + +void RtpQueue::clear() { + for (int n=0; n < kRtpQueueSize; n++) { + items[n]->used = false; + } + head = -1; + tail = 0; + nItems = 0; + bytesInQueue_ = 0; + sizeOfQueue_ = 0; + sizeOfNextRtp_ = -1; +} diff --git a/RPI/scream/scream_sender/code/RtpQueue.h b/RPI/scream/scream_sender/code/RtpQueue.h new file mode 100644 index 0000000..82c6ac8 --- /dev/null +++ b/RPI/scream/scream_sender/code/RtpQueue.h @@ -0,0 +1,59 @@ +#ifndef RTP_QUEUE +#define RTP_QUEUE + +/* +* Implements a simple RTP packet queue, one RTP queue +* per stream {SSRC,PT} +*/ + +class RtpQueueIface { +public: + virtual void clear() = 0; + virtual int sizeOfNextRtp() = 0; + virtual int seqNrOfNextRtp() = 0; + virtual int bytesInQueue() = 0; // Number of bytes in queue + virtual int sizeOfQueue() = 0; // Number of items in queue + virtual float getDelay(float currTs) = 0; + virtual int getSizeOfLastFrame() = 0; +}; + +class RtpQueueItem { +public: + RtpQueueItem(); + char packet[2000]; + int size; + unsigned short seqNr; + float ts; + bool used; +}; + +const int kRtpQueueSize = 1024; +class RtpQueue : public RtpQueueIface { +public: + RtpQueue(); + + void push(void *rtpPacket, int size, unsigned short seqNr, float ts); + bool pop(void *rtpPacket, int &size, unsigned short &seqNr); + int sizeOfNextRtp(); + int seqNrOfNextRtp(); + int bytesInQueue(); // Number of bytes in queue + int sizeOfQueue(); // Number of items in queue + float getDelay(float currTs); + bool sendPacket(void *rtpPacket, int &size, unsigned short &seqNr); + void clear(); + int getSizeOfLastFrame() {return sizeOfLastFrame;}; + void setSizeOfLastFrame(int sz) {sizeOfLastFrame=sz;}; + void computeSizeOfNextRtp(); + + RtpQueueItem *items[kRtpQueueSize]; + int head; // Pointer to last inserted item + int tail; // Pointer to the oldest item + int nItems; + int sizeOfLastFrame; + + int bytesInQueue_; + int sizeOfQueue_; + int sizeOfNextRtp_; +}; + +#endif diff --git a/RPI/scream/scream_sender/code/ScreamRx.h b/RPI/scream/scream_sender/code/ScreamRx.h new file mode 100644 index 0000000..f1d9e83 --- /dev/null +++ b/RPI/scream/scream_sender/code/ScreamRx.h @@ -0,0 +1,146 @@ +#ifndef SCREAM_RX +#define SCREAM_RX +#include <cstdint> +#include <list> +const int kAckVectorBits = 64; + +/* +* This module implements the receiver side of SCReAM. +* As SCReAM is a sender based congestion control, the receiver side is +* actually dumber than dumb. In essense the only thing that it does is to +* + Record receive time stamps and RTP sequence numbers for incoming RTP packets +* + Generate RTCP feedback elements +* + Calculate an appropriate RTCP feedback interval +* See https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf +* for details on how it is integrated in audio/video platforms. +* A full implementation needs the additional code for +* + RTCP feedback (e.g using RFC3611 XR elements) +* + Other obvious stuff such as RTP payload depacketizer, video+audio deoders, rendering, dejitterbuffers +* It is recommended that RTCP feedback for multiple streams are bundled in one RTCP packet. +* However as low bitrate media (e.g audio) requires a lower feedback rate than high bitrate media (e.g video) +* it is possible to include RTCP feedback for the audio stream more seldom. The code for this is T.B.D +*/ +class ScreamRx { +public: + ScreamRx(uint32_t ssrc); // SSRC of this RTCP session + /* + * One instance is created for each source SSRC + */ + class Stream { + public: + Stream(uint32_t ssrc); + + bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; }; + + bool checkIfFlushAck(); + /* + * Receive RTP packet + */ + void receive(uint64_t time_us, + void *rtpPacket, + int size, + uint16_t seqNr, + bool isEcnCe); + + uint32_t ssrc; // SSRC of stream (source SSRC) + uint16_t highestSeqNr; // Highest received sequence number + uint16_t highestSeqNrTx; // Highest fed back sequence number + uint32_t receiveTimestamp; // Wall clock time + uint64_t ackVector; // List of received packets + uint16_t ecnCeMarkedBytes; // Number of ECN-CE marked bytes + // (i.e size of RTP packets with CE set in IP header) + + uint64_t lastFeedbackT_us; // Last time feedback transmitted for + // this SSRC + int nRtpSinceLastRtcp; // Number of RTP packets since last transmitted RTCP + + bool firstReceived; + + float timeStampConversionFactor; + + int ix; + }; + + /* + * Check to ensure that ACK vector can cover also large holes in + * in the received sequence number space. These cases can frequently occur when + * SCReAM is used in frame discard mode i.e. when real video rate control is + * not possible + */ + bool checkIfFlushAck(); + + /* + * Function is called each time an RTP packet is received + */ + void receive(uint64_t time_us, + void* rtpPacket, + uint32_t ssrc, + int size, + uint16_t seqNr, + bool isEcnCe = false); + + /* + * Return TRUE if an RTP packet has been received and there is + * pending feedback + */ + bool isFeedback(uint64_t time_us); + + uint64_t getRtcpFbInterval(); + + /* + * Get SCReAM RTCP feedback elements + * return FALSE if no pending feedback available + */ + bool getFeedback(uint64_t time_us, + uint32_t &ssrc, + uint32_t &receiveTimestamp, + uint16_t &highestSeqNr, + uint64_t &ackVector, + uint16_t &ecnCeMarkedBytes); + + /* + * Create feedback according to the format below. It is up to the + * wrapper application to prepend this RTCP with SR or RR when needed + * BT = 255, means that this is experimental use + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |V=2|P|reserved | PT=XR=207 | length=6 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | BT=255 | reserved | block length=4 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC of source | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Highest recv. seq. nr. (16b) | ECN_CE_bytes | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b0-31) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b32-63) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Timestamp (32bits) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + bool createFeedback(uint64_t time_us, unsigned char *buf, int &size); + + uint64_t getLastFeedbackT() { return lastFeedbackT_us; }; + + uint64_t lastFeedbackT_us; + int bytesReceived; + uint64_t lastRateComputeT_us; + float averageReceivedRate; + uint64_t rtcpFbInterval_us; + uint32_t ssrc; + + int getIx(uint32_t ssrc); + int ix; + + /* + * Variables for multiple steams handling + */ + std::list<Stream*> streams; +}; + +#endif diff --git a/RPI/scream/scream_sender/code/ScreamTx.cpp b/RPI/scream/scream_sender/code/ScreamTx.cpp new file mode 100644 index 0000000..d638130 --- /dev/null +++ b/RPI/scream/scream_sender/code/ScreamTx.cpp @@ -0,0 +1,1912 @@ +#include "RtpQueue.h" +#include "ScreamTx.h" +#include "ScreamRx.h" +#ifdef _MSC_VER +#define NOMINMAX +#include <winSock2.h> +#else +#include <arpa/inet.h> +#endif +#include <cstdint> +#include <cmath> +#include <string.h> +#include <iostream> +#include <algorithm> +#include <stdio.h> +#include <stdlib.h> +#include <math.h> + +// === Some good to have features, SCReAM works also +// with these disabled +// Fast start can resume if little or no congestion detected +static const bool kEnableConsecutiveFastStart = true; +// Packet pacing reduces jitter +static const bool kEnablePacketPacing = true; +static const float kPacketPacingHeadRoom = 1.5f; + +// Rate update interval +static const uint64_t kRateAdjustInterval_us = 200000; // 200ms + +// ==== Less important tuning parameters ==== +// Min pacing interval and min pacing rate +static const float kMinPaceInterval = 0.000f; +static const float kMinimumBandwidth = 5000.0f; // bps +// Initial MSS, this is set quite low in order to make it possible to +// use SCReAM with audio only +static const int kInitMss = 100; + +// Min and max queue delay target +static const float kQueueDelayTargetMax = 0.3f; //ms + +// Congestion window validation +static const float kBytesInFlightHistInterval_us = 1000000; // Time (s) between stores 1s +static const float kMaxBytesInFlightHeadRoom = 1.1f; +// Queue delay trend and shared bottleneck detection +static const uint64_t kQueueDelayFractionHistInterval_us = 50000; // 50ms +// video rate estimation update period +static const uint64_t kRateUpdateInterval_us = 50000; // 50ms + +// Packet reordering margin (us) +static const uint64_t kReorderTime_us = 20000; +static const uint64_t kMinRtpQueueDiscardInterval_us = 1000000; + +// Update interval for base delay history +static const uint64_t kBaseDelayUpdateInterval_us = 10000000; + +// L4S alpha gain factor, for scalable congestion control +static const float kL4sG = 0.125f; + +// Min CWND in MSS +static int kMinCwndMss = 3; + +ScreamTx::ScreamTx(float lossBeta_, + float ecnCeBeta_, + float queueDelayTargetMin_, + bool enableSbd_, + float gainUp_, + float gainDown_, + int cwnd_, + float cautiousPacing_, + int bytesInFlightHistSize_, + bool isL4s_, + bool openWindow_ + ) : + sRttSh_us(0), + lossBeta(lossBeta_), + ecnCeBeta(ecnCeBeta_), + queueDelayTargetMin(queueDelayTargetMin_), + enableSbd(enableSbd_), + gainUp(gainUp_), + gainDown(gainDown_), + cautiousPacing(cautiousPacing_), + bytesInFlightHistSize(bytesInFlightHistSize_), + openWindow(openWindow_), + isL4s(isL4s_), + sRtt_us(0), + sRtt(0.0f), + ackedOwd(0), + baseOwd(UINT32_MAX), + queueDelay(0.0), + queueDelayFractionAvg(0.0), + queueDelayTrend(0.0), + queueDelayTarget(queueDelayTargetMin), + queueDelaySbdVar(0.0), + queueDelaySbdMean(0.0), + queueDelaySbdMeanSh(0.0), + + bytesNewlyAcked(0), + mss(kInitMss), + cwnd(kInitMss * 2), + cwndMin(kInitMss * 2), + lastBytesInFlightT_us(0), + bytesInFlightMaxLo(0), + bytesInFlightMaxHi(0), + bytesInFlightHistLoMem(0), + bytesInFlightHistHiMem(0), + maxBytesInFlight(0.0f), + + lossEvent(false), + wasLossEvent(false), + lossEventRate(0.0), + ecnCeEvent(false), + l4sAlpha(0.1f), + bytesMarkedThisRtt(0), + bytesDeliveredThisRtt(0), + lastL4sAlphaUpdateT_us(0), + inFastStart(true), + + paceInterval_us(0), + paceInterval(0.0), + rateTransmittedAvg(0.0), + + isInitialized(false), + lastSRttUpdateT_us(0), + lastBaseOwdAddT_us(0), + baseOwdResetT_us(0), + lastAddToQueueDelayFractionHistT_us(0), + lastLossEventT_us(0), + lastTransmitT_us(0), + nextTransmitT_us(0), + lastRateUpdateT_us(0), + accBytesInFlightMax(0), + nAccBytesInFlightMax(0), + rateTransmitted(0.0f), + rateAcked(0.0f), + queueDelayTrendMem(0.0f), + lastCwndUpdateT_us(0), + bytesInFlight(0), + bytesInFlightLog(0), + lastBaseDelayRefreshT_us(0), + maxRate(0.0f), + baseOwdHistMin(UINT32_MAX) +{ + if (cwnd_ == 0) { + cwnd = kInitMss * 2; + } + else { + cwnd = cwnd_; + } + if (openWindow) { + cwndMin = 10000000; + cwnd = cwndMin; + } + + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHist[n] = UINT32_MAX; + baseOwdHistPtr = 0; + for (int n = 0; n < kQueueDelayFractionHistSize; n++) + queueDelayFractionHist[n] = 0.0f; + queueDelayFractionHistPtr = 0; + for (int n = 0; n < kQueueDelayNormHistSize; n++) + queueDelayNormHist[n] = 0.0f; + queueDelayNormHistPtr = 0; + for (int n = 0; n < kBytesInFlightHistSizeMax; n++) { + bytesInFlightHistLo[n] = 0; + bytesInFlightHistHi[n] = 0; + } + bytesInFlightHistPtr = 0; + nStreams = 0; + for (int n = 0; n < kMaxStreams; n++) + streams[n] = NULL; + + queueDelayMax = 0.0f; + queueDelayMinAvg = 0.0f; + queueDelayMin = 1000.0; + + statistics = new Statistics(); +} + +ScreamTx::~ScreamTx() { + for (int n = 0; n < nStreams; n++) + delete streams[n]; + delete statistics; +} + +ScreamTx::Statistics::Statistics() { + sumRateTx = 0.0f; + sumRateLost = 0.0f; + avgRateTx = 0.0f; + avgRtt = 0.0f; + avgQueueDelay = 0.0f; + rateLostAcc = 0.0f; + rateLostN = 0; + for (int n = 0; n < kLossRateHistSize; n++) { + lossRateHist[n] = 0.0f; + } + lossRateHistPtr = 0; +} + +void ScreamTx::Statistics::add(float rateTx, float rateLost, float rtt, float queueDelay) { + const float alpha = 0.98f; + sumRateTx += rateTx; + sumRateLost += rateLost; + if (avgRateTx == 0.0f) { + avgRateTx = rateTx; + avgRtt = rtt; + avgQueueDelay = queueDelay; + } + else { + avgRateTx = alpha*avgRateTx + (1.0f - alpha)*rateTx; + rateLostAcc += rateLost; + rateLostN++; + if (rateLostN == 10) { + rateLostAcc /= 10; + rateLostN = 0; + float lossRate = 0.0f; + if (rateTx > 0) + lossRate = rateLostAcc / rateTx*100.0f; + lossRateHist[lossRateHistPtr] = lossRate; + lossRateHistPtr = (lossRateHistPtr + 1) % kLossRateHistSize; + } + avgRtt = alpha*avgRtt + (1.0f - alpha)*rtt; + avgQueueDelay = alpha*avgQueueDelay + (1.0f - alpha)*queueDelay; + } +} + +void ScreamTx::Statistics::getSummary(float time, char s[]) { + float lossRate = 0.0f; + for (int n = 0; n < kLossRateHistSize; n++) + lossRate += lossRateHist[n]; + lossRate /= kLossRateHistSize; + float lossRateLong = 0.0f; + if (sumRateTx > 100000.0f) { + lossRateLong = sumRateLost / sumRateTx*100.0f; + } + sprintf(s, "%5.1f Transmit rate = %5.0fkbps, PLR = %5.2f%%(%5.2f%%), RTT = %5.3fs, Queue delay = %5.3fs", + time, + avgRateTx / 1000.0f, + lossRate, + lossRateLong, + avgRtt, + avgQueueDelay); +} + +/* +* Register new stream +*/ +void ScreamTx::registerNewStream(RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, + float minBitrate, + float startBitrate, + float maxBitrate, + float rampUpSpeed, + float maxRtpQueueDelay, + float txQueueSizeFactor, + float queueDelayGuard, + float lossEventRateScale, + float ecnCeEventRateScale) { + Stream *stream = new Stream(this, + rtpQueue, + ssrc, + priority, + minBitrate, + startBitrate, + maxBitrate, + rampUpSpeed, + maxRtpQueueDelay, + txQueueSizeFactor, + queueDelayGuard, + lossEventRateScale, + ecnCeEventRateScale); + streams[nStreams++] = stream; +} + +void ScreamTx::updateBitrateStream(uint32_t ssrc, + float minBitrate, + float maxBitrate) { + Stream *stream = getStream(ssrc); + stream->minBitrate = minBitrate; + stream->maxBitrate = maxBitrate; +} + +RtpQueueIface * ScreamTx::getStreamQueue(uint32_t ssrc) { + Stream* stream = getStream(ssrc); + return stream->rtpQueue; +} + + +/* +* New media frame +*/ +void ScreamTx::newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp) { + if (!isInitialized) initialize(time_us); + + Stream *stream = getStream(ssrc); + stream->updateTargetBitrate(time_us); + if (time_us - lastCwndUpdateT_us < 500000) { + /* + * We expect feedback at least every 500ms + * to update the target rate. + */ + stream->updateTargetBitrate(time_us); + } + if (time_us - lastBaseDelayRefreshT_us < sRtt_us * 2) { + /* + * _Very_ long periods of congestion can cause the base delay to increase + * with the effect that the queue delay is estimated wrong, therefore we seek to + * refresh the whole thing by deliberately allowing the network queue to drain + * Clear the RTP queue for 2 RTTs, this will allow the queue to drain so that we + * get a good estimate for the min queue delay. + * This funtion is executed very seldom so it should not affect overall experience too much + */ + stream->rtpQueue->clear(); + } + else { + stream->bytesRtp += bytesRtp; + /* + * Need to update MSS here, otherwise it will be nearly impossible to + * transmit video packets, this because of the small initial MSS + * which is necessary to make SCReAM work with audio only + */ + int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp(); + mss = std::max(mss, sizeOfNextRtp); + if (!openWindow) + cwndMin = 2 * mss; + cwnd = max(cwnd, cwndMin); + } +} + +/* +* Determine if OK to transmit RTP packet +*/ +float ScreamTx::isOkToTransmit(uint64_t time_us, uint32_t &ssrc) { + if (!isInitialized) initialize(time_us); + /* + * Update rateTransmitted and rateAcked if time for it + * This is used in video rate computation + * The update interval is doubled at very low bitrates, + * the reason is that the feedback interval is very low then and + * a longer window is needed to avoid aliasing effects + */ + uint64_t tmp = kRateUpdateInterval_us; + + if (rateAcked < 50000.0f) { + tmp *= 2; + } + + if (time_us - lastRateUpdateT_us > tmp) { + rateTransmitted = 0.0; + rateAcked = 0.0; + for (int n = 0; n < nStreams; n++) { + streams[n]->updateRate(time_us); + rateTransmitted += streams[n]->rateTransmitted; + rateTransmittedAvg = 0.9*rateTransmittedAvg + 0.1*rateTransmitted; + rateAcked += streams[n]->rateAcked; + if (n == 0) + statistics->add(streams[0]->rateTransmitted, streams[0]->rateLost, sRtt, queueDelay); + } + lastRateUpdateT_us = time_us; + /* + * Adjust stream priorities + */ + adjustPriorities(time_us); + + /* + * Update maxRate + */ + maxRate = 0.0f; + for (int n = 0; n < nStreams; n++) + maxRate += streams[n]->getMaxRate(); + } + + /* + * Get index to the prioritized RTP queue + */ + Stream* stream = getPrioritizedStream(time_us); + + if (stream == NULL) + /* + * No RTP packets to transmit + */ + return -1.0f; + ssrc = stream->ssrc; + + bytesInFlightMaxHi = std::max(bytesInFlight, bytesInFlightMaxHi); + + /* + * Update bytes in flight history for congestion window validation + */ + if (time_us - lastBytesInFlightT_us > kBytesInFlightHistInterval_us) { + bytesInFlightMaxLo = 0; + if (nAccBytesInFlightMax > 0) { + bytesInFlightMaxLo = accBytesInFlightMax / nAccBytesInFlightMax; + } + bytesInFlightHistLo[bytesInFlightHistPtr] = bytesInFlightMaxLo; + bytesInFlightHistHi[bytesInFlightHistPtr] = bytesInFlightMaxHi; + bytesInFlightHistPtr = (bytesInFlightHistPtr + 1) % bytesInFlightHistSize; + lastBytesInFlightT_us = time_us; + accBytesInFlightMax = 0; + nAccBytesInFlightMax = 0; + bytesInFlightMaxHi = 0; + bytesInFlightHistLoMem = 0; + bytesInFlightHistHiMem = 0; + for (int n = 0; n < bytesInFlightHistSize; n++) { + bytesInFlightHistLoMem = std::max(bytesInFlightHistLoMem, bytesInFlightHistLo[n]); + bytesInFlightHistHiMem = std::max(bytesInFlightHistHiMem, bytesInFlightHistHi[n]); + } + + /* + * In addition, reset MSS, this is useful in case for instance + * a video stream is put on hold, leaving only audio packets to be + * transmitted + */ + mss = kInitMss; + if (!openWindow) + cwndMin = kMinCwndMss * mss; + cwnd = max(cwnd, cwndMin); + } + + int sizeOfNextRtp = stream->rtpQueue->sizeOfNextRtp(); + if (sizeOfNextRtp == -1){ + return -1.0f; + } + /* + * Determine if window is large enough to transmit + * an RTP packet + */ + bool exit = false; + if (queueDelay < queueDelayTarget) + exit = (bytesInFlight + sizeOfNextRtp) > cwnd + mss; + else + exit = (bytesInFlight + sizeOfNextRtp) > cwnd; + /* + * Enforce packet pacing + */ + float retVal = 0.0f; + if (kEnablePacketPacing && nextTransmitT_us > time_us){ + retVal = (nextTransmitT_us - time_us) * 1e-6f; + } + + /* + * A retransmission time out mechanism to avoid deadlock + */ + if (time_us - lastTransmitT_us > 500000 && lastTransmitT_us < time_us) { // 200ms + for (int n = 0; n < kMaxTxPackets; n++) { + stream->txPackets[n].isUsed = false; + } + bytesInFlight = 0; + exit = false; + retVal = 0.0f; + } + + if (!exit) { + /* + * Return value 0.0 = RTP packet can be immediately transmitted + */ + return retVal; + } + + return -1.0f; +} + +/* +* RTP packet transmitted +*/ +float ScreamTx::addTransmitted(uint64_t time_us, + uint32_t ssrc, + int size, + uint16_t seqNr) { + if (!isInitialized) + initialize(time_us); + + Stream *stream = getStream(ssrc); + + int ix = seqNr % kMaxTxPackets; + Transmitted *txPacket = &(stream->txPackets[ix]); + if (txPacket->isUsed) { + /* + * This event should occur quite rarely. + * The most likely reason is that thoughput has dropped + * considerably. + * Therefore we clean the list and set cwnd and bitrate low + */ + for (int n = 0; n < kMaxTxPackets; n++) { + stream->txPackets[n].isUsed = false; + } + bytesInFlight = 0;//-= txPacket->size; + cwnd = cwndMin; + stream->targetBitrate = stream->minBitrate; + } + stream->hiSeqTx = seqNr; + txPacket->timestamp = (uint32_t)(time_us / 1000); + txPacket->timeTx_us = time_us; + txPacket->size = size; + txPacket->seqNr = seqNr; + txPacket->isUsed = true; + txPacket->isAcked = false; + txPacket->isAfterReceivedEdge = false; + + /* + * Update bytesInFlight + */ + bytesInFlight += size; + bytesInFlightLog = std::max(bytesInFlightLog, bytesInFlight); + + stream->bytesTransmitted += size; + lastTransmitT_us = time_us; + /* + * Add credit to unserved streams + */ + addCredit(time_us, stream, size); + /* + * Reduce used credit for served stream + */ + subtractCredit(time_us, stream, size); + + /* + * Update MSS and cwndMin + */ + mss = std::max(mss, size); + if (!openWindow) + cwndMin = 2 * mss; + cwnd = max(cwnd, cwndMin); + + /* + * Determine when next RTP packet can be transmitted + */ + if (kEnablePacketPacing) + nextTransmitT_us = time_us + paceInterval_us; + else + nextTransmitT_us = time_us; + + return paceInterval; +} + +/* +* Parse feedback according to the format below. It is up to the +* wrapper application this RTCP from a compound RTCP if needed +* BT = 255, means that this is experimental use. +* The code currently only handles one SSRC source per IP packet +* +* 0 1 2 3 +* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* |V=2|P|reserved | PT=XR=207 | length=6 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | BT=255 | reserved | block length=4 | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | SSRC of source | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Highest recv. seq. nr. (16b) | ECN_CE_bytes | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b0-31) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Ack vector (b32-63) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +* | Timestamp (32bits) | +* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +*/ +void ScreamTx::incomingFeedback(uint64_t time_us, + unsigned char* buf, + int size) { + if (!(size == 32 && buf[0] == 0x80 && buf[1] == 207 && buf[8] == 255)) { + // This does not seem as a valid size, exit function + return; + } + uint32_t tmp_l_1; + uint16_t tmp_s; + uint32_t tmp_l_2; + uint32_t timeStamp; + uint16_t seqNr; + uint64_t ackVector; + uint16_t ecnCeMarkedBytes; + uint32_t ssrc; + uint16_t rawSeq; + memcpy(&tmp_l_1, buf + 12, 4); + ssrc = ntohl(tmp_l_1); + memcpy(&seqNr, buf + 16, 2); + seqNr = ntohs(seqNr); + memcpy(&ecnCeMarkedBytes, buf + 18, 2); + ecnCeMarkedBytes = ntohs(ecnCeMarkedBytes); + memcpy(&tmp_l_1, buf + 20, 4); + memcpy(&tmp_l_2, buf + 24, 4); + tmp_l_1 = ntohl(tmp_l_1); + tmp_l_2 = ntohl(tmp_l_2); + ackVector = ((uint64_t(tmp_l_1)) << 32) | tmp_l_2; + memcpy(&timeStamp, buf + 28, 4); + timeStamp = ntohl(timeStamp); + incomingFeedback(time_us, ssrc, timeStamp, seqNr, ackVector, ecnCeMarkedBytes); +} +/* +* New incoming feedback +*/ +void ScreamTx::incomingFeedback(uint64_t time_us, + uint32_t ssrc, + uint32_t timestamp, + uint16_t highestSeqNr, + uint64_t ackVector, + uint16_t ecnCeMarkedBytes) { + + if (!isInitialized) initialize(time_us); + Stream *stream = getStream(ssrc); + if (stream == 0) { + // Bogus RTCP?, the SSRC is wrong anyway, Skip + return; + } + + uint16_t diff = highestSeqNr - stream->hiSeqAck; + if (diff > 65000 && stream->hiSeqAck != 0 && stream->timeTxAck_us != 0) { + /* + * Out of order received ACKs are ignored + */ + return; + } + accBytesInFlightMax += bytesInFlight; + nAccBytesInFlightMax++; + Transmitted *txPackets = stream->txPackets; + /* + * Mark received packets, given by the ACK vector + */ + markAcked(time_us, txPackets, highestSeqNr, ackVector, timestamp, stream); + + /* + * Detect lost pakcets + */ + detectLoss(time_us, txPackets, highestSeqNr, stream); + + if (ecnCeMarkedBytes != stream->ecnCeMarkedBytes && time_us - lastLossEventT_us > sRtt_us) { + ecnCeEvent = true; + lastLossEventT_us = time_us; + } + + if (isL4s) { + /* + * L4S mode compute a congestion scaling factor that is dependent on the fraction + * of ECN marked packets + */ + uint16_t marked = ecnCeMarkedBytes - stream->ecnCeMarkedBytes; + bytesMarkedThisRtt += marked; + bytesDeliveredThisRtt += bytesNewlyAcked; + if (lastL4sAlphaUpdateT_us - time_us > sRtt_us) { + lastL4sAlphaUpdateT_us = time_us; + if (bytesDeliveredThisRtt > 0) { + float F = float(bytesMarkedThisRtt) / float(bytesDeliveredThisRtt); + l4sAlpha = kL4sG*F + (1.0f - kL4sG)*l4sAlpha; + bytesDeliveredThisRtt = 0; + bytesMarkedThisRtt = 0; + } + } + } + + stream->ecnCeMarkedBytes = ecnCeMarkedBytes; + + if (lossEvent || ecnCeEvent) { + lastLossEventT_us = time_us; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (lossEvent) + tmp->lossEventFlag = true; + else + tmp->ecnCeEventFlag = true; + } + } + + if (lastCwndUpdateT_us == 0) + lastCwndUpdateT_us = time_us; + + if (time_us - lastCwndUpdateT_us > 10000) { + /* + * There is no gain with a too frequent CWND update + * An update every 10ms is fast enough even at very high high bitrates + */ + updateCwnd(time_us); + lastCwndUpdateT_us = time_us; + } +} + +/* +* Mark ACKed RTP packets +*/ +void ScreamTx::markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream) { + /* + * Loop only through the packets that are covered by the last highest ACK, this saves complexity + */ + int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets; + int ix0 = stream->hiSeqAck + 1; + if (ix0 < 0) ix0 += kMaxTxPackets; + while (ix1 < ix0) + ix1 += kMaxTxPackets; + for (int m = ix0; m <= ix1; m++) { + int n = m % kMaxTxPackets; + /* + * Loop through TX packets + */ + if (txPackets[n].isUsed) { + /* + * RTP packet is in flight + */ + Transmitted *tmp = &txPackets[n]; + + /* + * Compute SN difference + */ + uint16_t diff = highestSeqNr - tmp->seqNr; + diff -= 1; + + if (diff <= kAckVectorBits) { + if (ackVector & (INT64_C(1) << diff)) { + /* + * SN marked as received + */ + tmp->isAcked = true; + } + } + + /* + * Receiption of packet given by highestSeqNr + */ + if (tmp->seqNr == highestSeqNr) { + tmp->isAcked = true; + ackedOwd = timestamp - tmp->timestamp; + /* + * Compute the queue delay + */ + uint32_t qDel = estimateOwd(time_us); + qDel -= getBaseOwd(); + + /* + * Convert from [jiffy] OWD to an OWD in [s] + */ + queueDelay = qDel / kTimestampRate; + + uint64_t rtt = time_us - tmp->timeTx_us; + + sRttSh_us = (7 * sRttSh_us + rtt) / 8; + if (time_us - lastSRttUpdateT_us > sRttSh_us) { + sRtt_us = (7 * sRtt_us + sRttSh_us) / 8; + lastSRttUpdateT_us = time_us; + sRtt = sRtt_us*1e-6f; + } + stream->timeTxAck_us = tmp->timeTx_us; + } + } + } +} + +/* +* Detect lost RTP packets +*/ +void ScreamTx::detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream) { + /* + * Loop only through the packets that are covered by the last highest ACK, this saves complexity + * There is a faint possibility that we miss to detect large bursts of lost packets with this fix + */ + int ix1 = highestSeqNr; ix1 = ix1 % kMaxTxPackets; + int ix0 = stream->hiSeqAck + 1; + stream->hiSeqAck = highestSeqNr; + if (ix0 < 0) ix0 += kMaxTxPackets; + while (ix1 < ix0) + ix1 += kMaxTxPackets; + + /* + * Mark packets outside the 64 bit ACK vector range as forever lost + */ + if (stream->lastLossDetectIx >= 0) { + int ix0_ = ix0; + if (stream->lastLossDetectIx > ix0_) ix0_ += kMaxTxPackets; + for (int m = stream->lastLossDetectIx; m < ix0_; m++) { + int n = m % kMaxTxPackets; + if (txPackets[n].isUsed) { + Transmitted *tmp = &txPackets[n]; + if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) { + lossEvent = true; + } + stream->bytesLost += tmp->size; + tmp->isUsed = false; + stream->repairLoss = true; + } + } + } + stream->lastLossDetectIx = ix0; + + /* + * Mark late packets as lost + */ + for (int m = ix0; m <= ix1; m++) { + int n = m % kMaxTxPackets; + /* + * Loop through TX packets + */ + if (txPackets[n].isUsed) { + Transmitted *tmp = &txPackets[n]; + /* + * RTP packet is in flight + */ + /* + * Wrap-around safety net + */ + uint32_t seqNrExt = tmp->seqNr; + uint32_t highestSeqNrExt = highestSeqNr; + if (seqNrExt < highestSeqNrExt && highestSeqNrExt - seqNrExt > 20000) + seqNrExt += 65536; + else if (seqNrExt > highestSeqNrExt && seqNrExt - highestSeqNrExt > 20000) + highestSeqNrExt += 65536; + + /* + * RTP packets with a sequence number lower + * than or equal to the highest received sequence number + * are treated as received even though they are not + * This advances the send window, similar to what + * SACK does in TCP + */ + if (seqNrExt <= highestSeqNrExt && tmp->isAfterReceivedEdge == false) { + bytesNewlyAcked += tmp->size; + bytesInFlight -= tmp->size; + if (bytesInFlight < 0) + bytesInFlight = 0; + stream->bytesAcked += tmp->size; + tmp->isAfterReceivedEdge = true; + } + + if (tmp->timeTx_us + kReorderTime_us < stream->timeTxAck_us && !tmp->isAcked) { + /* + * Packet ACK is delayed more than kReorderTime_us after an ACK of a higher SN packet + * raise a loss event and remove from TX list + */ + if (time_us - lastLossEventT_us > sRtt_us && lossBeta < 1.0f) { + lossEvent = true; + } + stream->bytesLost += tmp->size; + tmp->isUsed = false; + stream->repairLoss = true; + } + else if (tmp->isAcked) { + tmp->isUsed = false; + } + } + } + +} + +float ScreamTx::getTargetBitrate(uint32_t ssrc) { + return getStream(ssrc)->getTargetBitrate(); +} + +void ScreamTx::setTargetPriority(uint32_t ssrc, float priority) { + Stream *stream = getStream(ssrc); + if (queueDelayTrend > 0.02) { + stream->targetBitrate *= priority / stream->targetPriority; + stream->targetBitrate = std::min(std::max(stream->targetBitrate, stream->minBitrate), stream->maxBitrate); + } + stream->targetPriority = priority; + stream->targetPriorityInv = 1.0f / priority; +} + +void ScreamTx::getLog(float time, char *s) { + int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem); + sprintf(s, "%4.3f, %4.3f, %4.3f, %4.3f, %6d, %6d, %6.0f, %1d, ", + queueDelay, queueDelayMax, queueDelayMinAvg, sRtt, + cwnd, bytesInFlightLog, rateTransmitted / 1000.0f, isInFastStart()); + bytesInFlightLog = bytesInFlight; + queueDelayMax = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + char s2[200]; + sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %6.0f, %5.0f, %5d, ", + std::max(0.0f, tmp->rtpQueue->getDelay(time)), + tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f, + tmp->rateTransmitted / 1000.0f, tmp->rateAcked / 1000.0f, + tmp->rateLost / 1000.0f, + tmp->hiSeqAck); + strcat(s, s2); + } +} + +void ScreamTx::getShortLog(float time, char *s) { + int inFlightMax = std::max(bytesInFlight, bytesInFlightHistHiMem); + sprintf(s, "%4.3f, %4.3f, %6d, %6d, %6.0f, ", + queueDelayMax, sRtt, + cwnd, bytesInFlightLog, rateTransmitted / 1000.0f); + bytesInFlightLog = bytesInFlight; + queueDelayMax = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + char s2[200]; + sprintf(s2, "%4.3f, %6.0f, %6.0f, %6.0f, %5.0f, ", + std::max(0.0f, tmp->rtpQueue->getDelay(time)), + tmp->targetBitrate / 1000.0f, tmp->rateRtp / 1000.0f, + tmp->rateTransmitted / 1000.0f, + tmp->rateLost / 1000.0f); + strcat(s, s2); + } +} + +void ScreamTx::getStatistics(float time, char *s) { + statistics->getSummary(time, s); +} + +void ScreamTx::initialize(uint64_t time_us) { + isInitialized = true; + lastSRttUpdateT_us = time_us; + lastBaseOwdAddT_us = time_us; + baseOwdResetT_us = time_us; + lastAddToQueueDelayFractionHistT_us = time_us; + lastLossEventT_us = time_us; + lastTransmitT_us = time_us; + nextTransmitT_us = time_us; + lastRateUpdateT_us = time_us; + lastAdjustPrioritiesT_us = time_us; + lastRttT_us = time_us; + lastBaseDelayRefreshT_us = time_us + 1000000; + lastL4sAlphaUpdateT_us = time_us; + initTime_us = time_us; +} + +/* +* Update the congestion window +*/ +void ScreamTx::updateCwnd(uint64_t time_us) { + float dT = 0.001; + if (lastCwndUpdateT_us == 0) + lastCwndUpdateT_us = time_us; + else + dT = (time_us - lastCwndUpdateT_us) * 1e-6f; + + /* + * This adds a limit to how much the CWND can grow, it is particularly useful + * in case of short gliches in the transmission, in which a large chunk of data is delivered + * in a burst with the effect that the estimated queue delay is low because it typically depict the queue + * delay for the last non-delayed RTP packet. The rule is that the CWND cannot grow faster + * than the 1.25 times the average amount of bytes that transmitted in the given feedback interval + */ + float bytesNewlyAckedLimited = bytesNewlyAcked; + if (maxRate > 1.0e5f) + bytesNewlyAckedLimited = std::min(bytesNewlyAckedLimited, 1.25f*maxRate*dT / 8.0f); + else + bytesNewlyAckedLimited = 2.0f*mss; + + queueDelayMin = std::min(queueDelayMin, queueDelay); + + queueDelayMax = std::max(queueDelayMax, queueDelay); + + float time = time_us*1e-6; + if (queueDelayMinAvg > 0.25f*queueDelayTarget && time_us - baseOwdResetT_us > 20000000) { + /* + * The base OWD is likely wrong, for instance due to + * a channel change or clock drift, reset base OWD history + */ + queueDelayMinAvg = 0.0f; + queueDelay = 0.0f; + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHist[n] = UINT32_MAX; + baseOwd = UINT32_MAX; + baseOwdHistMin = UINT32_MAX; + baseOwdResetT_us = time_us; + } + /* + * An averaged version of the queue delay fraction + * neceassary in order to make video rate control robust + * against jitter + */ + queueDelayFractionAvg = 0.9f*queueDelayFractionAvg + 0.1f*getQueueDelayFraction(); + + /* + * Less frequent updates here + * + Compute pacing interval + * + Save to queue delay fraction history + * used in computeQueueDelayTrend() + * + Update queueDelayTarget + */ + if ((time_us - lastAddToQueueDelayFractionHistT_us) > + kQueueDelayFractionHistInterval_us) { + + /* + * compute paceInterval, we assume a min bw of 50kbps and a min tp of 1ms + * for stable operation + * this function implements the packet pacing + */ + paceInterval = kMinPaceInterval; + if ((queueDelayFractionAvg > 0.02f || isL4s) && kEnablePacketPacing) { + /* + * The cautiousPacing parameter restricts transmission of large key frames when the parameter is set to a value closer to 1.0 + */ + float pacingBitrate = (1.0 - cautiousPacing)*cwnd * 8.0f / std::max(0.001f, sRtt) + cautiousPacing*rateTransmittedAvg; + pacingBitrate = kPacketPacingHeadRoom*std::max(kMinimumBandwidth, pacingBitrate); + float tp = (mss * 8.0f) / pacingBitrate; + paceInterval = std::max(kMinPaceInterval, tp); + } + paceInterval_us = (uint64_t)(paceInterval * 1000000); + + if (queueDelayMin < queueDelayMinAvg) + queueDelayMinAvg = queueDelayMin; + else + queueDelayMinAvg = 0.001f*queueDelayMin + 0.999f*queueDelayMinAvg; + queueDelayMin = 1000.0f; + /* + * Need to duplicate insertion incase the feedback is sparse + */ + int nIter = (int)(time_us - lastAddToQueueDelayFractionHistT_us) / kQueueDelayFractionHistInterval_us; + for (int n = 0; n < nIter; n++) { + queueDelayFractionHist[queueDelayFractionHistPtr] = getQueueDelayFraction(); + queueDelayFractionHistPtr = (queueDelayFractionHistPtr + 1) % kQueueDelayFractionHistSize; + } + + if (time_us - initTime_us > 2000000) { + /* + * Queue delay trend calculations are reliable after ~2s + */ + computeQueueDelayTrend(); + } + + queueDelayTrendMem = std::max(queueDelayTrendMem*0.98f, queueDelayTrend); + + /* + * Compute bytes in flight limitation + */ + int maxBytesInFlightHi = (int)(std::max(bytesInFlightMaxHi, bytesInFlightHistHiMem)); + int maxBytesInFlightLo = (int)(std::max(bytesInFlight, bytesInFlightHistLoMem)); + + float alpha = std::max(queueDelayTrend, cautiousPacing); + maxBytesInFlight = + (maxBytesInFlightHi*(1.0f - alpha) + maxBytesInFlightLo*alpha)* + kMaxBytesInFlightHeadRoom; + if (enableSbd) { + /* + * Shared bottleneck detection, + */ + float queueDelayNorm = queueDelay / queueDelayTargetMin; + queueDelayNormHist[queueDelayNormHistPtr] = queueDelayNorm; + queueDelayNormHistPtr = (queueDelayNormHistPtr + 1) % kQueueDelayNormHistSize; + /* + * Compute shared bottleneck detection and update queue delay target + * if queue dela variance is sufficienctly low + */ + computeSbd(); + /* + * This function avoids the adjustment of queueDelayTarget when + * congestion occurs (indicated by high queueDelaydSbdVar and queueDelaySbdSkew) + */ + float oh = queueDelayTargetMin*(queueDelaySbdMeanSh + sqrt(queueDelaySbdVar)); + if (lossEventRate > 0.002 && queueDelaySbdMeanSh > 0.5 && queueDelaySbdVar < 0.2) { + queueDelayTarget = std::min(kQueueDelayTargetMax, oh*1.5f); + } + else { + if (queueDelaySbdVar < 0.2 && queueDelaySbdSkew < 0.05) { + queueDelayTarget = std::max(queueDelayTargetMin, std::min(kQueueDelayTargetMax, oh)); + } + else { + if (oh < queueDelayTarget) + queueDelayTarget = std::max(queueDelayTargetMin, std::max(queueDelayTarget*0.99f, oh)); + else + queueDelayTarget = std::max(queueDelayTargetMin, queueDelayTarget*0.999f); + } + } + } + lastAddToQueueDelayFractionHistT_us = time_us; + } + /* + * offTarget is a normalized deviation from the queue delay target + */ + float offTarget = (queueDelayTarget - queueDelay) / float(queueDelayTarget); + + if (lossEvent) { + /* + * loss event detected, decrease congestion window + */ + cwnd = std::max(cwndMin, (int)(lossBeta*cwnd)); + lossEvent = false; + lastCongestionDetectedT_us = time_us; + + inFastStart = false; + wasLossEvent = true; + } + else if (ecnCeEvent) { + /* + * loss event detected, decrease congestion window + */ + if (isL4s) { + cwnd = std::max(cwndMin, (int)((1.0f - l4sAlpha / 2.0f)*cwnd)); + } + else { + cwnd = std::max(cwndMin, (int)(ecnCeBeta*cwnd)); + } + ecnCeEvent = false; + lastCongestionDetectedT_us = time_us; + + inFastStart = false; + wasLossEvent = true; + } + else { + + if (time_us - lastRttT_us > sRtt_us) { + if (wasLossEvent) + lossEventRate = 0.99f*lossEventRate + 0.01f; + else + lossEventRate *= 0.99f; + wasLossEvent = false; + lastRttT_us = time_us; + } + + if (inFastStart) { + /* + * In fast start + */ + if (queueDelayTrend < 0.2) { + /* + * CWND is increased by the number of ACKed bytes if + * window is used to 1/1.5 = 67% + * We need to relax the rule a bit for the case that + * feedback may be sparse due to limited RTCP report interval + * In addition we put a limit for the cases where feedback becomes + * piled up (sometimes happens with e.g LTE) + */ + float bytesInFlightMargin = 1.5f; + if (bytesInFlight*bytesInFlightMargin + bytesNewlyAcked > cwnd) { + cwnd += bytesNewlyAckedLimited; + } + } + else { + inFastStart = false; + } + } + else { + if (offTarget > 0.0f) { + /* + * queue delay below target, increase CWND if window + * is used to 1/1.2 = 83% + */ + float bytesInFlightMargin = 1.2f; + if (bytesInFlight*bytesInFlightMargin + bytesNewlyAcked > cwnd) { + float increment = gainUp * offTarget * bytesNewlyAckedLimited * mss / cwnd; + cwnd += (int)(increment + 0.5f); + } + } + else { + /* + * Queue delay above target. + * Limit the CWND reduction to at most a quarter window + * this avoids unduly large reductions for the cases + * where data is queued up e.g because of retransmissions + * on lower protocol layers. + */ + float delta = -(gainDown * offTarget * bytesNewlyAcked * mss / cwnd); + delta = std::min((int)delta, cwnd / 4); + cwnd -= (int)(delta); + + /* + * Especially when running over low bitrate bottlenecks, it is + * beneficial to reduce the target bitrate a little, it limits + * possible RTP queue delay spikes when congestion window is reduced + */ + float rateTotal = 0.0f; + for (int n = 0; n < nStreams; n++) + rateTotal += streams[n]->getMaxRate(); + if (rateTotal < 1.0e5f) { + delta = delta / cwnd; + float rateAdjustFactor = (1.0f - delta); + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + tmp->targetBitrate = std::max(tmp->minBitrate, + std::min(tmp->maxBitrate, + tmp->targetBitrate*rateAdjustFactor)); + } + } + lastCongestionDetectedT_us = time_us; + + } + } + } + /* + * Congestion window validation, checks that the congestion window is + * not considerably higher than the actual number of bytes in flight + */ + if (maxBytesInFlight > 5000) { + cwnd = std::min(cwnd, (int)maxBytesInFlight); + } + + if (sRtt < 0.01f && queueDelayTrend < 0.1) { + int tmp = int(rateTransmitted*0.01f / 8); + tmp = std::max(tmp, (int)(maxBytesInFlight*1.5f)); + cwnd = std::max(cwnd, tmp); + } + cwnd = std::max(cwndMin, cwnd); + + /* + * Make possible to enter fast start if OWD has been low for a while + */ + if (queueDelayTrend > 0.2) { + lastCongestionDetectedT_us = time_us; + } + else if (time_us - lastCongestionDetectedT_us > 5000000 && + !inFastStart && kEnableConsecutiveFastStart) { + /* + * The queue delay trend has been low for more than 5.0s, resume fast start + */ + inFastStart = true; + lastCongestionDetectedT_us = time_us; + } + bytesNewlyAcked = 0; +} + +/* +* Update base OWD (if needed) and return the +* last estimated OWD (without offset compensation) +*/ +uint32_t ScreamTx::estimateOwd(uint64_t time_us) { + baseOwd = std::min(baseOwd, ackedOwd); + if (time_us - lastBaseOwdAddT_us >= kBaseDelayUpdateInterval_us) { + baseOwdHist[baseOwdHistPtr] = baseOwd; + baseOwdHistPtr = (baseOwdHistPtr + 1) % kBaseOwdHistSize; + lastBaseOwdAddT_us = time_us; + baseOwd = UINT32_MAX; + baseOwdHistMin = UINT32_MAX; + for (int n = 0; n < kBaseOwdHistSize; n++) + baseOwdHistMin = std::min(baseOwdHistMin, baseOwdHist[n]); + /* + * _Very_ long periods of congestion can cause the base delay to increase + * with the effect that the queue delay is estimated wrong, therefore we seek to + * refresh the whole thing by deliberately allowing the network queue to drain + */ + if (time_us - lastBaseDelayRefreshT_us > kBaseDelayUpdateInterval_us*(kBaseOwdHistSize - 1)) { + lastBaseDelayRefreshT_us = time_us; + } + } + return ackedOwd; +} + +/* +* Get the base one way delay +*/ +uint32_t ScreamTx::getBaseOwd() { + return std::min(baseOwd, baseOwdHistMin); +} + +/* +* Get the queue delay fraction +*/ +float ScreamTx::getQueueDelayFraction() { + return queueDelay / queueDelayTarget; +} + +/* +* Compute congestion indicator +*/ +void ScreamTx::computeQueueDelayTrend() { + queueDelayTrend = 0.0; + int ptr = queueDelayFractionHistPtr; + float avg = 0.0f, x1, x2, a0, a1; + + for (int n = 0; n < kQueueDelayFractionHistSize; n++) { + avg += queueDelayFractionHist[ptr]; + ptr = (ptr + 1) % kQueueDelayFractionHistSize; + } + avg /= kQueueDelayFractionHistSize; + + ptr = queueDelayFractionHistPtr; + x2 = 0.0f; + a0 = 0.0f; + a1 = 0.0f; + for (int n = 0; n < kQueueDelayFractionHistSize; n++) { + x1 = queueDelayFractionHist[ptr] - avg; + a0 += x1 * x1; + a1 += x1 * x2; + x2 = x1; + ptr = (ptr + 1) % kQueueDelayFractionHistSize; + } + if (a0 > 0) { + queueDelayTrend = std::max(0.0f, std::min(1.0f, (a1 / a0)*queueDelayFractionAvg)); + } +} + +/* +* Compute indicators of shared bottleneck +*/ +void ScreamTx::computeSbd() { + float queueDelayNorm, tmp; + queueDelaySbdMean = 0.0; + queueDelaySbdMeanSh = 0.0; + queueDelaySbdVar = 0.0; + int ptr = queueDelayNormHistPtr; + for (int n = 0; n < kQueueDelayNormHistSize; n++) { + queueDelayNorm = queueDelayNormHist[ptr]; + queueDelaySbdMean += queueDelayNorm; + if (n >= kQueueDelayNormHistSize - kQueueDelayNormHistSizeSh) { + queueDelaySbdMeanSh += queueDelayNorm; + } + ptr = (ptr + 1) % kQueueDelayNormHistSize; + } + queueDelaySbdMean /= kQueueDelayNormHistSize; + queueDelaySbdMeanSh /= kQueueDelayNormHistSizeSh; + + ptr = queueDelayNormHistPtr; + for (int n = 0; n < kQueueDelayNormHistSize; n++) { + queueDelayNorm = queueDelayNormHist[ptr]; + tmp = queueDelayNorm - queueDelaySbdMean; + queueDelaySbdVar += tmp * tmp; + queueDelaySbdSkew += tmp * tmp * tmp; + ptr = (ptr + 1) % kQueueDelayNormHistSize; + } + queueDelaySbdVar /= kQueueDelayNormHistSize; + queueDelaySbdSkew /= kQueueDelayNormHistSize; +} + +/* +* true if the queueDelayTarget is increased due to +* detected competing flows +*/ +bool ScreamTx::isCompetingFlows() { + return queueDelayTarget > queueDelayTargetMin; +} + +/* +* Get queue delay trend +*/ +float ScreamTx::getQueueDelayTrend() { + return queueDelayTrend; +} + +/* +* Determine active streams +*/ +void ScreamTx::determineActiveStreams(uint64_t time_us) { + float surplusBitrate = 0.0f; + float sumPrio = 0.0; + bool streamSetInactive = false; + for (int n = 0; n < nStreams; n++) { + if (time_us - streams[n]->lastFrameT_us > 1000000 && streams[n]->isActive) { + streams[n]->isActive = false; + surplusBitrate += streams[n]->targetBitrate; + streams[n]->targetBitrate = streams[n]->minBitrate; + streamSetInactive = true; + } + else { + sumPrio += streams[n]->targetPriority; + } + } + if (streamSetInactive) { + for (int n = 0; n < nStreams; n++) { + if (streams[n]->isActive) { + streams[n]->targetBitrate = std::min(streams[n]->maxBitrate, + streams[n]->targetBitrate + + surplusBitrate*streams[n]->targetPriority / sumPrio); + } + } + } +} + +/* +* Add credit to streams that was not served +*/ +void ScreamTx::addCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) { + /* + * Add a credit to stream(s) that did not get priority to transmit RTP packets + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return; + int maxCredit = 10 * mss; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (tmp != servedStream) { + int credit = (int)(transmittedBytes*tmp->targetPriority * servedStream->targetPriorityInv); + if (tmp->rtpQueue->sizeOfQueue() > 0) { + tmp->credit += credit; + } + else { + tmp->credit += credit; + if (tmp->credit > maxCredit) { + tmp->creditLost += tmp->credit - maxCredit; + tmp->credit = maxCredit; + } + //tmp->credit = std::min(10 * mss, tmp->credit + credit); + } + } + } +} + +/* +* Subtract credit from served stream +*/ +void ScreamTx::subtractCredit(uint64_t time_us, Stream* servedStream, int transmittedBytes) { + /* + * Subtract a credit equal to the number of transmitted bytes from the stream that + * transmitted a packet + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return; + servedStream->credit = std::max(0, servedStream->credit - transmittedBytes); +} +ScreamTx::Stream::Stream(ScreamTx *parent_, + RtpQueueIface *rtpQueue_, + uint32_t ssrc_, + float priority_, + float minBitrate_, + float startBitrate_, + float maxBitrate_, + float rampUpSpeed_, + float maxRtpQueueDelay_, + float txQueueSizeFactor_, + float queueDelayGuard_, + float lossEventRateScale_, + float ecnCeEventRateScale_) { + parent = parent_; + rtpQueue = rtpQueue_; + ssrc = ssrc_; + targetPriority = priority_; + targetPriorityInv = 1.0f / targetPriority; + minBitrate = minBitrate_; + maxBitrate = maxBitrate_; + targetBitrate = std::min(maxBitrate, std::max(minBitrate, startBitrate_)); + rampUpSpeed = rampUpSpeed_; + maxRtpQueueDelay = maxRtpQueueDelay_; + txQueueSizeFactor = txQueueSizeFactor_; + queueDelayGuard = queueDelayGuard_; + lossEventRateScale = lossEventRateScale_; + ecnCeEventRateScale = ecnCeEventRateScale_; + targetBitrateHistUpdateT_us = 0; + targetBitrateI = 1.0f; + credit = 0; + creditLost = 0; + bytesTransmitted = 0; + bytesAcked = 0; + bytesLost = 0; + hiSeqAck = 0; + hiSeqTx = 0; + rateTransmitted = 0.0f; + rateAcked = 0.0f; + rateLost = 0.0f; + lossEventFlag = false; + ecnCeEventFlag = false; + txSizeBitsAvg = 0.0f; + lastRateUpdateT_us = 0; + lastBitrateAdjustT_us = 0; + lastTargetBitrateIUpdateT_us = 0; + bytesRtp = 0; + rateRtp = 0.0f; + lastLossDetectIx = -1; + ecnCeMarkedBytes = 0; + timeTxAck_us = 0; + + for (int n = 0; n < kRateUpDateSize; n++) { + rateRtpHist[n] = 0.0f; + rateAckedHist[n] = 0.0f; + rateLostHist[n] = 0.0f; + rateTransmittedHist[n] = 0.0f; + } + rateUpdateHistPtr = 0; + for (int n = 0; n < kTargetBitrateHistSize; n++) { + targetBitrateHist[n] = 0; + } + targetBitrateHistPtr = 0; + targetRateScale = 1.0; + isActive = false; + lastFrameT_us = 0; + initTime_us = 0; + rtpQueueDiscard = false; + lastRtpQueueDiscardT_us = 0; + rateLost = 0.0; + bytesLost = 0; + wasRepairLoss = false; + repairLoss = false; + for (int n = 0; n < kMaxTxPackets; n++) + txPackets[n].isUsed = false; + txPacketsPtr = 0; +} + +/* +* Update the estimated max media rate +*/ +void ScreamTx::Stream::updateRate(uint64_t time_us) { + if (lastRateUpdateT_us != 0) { + float tDelta = (time_us - lastRateUpdateT_us) * 1e-6f; + + rateTransmittedHist[rateUpdateHistPtr] = bytesTransmitted*8.0f / tDelta; + rateAckedHist[rateUpdateHistPtr] = bytesAcked*8.0f / tDelta; + rateLostHist[rateUpdateHistPtr] = bytesLost*8.0f / tDelta; + rateRtpHist[rateUpdateHistPtr] = bytesRtp * 8.0f / tDelta; + rateUpdateHistPtr = (rateUpdateHistPtr + 1) % kRateUpDateSize; + rateTransmitted = 0.0f; + rateAcked = 0.0f; + rateLost = 0.0f; + rateRtp = 0.0f; + for (int n = 0; n < kRateUpDateSize; n++) { + rateTransmitted += rateTransmittedHist[n]; + rateAcked += rateAckedHist[n]; + rateLost += rateLostHist[n]; + rateRtp += rateRtpHist[n]; + } + rateTransmitted /= kRateUpDateSize; + rateAcked /= kRateUpDateSize; + rateLost /= kRateUpDateSize; + rateRtp /= kRateUpDateSize; + if (rateRtp > 0) { + /* + * Video coders are strange animals.. In certain cases the average bitrate is + * consistently lower or higher than the target bitare. This additonal scaling compensates + * for this anomaly. + */ + const float alpha = 0.005f; + targetRateScale *= (1.0f - alpha); + targetRateScale += alpha*targetBitrate / rateRtp; + targetRateScale = std::min(1.25f, std::max(0.8f, targetRateScale)); + } + } + + bytesTransmitted = 0; + bytesAcked = 0; + bytesRtp = 0; + bytesLost = 0; + lastRateUpdateT_us = time_us; +} + +/* +* Get the estimated maximum media rate +*/ +float ScreamTx::Stream::getMaxRate() { + return std::max(rateTransmitted, rateAcked); +} + +/* +* The the stream that matches SSRC +*/ +ScreamTx::Stream* ScreamTx::getStream(uint32_t ssrc) { + for (int n = 0; n < nStreams; n++) { + if (streams[n]->isMatch(ssrc)) { + return streams[n]; + } + } + return NULL; +} + +/* +* Get the target bitrate. +* This function returns a value -1 if loss of RTP packets is detected, +* either because of loss in network or RTP queue discard +*/ +float ScreamTx::Stream::getTargetBitrate() { + + bool requestRefresh = isRtpQueueDiscard() || repairLoss; + repairLoss = false; + if (requestRefresh && !wasRepairLoss) { + wasRepairLoss = true; + return -1.0; + } + float rate = targetRateScale*targetBitrate; + /* + * Video coders are strange animals.. In certain cases a very frequent rate requests can confuse the + * rate control logic in the coder + */ + wasRepairLoss = false; + return rate; +} + +/* +* A small history of past max bitrates is maintained and the max value is picked. +* This solves a problem where consequtive rate decreases can give too low +* targetBitrateI values. +*/ +void ScreamTx::Stream::updateTargetBitrateI(float br) { + targetBitrateHist[targetBitrateHistPtr] = std::min(br, targetBitrate); + targetBitrateHistPtr = (targetBitrateHistPtr + 1) % kTargetBitrateHistSize; + targetBitrateI = std::min(br, targetBitrate); + for (int n = 0; n < kTargetBitrateHistSize; n++) { + targetBitrateI = std::max(targetBitrateI, targetBitrateHist[n]); + } + +} + +/* +* Update the target bitrate, the target bitrate includes the RTP overhead +*/ +void ScreamTx::Stream::updateTargetBitrate(uint64_t time_us) { + /* + * Compute a maximum bitrate, this bitrates includes the RTP overhead + */ + float br = getMaxRate(); + float rateRtpLimit = br; + if (initTime_us == 0) { + /* + * Initialize if the first time + */ + initTime_us = time_us; + lastRtpQueueDiscardT_us = time_us; + } + + if (lastBitrateAdjustT_us == 0) lastBitrateAdjustT_us = time_us; + isActive = true; + lastFrameT_us = time_us; + + if (lossEventFlag || ecnCeEventFlag) { + /* + * Loss event handling + * Rate is reduced slightly to avoid that more frames than necessary + * queue up in the sender queue + */ + if (time_us - lastTargetBitrateIUpdateT_us > 2000000) { + /* + * The timing constraint avoids that targetBitrateI + * is set too low in cases where a congestion event is prolonged. + * An accurate targetBitrateI is not of extreme importance + * but helps to avoid jitter spikes when SCReAM operates + * over fixed bandwidth or slowly varying links. + */ + updateTargetBitrateI(br); + lastTargetBitrateIUpdateT_us = time_us; + } + if (lossEventFlag) + targetBitrate = std::max(minBitrate, targetBitrate*lossEventRateScale); + else if (ecnCeEventFlag) { + if (parent->isL4s) { + targetBitrate = std::max(minBitrate, targetBitrate*(1.0f - parent->l4sAlpha / 4.0f)); + //updateTargetBitrateI(targetBitrate); + } + else { + targetBitrate = std::max(minBitrate, targetBitrate*ecnCeEventRateScale); + } + } + lossEventFlag = false; + ecnCeEventFlag = false; + lastBitrateAdjustT_us = time_us; + } + else { + if (time_us - lastBitrateAdjustT_us < kRateAdjustInterval_us) + return; + /* + * A scale factor that is dependent on the inflection point + * i.e the last known highest video bitrate + */ + float sclI = (targetBitrate - targetBitrateI) / targetBitrateI; + sclI *= 4; + sclI = std::max(0.2f, std::min(1.0f, sclI*sclI)); + float increment = 0.0f; + + /* + * Size of RTP queue [bits] + * As this function is called immediately after a + * video frame is produced, we need to accept the new + * RTP packets in the queue, we subtract a number of bytes correspoding to the size + * of the last frame (including RTP overhead), this is simply the aggregated size + * of the RTP packets with the highest RTP timestamp + */ + int lastBytes = rtpQueue->getSizeOfLastFrame(); + int txSizeBits = std::max(0, rtpQueue->bytesInQueue() - lastBytes) * 8; + + float alpha = 0.5f; + + txSizeBitsAvg = txSizeBitsAvg*alpha + txSizeBits*(1.0f - alpha); + /* + * tmp is a local scaling factor that makes rate adaptation sligthly more + * aggressive when competing flows (e.g file transfers) are detected + */ + float rampUpSpeedTmp = std::min(rampUpSpeed, targetBitrate*0.5f); + if (parent->isCompetingFlows()) { + rampUpSpeedTmp *= 2.0f; + } + + float rtpQueueDelay = rtpQueue->getDelay(time_us * 1e-6f); + if (rtpQueueDelay > maxRtpQueueDelay && + (time_us - lastRtpQueueDiscardT_us > kMinRtpQueueDiscardInterval_us)) { + /* + * RTP queue is cleared as it is becoming too large, + * Function is however disabled initially as there is no reliable estimate of the + * throughput in the initial phase. + */ + rtpQueue->clear(); + + rtpQueueDiscard = true; + + lastRtpQueueDiscardT_us = time_us; + targetRateScale = 1.0; + txSizeBitsAvg = 0.0f; + } + else if (parent->inFastStart && rtpQueueDelay < 0.1f) { + /* + * Increment bitrate, limited by the rampUpSpeed + */ + increment = rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6f); + /* + * Limit increase rate near the last known highest bitrate or if priority is low + */ + increment *= sclI*sqrt(targetPriority); + /* + * No increase if the actual coder rate is lower than the target + */ + if (targetBitrate > rateRtpLimit*1.5f) + increment = 0; + /* + * Add increment + */ + targetBitrate += increment; + wasFastStart = true; + } + else { + if (wasFastStart) { + wasFastStart = false; + if (time_us - lastTargetBitrateIUpdateT_us > 2000000) { + /* + * The timing constraint avoids that targetBitrateI + * is set too low in cases where a + * congestion event is prolonged + */ + updateTargetBitrateI(br); + lastTargetBitrateIUpdateT_us = time_us; + } + } + + /* + * Update target rate + * At very low bitrates it is necessary to actively try to push the + * the bitrate up some extra + */ + float incrementScale = 1.0f + 0.05f*std::min(1.0f, 50000.0f / targetBitrate); + + float increment = incrementScale*br; + if (!parent->isL4s || parent->l4sAlpha < 0.001) { + /* + * Apply the extra precaution with respect to queue delay and + * RTP queue only if L4S is not running or when ECN marking does not occur for a longer period + * scl is based on the queue delay trend + */ + float scl = queueDelayGuard*parent->getQueueDelayTrend(); + if (parent->isCompetingFlows()) + scl *= 0.05f; + increment = increment*(1.0f - scl) - txQueueSizeFactor*txSizeBitsAvg; + } + increment -= targetBitrate; + if (txSizeBits > 12000 && increment > 0) + increment = 0; + + if (increment > 0) { + wasFastStart = true; + if (!parent->isCompetingFlows()) { + /* + * Limit the bitrate increase so that it does not go faster than rampUpSpeedTmp + * This limitation is not in effect if competing flows are detected + */ + increment *= sclI; + increment = std::min(increment, (float)(rampUpSpeedTmp*(kRateAdjustInterval_us * 1e-6))); + } + if (targetBitrate > rateRtpLimit*1.5f) { + /* + * Limit increase if the target bitrate is considerably higher than the actual + * bitrate, this is an indication of an idle source. + */ + increment = 0; + } + } + else { + /* + * Avoid that the target bitrate is reduced if it actually is the media + * coder that limits the output rate e.g due to inactivity + */ + if (rateRtp < targetBitrate*0.8f) + increment = 0.0f; + /* + * Also avoid that the target bitrate is reduced if + * the coder bitrate is higher + * than the target. + * The possible reason is that a large I frame is transmitted, another reason is + * complex dynamic content. + */ + if (rateRtp > targetBitrate*2.0f) + increment = 0.0f; + } + targetBitrate += increment; + + } + lastBitrateAdjustT_us = time_us; + } + + targetBitrate = std::min(maxBitrate, std::max(minBitrate, targetBitrate)); +} + +bool ScreamTx::Stream::isRtpQueueDiscard() { + bool tmp = rtpQueueDiscard; + rtpQueueDiscard = false; + return tmp; +} + +/* +* Adjust (enforce) proper prioritization between active streams +* at regular intervals. This is a necessary addon to mitigate +* issues that VBR media brings +* The function consists of equal measures or rational thinking and +* black magic, which means that there is no 100% guarantee that +* will always work. +*/ +void ScreamTx::adjustPriorities(uint64_t time_us) { + if (nStreams == 1 || time_us - lastAdjustPrioritiesT_us < 1000000) { + /* + * Skip if only one stream or if adjustment done less than 5s ago + */ + return; + } + + if (queueDelayTrend > 0.02) { + /* + * Adjust only if there is some evidence of congestion + */ + int avgCreditLost = 0; + int avgCreditLostN = 0; + for (int n = 0; n < nStreams; n++) { + avgCreditLost += streams[n]->creditLost; + if (streams[n]->isActive) + avgCreditLostN++; + } + if (avgCreditLostN <= 1) { + /* + * At the most 1 steam active, skip adjustment + */ + return; + } + + avgCreditLost /= avgCreditLostN; + for (int n = 0; n < nStreams; n++) { + if (streams[n]->isActive) { + if (streams[n]->creditLost < avgCreditLost && + streams[n]->targetBitrate > streams[n]->rateRtp) { + /* + * Stream is using more of its share than the average + * bitrate is likelky too high, reduce target bitrate + * This algorithm works best when we want to ensure + * different priorities + */ + streams[n]->targetBitrate = std::max(streams[n]->minBitrate, streams[n]->targetBitrate*0.9f); + } + } + } + + for (int n = 0; n < nStreams; n++) + streams[n]->creditLost = 0; + + + lastAdjustPrioritiesT_us = time_us; + + } + if (time_us - lastAdjustPrioritiesT_us < 20000000) { + /* + * Clear old statistics of unused credits + */ + for (int n = 0; n < nStreams; n++) + streams[n]->creditLost = 0; + + + lastAdjustPrioritiesT_us = time_us; + } +} + +/* +* Get the prioritized stream +*/ +ScreamTx::Stream* ScreamTx::getPrioritizedStream(uint64_t time_us) { + /* + * Function that prioritizes between streams, this function may need + * to be modified to handle the prioritization better for e.g + * FEC, SVC etc. + */ + if (nStreams == 1) + /* + * Skip if only one stream to save CPU + */ + return streams[0]; + + int maxCredit = 1; + Stream *stream = NULL; + /* + * Pick a stream with credit higher or equal to + * the size of the next RTP packet in queue for the given stream. + */ + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + if (tmp->rtpQueue->sizeOfQueue() == 0) { + /* + * Queue empty + */ + } + else { + /* + * Pick stream if it has the highest credit so far + */ + if (tmp->credit >= std::max(maxCredit, tmp->rtpQueue->sizeOfNextRtp())) { + stream = tmp; + maxCredit = tmp->credit; + } + } + } + if (stream != NULL) { + return stream; + } + /* + * If the above doesn't give a candidate.. + * Pick the stream with the highest priority that also + * has at least one RTP packet in queue. + */ + float maxPrio = 0.0; + for (int n = 0; n < nStreams; n++) { + Stream *tmp = streams[n]; + float priority = tmp->targetPriority; + if (tmp->rtpQueue->sizeOfQueue() > 0 && priority > maxPrio) { + maxPrio = priority; + stream = tmp; + } + } + return stream; +} diff --git a/RPI/scream/scream_sender/code/ScreamTx.h b/RPI/scream/scream_sender/code/ScreamTx.h new file mode 100644 index 0000000..3c802fb --- /dev/null +++ b/RPI/scream/scream_sender/code/ScreamTx.h @@ -0,0 +1,627 @@ +#ifndef SCREAM_TX +#define SCREAM_TX + +#include <string.h> +#include <iostream> +#include <cstdint> +using namespace std; + +/* +* This module implements the sender side of SCReAM, +* see https://github.com/EricssonResearch/scream/blob/master/SCReAM-description.pdf +* for details on how it is integrated in audio/video platforms +* A full implementation needs the additional code for +* + RTCP feedback (e.g using RFC3611 XR elements) +* + RTP queue(s), one queue per stream, see SCReAM description for interface description +* + Other obvious stuff such as RTP payload packetizer, video+audio capture, coders.... +* +*/ + +// ==== Default parameters (if tuning necessary) ==== +// Connection related default parameters +// CWND scale factor upon loss event +static const float kLossBeta = 0.8f; +// CWND scale factor upon ECN-CE event +static const float kEcnCeBeta = 0.9f; +// Min and max queue delay target +static const float kQueueDelayTargetMin = 0.1f; //ms +// Enable shared botleneck detection and queue delay target adjustement +// good if SCReAM needs to compete with e.g FTP but +// Can in some cases cause self-inflicted congestion +// i.e the e2e delay can become large even though +// there is no competing traffic present +// For some reason, self-inflicted congestion is easily triggered +// when an audio + video stream is run, so bottomline is that +// this feature is a bit shaky +static const bool kEnableSbd = false; +// CWND up and down gain factors +static const float kGainUp = 1.0f; +static const float kGainDown = 2.0f; + +// Stream related default parameters +// Max video rampup speed in bps/s (bits per second increase per second) +static const float kRampUpSpeed = 200000.0f; // bps/s +// Max RTP queue delay, RTP queue is cleared if this value is exceeded +static const float kMaxRtpQueueDelay = 0.1; // 0.1s +// Compensation factor for RTP queue size +// A higher value such as 0.2 gives less jitter esp. in wireless (LTE) +// but potentially also lower link utilization +static const float kTxQueueSizeFactor = 0.2f; +// Compensation factor for detected congestion in rate computation +// A higher value such as 0.5 gives less jitter esp. in wireless (LTE) +// but potentially also lower link utilization +static const float kQueueDelayGuard = 0.1f; +// Video rate scaling due to loss events +static const float kLossEventRateScale = 0.9f; +// Video rate scaling due to ECN marking events +static const float kEcnCeEventRateScale = 0.95f; + + + +// Constants +/* +* Timestamp sampling rate for SCReAM feedback +*/ +static const float kTimestampRate = 1000.0f; +/* +* Max number of RTP packets in flight +* With and MSS = 1200 byte and an RTT = 200ms +* this is enount to support media bitrates of ~50Mbps +* Note, 65536 % kMaxTxPackets must be zero +*/ +static const int kMaxTxPackets = 2048; +/* +* Max number of streams +*/ +static const int kMaxStreams = 10; +/* +* History vectors +*/ +static const int kBaseOwdHistSize = 50; +static const int kQueueDelayNormHistSize = 200; +static const int kQueueDelayNormHistSizeSh = 50; +static const int kQueueDelayFractionHistSize = 20; +static const int kBytesInFlightHistSizeMax = 60; +static const int kRateUpDateSize = 4; +static const int kTargetBitrateHistSize = 3; +static const int kLossRateHistSize = 10; + +class RtpQueueIface; +class ScreamTx { +public: + /* + * Constructor, see constant definitions above for an explanation of parameters + * cwnd > 0 sets a different initial congestion window, for example it can be set to + * initialrate/8*rtt + * cautiousPacing is set in the range [0.0..1.0]. A higher values restricts the transmission rate of large key frames + * which can be beneficial if it is evident that large key frames cause packet drops, for instance due to + * reduced buffer size in wireless modems. + * This is however at the potential cost of an overall increased transmission delay also when links are uncongested + * as the RTP packets are more likely to be buffered up on the sender side when cautiousPacing is set close to 1.0. + * lossBeta == 1.0 means that packet losses are ignored by the congestion control + * bytesInFlightHistSize can be set to a larger value than 5(s) for enhanced robustness to media coders that are idle + * for long periods + * isL4s = true changes congestion window reaction to ECN marking to a scalable function, similar to DCTCP + */ + ScreamTx(float lossBeta = kLossBeta, + float ecnCeBeta = kEcnCeBeta, + float queueDelayTargetMin = kQueueDelayTargetMin, + bool enableSbd = kEnableSbd, + float gainUp = kGainUp, + float gainDown = kGainDown, + int cwnd = 0, // An initial cwnd larger than 2*mss + float cautiousPacing = 0.0f, + int bytesInFlightHistSize = 5, + bool isL4s = false, + bool openWindow = false); + + ~ScreamTx(); + + /* + * Register a new stream {SSRC,PT} tuple, + * with a priority value in the range ]0.0..1.0] + * where 1.0 denotes the highest priority. + * It is recommended that at least one stream has prioritity 1.0. + * Bitrates are specified in bps + * See constant definitions above for an explanation of other default parameters + */ + void registerNewStream(RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, // priority in range ]0.0 .. 1.0], 1.0 is highest + float minBitrate, // Min target bitrate + float startBitrate, // Starting bitrate + float maxBitrate, // Max target bitrate + float rampUpSpeed = kRampUpSpeed, + float maxRtpQueueDelay = kMaxRtpQueueDelay, + float txQueueSizeFactor = kTxQueueSizeFactor, + float queueDelayGuard = kQueueDelayGuard, + float lossEventRateScale = kLossEventRateScale, + float ecnCeEventRateScale = kEcnCeEventRateScale); + + /* + * Updates the min and max bitrates for an existing stream + */ + void updateBitrateStream(uint32_t ssrc, + float minBitrate, + float maxBitrate); + + /* + * Access the configured RtpQueue of an existing stream + */ + RtpQueueIface * getStreamQueue(uint32_t ssrc); + + /* + * Call this function for each new video frame + * Note : isOkToTransmit should be called after newMediaFrame + */ + void newMediaFrame(uint64_t time_us, uint32_t ssrc, int bytesRtp); + + /* + * Function determines if an RTP packet with SSRC can be transmitted + * Return values : + * 0.0 : RTP packet with SSRC can be immediately transmitted + * addTransmitted must be called if packet is transmitted as a result of this + * >0.0 : Time [s] until this function should be called again + * This can be used to start a timer + * Note that a call to newMediaFrame or incomingFeedback should + * cause an immediate call to isOkToTransmit + * -1.0 : No RTP packet available to transmit or send window is not large enough + */ + float isOkToTransmit(uint64_t time_us, uint32_t &ssrc); + + /* + * Add packet to list of transmitted packets + * should be called when an RTP packet transmitted + * Return time until isOkToTransmit can be called again + */ + float addTransmitted(uint64_t timestamp_us, // Wall clock ts when packet is transmitted + uint32_t ssrc, + int size, + uint16_t seqNr); + + /* + * New incoming feedback, this function + * triggers a CWND update + * The SCReAM timestamp is in jiffies, where the frequency is controlled + * by the timestamp clock frequency (default 1000Hz) + * The ackVector indicates recption of the 64 RTP SN prior to highestSeqNr + * Note : isOkToTransmit should be called after incomingFeedback + * ecnCeMarkedBytes indicates the cumulative number of bytes that are ECN-CE marked + */ + void incomingFeedback(uint64_t time_us, + uint32_t ssrc, // SSRC of stream + uint32_t timestamp, // SCReAM FB timestamp [jiffy] + uint16_t highestSeqNr, // Highest ACKed RTP sequence number + uint64_t ackVector, // ACK vector + uint16_t ecnCeMarkedBytes = 0); // Number of ECN marked bytes + + /* + * Parse feedback according to the format below. It is up to the + * wrapper application this RTCP from a compound RTCP if needed + * BT = 255, means that this is experimental use + * + * 0 1 2 3 + * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * |V=2|P|reserved | PT=XR=207 | length=6 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | BT=255 | reserved | block length=4 | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | SSRC of source | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Highest recv. seq. nr. (16b) | ECN_CE_bytes | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b0-31) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Ack vector (b32-63) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + * | Timestamp (32bits) | + * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + */ + void incomingFeedback(uint64_t time_us, + unsigned char* buf, + int size); + + /* + * Get the target bitrate for stream with SSRC + * NOTE!, Because SCReAM operates on RTP packets, the target bitrate will + * also include the RTP overhead. This means that a subsequent call to set the + * media coder target bitrate must subtract an estimate of the RTP + framing + * overhead. This is not critical for Video bitrates but can be important + * when SCReAM is used to congestion control e.g low bitrate audio streams + * Function returns -1 if a loss is detected, this signal can be used to + * request a new key frame from a video encoder + */ + float getTargetBitrate(uint32_t ssrc); + + /* + * Set target priority for a given stream, priority value should be in range ]0.0..1.0] + */ + void setTargetPriority(uint32_t ssrc, float aPriority); + + /* + * Get verbose log information + */ + void getLog(float time, char *s); + + /* + * Get verbose log information + */ + void getShortLog(float time, char *s); + + /* + * Get overall simplified statistics + */ + void getStatistics(float time, char *s); + + +private: + /* + * Struct for list of RTP packets in flight + */ + struct Transmitted { + uint64_t timeTx_us; + uint32_t timestamp; + int size; + uint16_t seqNr; + bool isUsed; + bool isAcked; + bool isAfterReceivedEdge; + + }; + + /* + * Statistics for the network congestion control and the + * stream[0] + */ + class Statistics { + public: + Statistics(); + void getSummary(float time, char s[]); + void add(float rateTx, float rateLost, float rtt, float queueDelay); + private: + float lossRateHist[kLossRateHistSize]; + float rateLostAcc; + int rateLostN; + int lossRateHistPtr; + float avgRateTx; + float avgRtt; + float avgQueueDelay; + float sumRateTx; + float sumRateLost; + + }; + + + /* + * One instance is created for each {SSRC,PT} tuple + */ + class Stream { + public: + Stream(ScreamTx *parent, + RtpQueueIface *rtpQueue, + uint32_t ssrc, + float priority, + float minBitrate, + float startBitrate, + float maxBitrate, + float rampUpSpeed, + float maxRtpQueueDelay, + float txQueueSizeFactor, + float queueDelayGuard, + float lossEventRateScale, + float ecnCeEventRateScale); + + float getMaxRate(); + + float getTargetBitrate(); + + void updateRate(uint64_t time_us); + + void updateTargetBitrateI(float br); + + void updateTargetBitrate(uint64_t time_us); + + bool isRtpQueueDiscard(); + + bool isMatch(uint32_t ssrc_) { return ssrc == ssrc_; }; + ScreamTx *parent; + RtpQueueIface *rtpQueue; // RTP Packet queue + uint32_t ssrc; // SSRC of stream + float rampUpSpeed; + float maxRtpQueueDelay; + float txQueueSizeFactor; + float queueDelayGuard; + float lossEventRateScale; + float ecnCeEventRateScale; + + int credit; // Credit that is received if another stream gets + // priority to transmit + int creditLost; // Amount of lost (unused) credit, input to + // adjustPriorities function + float targetPriority; // Stream target priority + float targetPriorityInv;// Stream target priority inverted + int bytesTransmitted; // Number of bytes transmitted + int bytesAcked; // Number of ACKed bytes + int bytesLost; // Number of lost bytes + float rateTransmitted; // Transmitted rate + float rateAcked; // ACKed rate + float rateLost; // Lost packets (bit)rate + uint16_t hiSeqAck; // Highest sequence number ACKed + uint16_t hiSeqTx; // Highest sequence number transmitted + float minBitrate; // Min bitrate + float maxBitrate; // Max bitrate + float targetBitrate; // Target bitrate + float targetBitrateI; // Target bitrate inflection point + bool wasFastStart; // Was fast start + bool lossEventFlag; // Was loss event + bool ecnCeEventFlag; // Was ECN mark event + float txSizeBitsAvg; // Avergage nymber of bits in RTP queue + uint64_t lastBitrateAdjustT_us; // Last time rate was updated for this stream + uint64_t lastRateUpdateT_us; // Last time rate estimate was updated + uint64_t lastTargetBitrateIUpdateT_us; // Last time rate estimate was updated + + uint64_t timeTxAck_us; // timestamp when higest ACKed SN was transmitted + + int bytesRtp; // Number of RTP bytes from media coder + float rateRtp; // Media bitrate + float rateRtpHist[kRateUpDateSize]; + float rateAckedHist[kRateUpDateSize]; + float rateLostHist[kRateUpDateSize]; + float rateTransmittedHist[kRateUpDateSize]; + int rateUpdateHistPtr; + float targetBitrateHist[kTargetBitrateHistSize]; + int targetBitrateHistPtr; + uint64_t targetBitrateHistUpdateT_us; + float targetRateScale; + + bool isActive; + uint64_t lastFrameT_us; + uint64_t initTime_us; + bool rtpQueueDiscard; + uint64_t lastRtpQueueDiscardT_us; + bool wasRepairLoss; + bool repairLoss; + int lastLossDetectIx; + uint16_t ecnCeMarkedBytes; + + + Transmitted txPackets[kMaxTxPackets]; + int txPacketsPtr; + + }; + + /* + * Initialize values + */ + void initialize(uint64_t time_us); + + /* + * Mark ACKed RTP packets + */ + void markAcked(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, uint64_t ackVector, uint32_t timestamp, Stream *stream); + + /* + * Update CWND + */ + void updateCwnd(uint64_t time_us); + + /* + * Detect lost RTP packets + */ + void detectLoss(uint64_t time_us, struct Transmitted *txPackets, uint16_t highestSeqNr, Stream *stream); + + /* + * Call this function at regular intervals to determine active streams + */ + void determineActiveStreams(uint64_t time_us); + + /* + * Compute 1st order prediction coefficient of queue delay multiplied by the queue delay fraction + * A value [0.0..1.0] indicates if queue delay is increasing + * This gives a rough estimate of how the queuing delay delay evolves + */ + void computeQueueDelayTrend(); + + /* + * Estimate one way delay [jiffy] and updated base delay + * Base delay is not subtracted + */ + uint32_t estimateOwd(uint64_t time_us); + + /* + * return base delay [jiffy] + */ + uint32_t getBaseOwd(); + + /* + * Compute indicators of shared bottleneck + */ + void computeSbd(); + + /* + * True if competing (TCP)flows detected + */ + bool isCompetingFlows(); + + /* + * Get stream with corresponding SSRC + */ + Stream* getStream(uint32_t ssrc); + + /* + * Get matching stream index for this SSRC tuple, + * return -1 if no match + */ + int getStreamIndex(uint32_t ssrc); + + /* + * Adjust stream bitrates to reflect priorities + */ + void adjustPriorities(uint64_t time_us); + + /* + * Get the prioritized stream + * Return NULL if no stream with + * with RTP packets + */ + Stream* getPrioritizedStream(uint64_t time_us); + + /* + * Add credit to unserved streams + */ + void addCredit(uint64_t time_us, + Stream* servedStream, + int transmittedBytes); + + /* + * Subtract used credit + */ + void subtractCredit(uint64_t time_us, + Stream* servedStream, + int transmittedBytes); + + /* + * return 1 if in fast start + */ + int isInFastStart() { return inFastStart ? 1 : 0; }; + + /* + * Get the fraction between queue delay and the queue delay target + */ + float getQueueDelayFraction(); + + /* + * Get the queuing delay trend + */ + float getQueueDelayTrend(); + + /* + * Variables for network congestion control + */ + + /* + * Related to computation of queue delay and target queuing delay + */ + float lossBeta; + float ecnCeBeta; + float queueDelayTargetMin; + bool enableSbd; + float gainUp; + float gainDown; + float cautiousPacing; + + uint64_t sRttSh_us; + uint64_t sRtt_us; + float sRtt; + uint32_t ackedOwd; + uint32_t baseOwd; + + uint32_t baseOwdHist[kBaseOwdHistSize]; + int baseOwdHistPtr; + uint32_t baseOwdHistMin; + float queueDelay; + float queueDelayFractionAvg; + float queueDelayFractionHist[kQueueDelayFractionHistSize]; + int queueDelayFractionHistPtr; + float queueDelayTrend; + float queueDelayTarget; + float queueDelayNormHist[kQueueDelayNormHistSize]; + int queueDelayNormHistPtr; + float queueDelaySbdVar; + float queueDelaySbdMean; + float queueDelaySbdSkew; + float queueDelaySbdMeanSh; + float queueDelayMax; + + /* + * CWND management + */ + int bytesNewlyAcked; + int mss; // Maximum Segment Size + int cwnd; // congestion window + int cwndMin; + bool openWindow; + int bytesInFlight; + int bytesInFlightLog; + int bytesInFlightHistLo[kBytesInFlightHistSizeMax]; + int bytesInFlightHistHi[kBytesInFlightHistSizeMax]; + int bytesInFlightHistSize; + int bytesInFlightHistPtr; + int bytesInFlightMaxLo; + int bytesInFlightHistLoMem; + int bytesInFlightMaxHi; + int bytesInFlightHistHiMem; + float maxBytesInFlight; + int accBytesInFlightMax; + int nAccBytesInFlightMax; + float rateTransmitted; + float rateAcked; + float queueDelayTrendMem; + float maxRate; + uint64_t lastCwndUpdateT_us; + bool isL4s; + float l4sAlpha; + int bytesMarkedThisRtt; + int bytesDeliveredThisRtt; + uint64_t lastL4sAlphaUpdateT_us; + /* + * Loss event + */ + bool lossEvent; + bool wasLossEvent; + float lossEventRate; + + /* + * ECN-CE + */ + bool ecnCeEvent; + + /* + * Fast start + */ + bool inFastStart; + + /* + * Transmission scheduling + */ + uint64_t paceInterval_us; + float paceInterval; + float rateTransmittedAvg; + + /* + * Update control variables + */ + bool isInitialized; + uint64_t lastSRttUpdateT_us; + uint64_t lastBaseOwdAddT_us; + uint64_t baseOwdResetT_us; + uint64_t lastAddToQueueDelayFractionHistT_us; + uint64_t lastBytesInFlightT_us; + uint64_t lastCongestionDetectedT_us; + uint64_t lastLossEventT_us; + uint64_t lastTransmitT_us; + uint64_t nextTransmitT_us; + uint64_t lastRateUpdateT_us; + uint64_t lastAdjustPrioritiesT_us; + uint64_t lastRttT_us; + uint64_t lastBaseDelayRefreshT_us; + uint64_t initTime_us; + float queueDelayMin; + float queueDelayMinAvg; + + /* + * Variables for multiple steams handling + */ + Stream *streams[kMaxStreams]; + int nStreams; + + /* + * Statistics + */ + Statistics *statistics; + +}; +#endif diff --git a/RPI/scream/scream_sender/code/cmake_install.cmake b/RPI/scream/scream_sender/code/cmake_install.cmake new file mode 100644 index 0000000..beeac27 --- /dev/null +++ b/RPI/scream/scream_sender/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/pi/scream/scream_sender/code + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + diff --git a/RPI/scream/scream_sender/code/scream_sender.cpp b/RPI/scream/scream_sender/code/scream_sender.cpp new file mode 100644 index 0000000..ef05df1 --- /dev/null +++ b/RPI/scream/scream_sender/code/scream_sender.cpp @@ -0,0 +1 @@ +// Scream sender side wrapper #include "ScreamTx.h" #include "RtpQueue.h" #include "sys/socket.h" #include "sys/types.h" #include "netinet/in.h" #include <string.h> /* needed for memset */ #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <sys/time.h> #include <iostream> #include <pthread.h> #include <fcntl.h> #include <unistd.h> #include <sys/time.h> #include <signal.h> #include <math.h> struct itimerval timer; struct sigaction sa; using namespace std; #define BUFSIZE 2048 #define MIN_PACE_INTERVAL 0.001 #define HTTP_BUF_SIZE 10000 #define MAX_SOURCES 6 #define KEEP_ALIVE_PKT_SIZE 1 int PT = 98; int http_sock = 0; int fd_out_rtp; int fd_in_rtp[MAX_SOURCES]; ScreamTx *screamTx = 0; RtpQueue *rtpQueue[MAX_SOURCES] = {0,0,0,0,0,0}; int nSources = 0; float delayTarget = 0.1f; char *auth; #define ECN_CAPABLE /* * ECN capable * 0 = Not-ECT * 1 = ECT(0) * 2 = ECT(1) */ int ect = 0; char *out_ip = "192.168.0.21"; int out_port = 30110; char *in_ip[MAX_SOURCES]; int in_port[MAX_SOURCES]; uint32_t in_ssrc[MAX_SOURCES]; float priority[MAX_SOURCES] = {1.0,1.0,1.0,1.0,1.0,1.0}; float congestionScaleFactor = 0.9; int bytesInFlightHistSize = 5; float maxRate = 8192e3f; struct sockaddr_in in_rtp_addr[MAX_SOURCES]; struct sockaddr_in out_rtp_addr; struct sockaddr_in in_rtcp_addr; struct sockaddr_in http_addr; socklen_t addrlen_out_rtp; socklen_t addrlen_dummy_rtcp; uint64_t lastLogT = 0; socklen_t addrlen_in_rtp[MAX_SOURCES] = { sizeof(in_rtp_addr[0]), sizeof(in_rtp_addr[1]), sizeof(in_rtp_addr[2]), sizeof(in_rtp_addr[3]), sizeof(in_rtp_addr[4]), sizeof(in_rtp_addr[5])}; socklen_t addrlen_in_rtcp = sizeof(in_rtcp_addr); pthread_mutex_t lock_scream; pthread_mutex_t lock_rtp_queue; // Accumulated pace time, used to avoid starting very short pace timers // this can save some complexity at very higfh bitrates float accumulatedPaceTime = 0.0f; bool paceTimerRunning = false; int lastQuantRate[MAX_SOURCES] = {0,0,0,0,0,0}; const void sendCoderCommand(char *buf, char *ip); void *txRtpThread(void *arg); void *videoControlThread(void *arg); int setup(); void *rxRtcpThread(void *arg); void *rxRtpThread5(void *arg); void *rxRtpThread4(void *arg); void *rxRtpThread3(void *arg); void *rxRtpThread2(void *arg); void *rxRtpThread1(void *arg); void *rxRtpThread0(void *arg); void trySendRtp(uint64_t time); long getTimeInUs(){ struct timeval tp; gettimeofday(&tp, NULL); long us = tp.tv_sec * 1000000 + tp.tv_usec; return us; } uint64_t t0 = getTimeInUs(); uint64_t lastT = getTimeInUs(); volatile sig_atomic_t done = 0; bool stopThread = false; void stopAll(int signum) { stopThread = true; } void closeSockets(int signum) { exit(0); } /* * Send a packet */ void sendPacket(char* buf, int size) { sendto(fd_out_rtp, buf, size, 0, (struct sockaddr *)&out_rtp_addr, sizeof(out_rtp_addr)); } int main(int argc, char* argv[]) { /* * Parse command line */ if (argc <= 1) { cerr << "Usage : " << endl << " scream_sender <options> auth nsources out_ip out_port in_ip_1 in_port_1 in_ssrc_1 prio_1 .. in_ip_n in_port_n in_ssrc_n prio_n" << endl; cerr << " -ect n : ECN capable transport, n = 1 or 2 for ECT(0) or ECT(1), 0 for not-ECT" << endl; cerr << " -scale val : Congestion scale factor, range [0.5..1.0], default = 0.9" << endl; cerr << " it can be necessary to set scale 1.0 if the LTE modem drops packets" << endl; cerr << " already at low congestion levels." << endl; cerr << " -delaytarget : Sets a queue delay target (default = 0.1s) " << endl; cerr << " -cwvmem : Sets the memory of the congestion window validation (default 5s), max 60s" << endl; cerr << " a larger memory can be beneficial in remote applications where the video input" << endl; cerr << " is static for long periods. " << endl; cerr << " -maxrate : Set max rate [kbps], default 8192." << endl; cerr << " auth : User authorization string base64 encoded version of user:password of IP camera" << endl; cerr << " use eg. the Linux command " << endl; cerr << " echo -n auser:apassword | base64 " << endl; cerr << " nsources : Number of sources, min=1, max=" << MAX_SOURCES << endl; cerr << " out_ip : remote (SCReAM receiver) IP address" << endl; cerr << " out_port : remote (SCReAM receiver) port" << endl; cerr << " in_ip_1 : IP address for video coder 1 " << endl; cerr << " in_port_1 : port for RTP media from video coder 1 " << endl; cerr << " in_ssrc_1 : SSRC (hexadecimal) for RTP media from video coder 1 " << endl; cerr << " prio_1 : Bitrate priority for video coder 1, range [0.1..1.0] " << endl; cerr << " ." << endl; cerr << " ." << endl; cerr << " in_ip_n : IP address for video coder n " << endl; cerr << " in_port_n : port for RTP media from video coder n " << endl; cerr << " in_ssrc_n : SSRC (hexadecimal) for RTP media from video coder n " << endl; cerr << " prio_n : Bitrate priority for video coder n, range [0.1..1.0] " << endl; exit(-1); } int ix = 1; int nExpectedArgs = 2+2+1; while (strstr(argv[ix],"-")) { if (strstr(argv[ix],"-ect")) { ect = atoi(argv[ix+1]); ix+=2; nExpectedArgs += 2; if (ect < 0 || ect > 2) { cerr << "ect must be 0, 1 or 2 " << endl; exit(0); } } if (strstr(argv[ix],"-scale")) { congestionScaleFactor = atof(argv[ix+1]); ix+=2; nExpectedArgs += 2; } if (strstr(argv[ix],"-delaytarget")) { delayTarget = atof(argv[ix+1]); ix+=2; nExpectedArgs += 2; } if (strstr(argv[ix],"-cwvmem")) { bytesInFlightHistSize = atoi(argv[ix+1]); ix+=2; nExpectedArgs += 2; if (bytesInFlightHistSize > kBytesInFlightHistSizeMax || bytesInFlightHistSize < 2) { cerr << "cwvmem must be in range [2 .. " << kBytesInFlightHistSizeMax << "]" << endl; exit(0); } } if (strstr(argv[ix],"-maxrate")) { maxRate = atoi(argv[ix+1])*1000.0f; ix+=2; nExpectedArgs += 2; } } auth = argv[ix]; ix++; nSources = atoi(argv[ix]); nExpectedArgs += nSources*4; ix++; if (nSources < 1 || nSources > MAX_SOURCES) { cerr << "number of sources must be in interval [0.." << MAX_SOURCES << "]" << endl; exit(0); } if (argc-1 != nExpectedArgs-1) { cerr << "expected " << (nExpectedArgs-1) << " arguments, but see " << (argc-1) << " ditto ?" << endl; exit(0); } out_ip = argv[ix];ix++; out_port = atoi(argv[ix]);ix++; for (int n=0; n < nSources; n++) { char s[20]; in_ip[n] = argv[ix];ix++; in_port[n] = atoi(argv[ix]);ix++; strcpy(s, argv[ix]);ix++; sscanf(s,"%x",&in_ssrc[n]); priority[n] = atof(argv[ix]);ix++; } if (setup() == 0) return 0; struct sigaction action; memset(&action, 0, sizeof(struct sigaction)); action.sa_handler = stopAll; sigaction(SIGTERM, &action, NULL); sigaction(SIGINT, &action, NULL); char buf[HTTP_BUF_SIZE]; cerr << "Configure media sources "<<endl; for (int n=0; n < nSources; n++) { sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_bandwidth=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n", 1024, in_ip[n], auth); sendCoderCommand(buf, in_ip[n]); sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_quality=9 HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n", in_ip[n],auth); sendCoderCommand(buf, in_ip[n]); } cerr << "Scream sender started "<<endl; pthread_mutex_init(&lock_scream, NULL); pthread_t tx_rtp_thread; pthread_t rx_rtp_thread[MAX_SOURCES]; pthread_t rx_rtcp_thread; pthread_t video_thread; /* Create Transmit RTP thread */ pthread_create(&tx_rtp_thread,NULL,txRtpThread,"RTCP thread..."); cerr << "RX RTP thread(s) started" << endl; /* Create Receive RTP thread(s) */ pthread_create(&rx_rtp_thread[0],NULL,rxRtpThread0,"RTP thread 0..."); if (nSources > 1) pthread_create(&rx_rtp_thread[1],NULL,rxRtpThread1,"RTP thread 1..."); if (nSources > 2) pthread_create(&rx_rtp_thread[2],NULL,rxRtpThread2,"RTP thread 2..."); if (nSources > 3) pthread_create(&rx_rtp_thread[3],NULL,rxRtpThread3,"RTP thread 3..."); if (nSources > 4) pthread_create(&rx_rtp_thread[4],NULL,rxRtpThread4,"RTP thread 4..."); if (nSources > 5) pthread_create(&rx_rtp_thread[5],NULL,rxRtpThread5,"RTP thread 5..."); cerr << "RX RTP thread(s) started" << endl; /* Create RTCP thread */ pthread_create(&rx_rtcp_thread,NULL,rxRtcpThread,"RTCP thread..."); cerr << "RTCP thread started" << endl; /* Create Video control thread */ pthread_create(&video_thread, NULL, videoControlThread, "Video control thread..."); cerr << "Media control thread started" << endl; while(!stopThread) { uint64_t time_us = getTimeInUs()-t0; if (time_us-lastLogT > 200000) { char s[1000]; char s1[1000]; float time_s = (time_us)/1e6f; screamTx->getShortLog(time_s, s1); sprintf(s,"%8.3f, %s ", time_s, s1); cout << s << endl; /* * Send statistics to receiver this can be used to * verify reliability of remote control */ s1[0] = 0x80; s1[1] = 0x7F; // Set PT = 0x7F for statistics packet memcpy(&s1[2],s,strlen(s)); sendPacket(s1, strlen(s)+2); /* * Send SSRC map to receiver to enable * correct mapping of cameras to displays */ s1[0] = 0x80; s1[1] = 0x7E; // Set PT = 0x7E for SSRC map for (int n=0; n < nSources; n++) { /* * Write the SSRCs (in network byte order) */ uint32_t tmp_l; tmp_l = htonl(in_ssrc[n]); memcpy(s1 + 2 + n*4, &tmp_l, 4); } sendPacket(s1, 2+nSources*4); lastLogT = time_us; } usleep(10000); }; usleep(500000); close(fd_out_rtp); for (int n = 0; n < nSources; n++) close(fd_in_rtp[n]); } /* * Lotsalotsa functions... */ /* * Quantize table for Pansonic WV-SBV111M at 1280*960 resolution */ int panasonicRates[] = { 256, 384, 512, 768,1024,1536,2048,3072,4096,6144,8192}; int panasonicQuality[] = { 9, 9, 9, 7, 5, 3, 3, 3, 1, 1, 1}; int panasonicRatesN = 11; /* * Quantize the target bitrate to the closest value in a geometric sense */ int panasonicQuantizeRate(int rate) { int ix = 0; double minErr = 1e6; while (rate > panasonicRates[ix+1]) ix++; if (ix > 0) { double r1 = panasonicRates[ix]; double r2 = panasonicRates[ix+1]; double d1 = (rate-r1)/(r2-r1); double d2 = (r2-rate)/(r2-r1); if (d1*4 > d2) ix++; } return panasonicRates[ix]; } /* * Get the appropriate quality setting for the given target bitrate */ int panasonicGetQuality(int rate) { for (int n=0; n < panasonicRatesN; n++) { if (rate == panasonicRates[n]) return panasonicQuality[n]; } } /* Extract the sequence number and the timestamp from the RTP header 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | contributing source -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ */ void parseRtp(unsigned char *buf, uint16_t* seqNr, uint32_t* timeStamp, unsigned char *pt) { uint16_t rawSeq; uint32_t rawTs; memcpy(&rawSeq, buf + 2, 2); memcpy(&rawTs, buf + 4, 4); memcpy(pt,buf+1,1); *seqNr = ntohs(rawSeq); *timeStamp = ntohl(rawTs); } /* * Transmit a packet if possible. * If not allowed due to packet pacing restrictions, * then sleep */ void *txRtpThread(void *arg) { int size; uint16_t seqNr; char buf[2000]; uint64_t time_us = getTimeInUs()-t0; int sleepTime_us = 10; float retVal = 0.0f; int sizeOfQueue; uint32_t ssrc; for (;;) { if (stopThread) { return NULL; } time_us = getTimeInUs()-t0; sleepTime_us = 10; retVal = 0.0f; /* * Check if send window allows transmission and there is atleast one stream * with RTP packets in queue */ pthread_mutex_lock(&lock_scream); retVal = screamTx->isOkToTransmit(time_us, ssrc); pthread_mutex_unlock(&lock_scream); if (retVal != -1.0f) { /* * Send window allows transmission and atleast one stream has packets in RTP queue * Get RTP queue for selected stream (ssrc) */ RtpQueue *rtpQueue = (RtpQueue*) screamTx->getStreamQueue(ssrc); pthread_mutex_lock(&lock_rtp_queue); sizeOfQueue = rtpQueue->sizeOfQueue(); pthread_mutex_unlock(&lock_rtp_queue); do { if (retVal == -1.0f) { sizeOfQueue = 0; } else { if (retVal > 0.0f ) accumulatedPaceTime += retVal; if (retVal != -1.0 && accumulatedPaceTime <= MIN_PACE_INTERVAL) { /* * Get RTP packet from the selected RTP queue */ pthread_mutex_lock(&lock_rtp_queue); rtpQueue->pop(buf, size, seqNr); pthread_mutex_unlock(&lock_rtp_queue); /* * Transmit RTP packet */ sendPacket(buf,size); /* * Register transmitted RTP packet */ pthread_mutex_lock(&lock_scream); retVal = screamTx->addTransmitted(time_us, ssrc, size, seqNr); pthread_mutex_unlock(&lock_scream); } /* * Check if send window allows transmission and there is atleast one stream * with RTP packets in queue */ retVal = screamTx->isOkToTransmit(time_us, ssrc); if (retVal == -1.0f) { /* * Send window full or no packets in any RTP queue */ sizeOfQueue = 0; } else { /* * Send window allows transmission and atleast one stream has packets in RTP queue * Get RTP queue for selected stream (ssrc) */ rtpQueue = (RtpQueue*) screamTx->getStreamQueue(ssrc); pthread_mutex_lock(&lock_rtp_queue); sizeOfQueue = rtpQueue->sizeOfQueue(); pthread_mutex_unlock(&lock_rtp_queue); } } } while (accumulatedPaceTime <= MIN_PACE_INTERVAL && retVal != -1.0f && sizeOfQueue > 0); if (accumulatedPaceTime > 0) { /* * Sleep for a while, this paces out packets */ sleepTime_us = int (accumulatedPaceTime*1e6f); accumulatedPaceTime = 0.0f; } } usleep(sleepTime_us); } return NULL; } int recvRtp(unsigned char *buf_rtp, int ix) { /* * Wait for RTP packets from the coder */ int recvlen = recvfrom(fd_in_rtp[ix], buf_rtp, BUFSIZE, 0, (struct sockaddr *)&in_rtp_addr[ix], &addrlen_in_rtp[ix]); if (stopThread) return 0; return recvlen; } void processRtp(unsigned char *buf_rtp, int recvlen, int ix) { uint64_t time_us = getTimeInUs(); time_us = getTimeInUs()-t0; // We need time in microseconds, roughly ms granularity is OK uint16_t seqNr; uint32_t ts; unsigned char pt; parseRtp(buf_rtp, &seqNr, &ts, &pt); uint32_t pt_ = pt & 0x7F; if ((pt & 0x7F)==PT) { pthread_mutex_lock(&lock_rtp_queue); rtpQueue[ix]->push(buf_rtp, recvlen, seqNr, (time_us)*1e-6f); pthread_mutex_unlock(&lock_rtp_queue); pthread_mutex_lock(&lock_scream); screamTx->newMediaFrame(time_us, in_ssrc[ix], recvlen); pthread_mutex_unlock(&lock_scream); } } /* * One thread for each media source (camera) */ void *rxRtpThread0(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,0); if (len > 0) { processRtp(buf_rtp, len, 0); } } return NULL; } void *rxRtpThread1(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,1); if (len > 0) { processRtp(buf_rtp, len, 1); } } return NULL; } void *rxRtpThread2(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,2); if (len > 0) { processRtp(buf_rtp, len, 2); } } return NULL; } void *rxRtpThread3(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,3); if (len > 0) { processRtp(buf_rtp, len, 3); } } return NULL; } void *rxRtpThread4(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,4); if (len > 0) { pthread_mutex_lock(&lock_scream); processRtp(buf_rtp, len, 4); pthread_mutex_unlock(&lock_scream); } } return NULL; } void *rxRtpThread5(void *arg) { unsigned char buf_rtp[BUFSIZE]; for (;;) { int len = recvRtp(buf_rtp,5); if (len > 0) { processRtp(buf_rtp, len, 5); } } return NULL; } void *rxRtcpThread(void *arg) { /* * Wait for RTCP packets from receiver */ unsigned char buf_rtcp[BUFSIZE]; for (;;) { int recvlen = recvfrom(fd_out_rtp, buf_rtcp, BUFSIZE, 0, (struct sockaddr *)&in_rtcp_addr, &addrlen_in_rtcp); if (stopThread) return; uint64_t time_us = getTimeInUs()-t0; // We need time in microseconds, roughly ms granularity is OK if (recvlen > KEEP_ALIVE_PKT_SIZE) { pthread_mutex_lock(&lock_scream); screamTx->incomingFeedback(time_us, buf_rtcp, recvlen); pthread_mutex_unlock(&lock_scream); } } return NULL; } int setup() { for (int n=0; n < nSources; n++) { in_rtp_addr[n].sin_family = AF_INET; in_rtp_addr[n].sin_addr.s_addr = htonl(INADDR_ANY); in_rtp_addr[n].sin_port = htons(in_port[n]); if ((fd_in_rtp[n] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { char s[100]; sprintf(s,"cannot create socket for incoming RTP media %d", n+1); perror(s); return 0; } if (bind(fd_in_rtp[n], (struct sockaddr *)&in_rtp_addr[n], sizeof(in_rtp_addr[n])) < 0) { char s[100]; sprintf(s,"bind incoming_rtp_addr %d failed", n+1); perror(s); return 0; } else{ cerr << "Listen on port " << in_port[n] << " to receive RTP media " << (n+1) << endl; } } memset(&out_rtp_addr,0,sizeof(struct sockaddr_in)); out_rtp_addr.sin_family = AF_INET; inet_aton(out_ip, (in_addr*)&out_rtp_addr.sin_addr.s_addr); out_rtp_addr.sin_port = htons(out_port); addrlen_out_rtp = sizeof(out_rtp_addr); if ((fd_out_rtp = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("cannot create socket for outgoing RTP media"); return 0; } /* * Set send buf reasonably high to avoid socket blocking */ int sendBuff = 1000000; int res = setsockopt(fd_out_rtp, SOL_SOCKET, SO_SNDBUF, &sendBuff, sizeof(sendBuff)); /* * Set ECN capability for outgoing socket using IP_TOS */ #ifdef ECN_CAPABLE int iptos = ect; // Check with wireshark res = setsockopt(fd_out_rtp, IPPROTO_IP, IP_TOS, &iptos, sizeof(iptos)); if (res < 0) { cerr << "Not possible to set ECN bits" << endl; } int tmp = 0; res = getsockopt(fd_out_rtp, IPPROTO_IP, IP_TOS, &tmp, sizeof(tmp)); if (iptos == tmp) { cerr << "ECN set successfully" << endl; } else { cerr << "ECN bits _not_ set successfully ? " << iptos << " " << tmp << endl; } #endif /* * Socket for incoming RTP media */ in_rtcp_addr.sin_family = AF_INET; in_rtcp_addr.sin_port = htons(out_port); in_rtcp_addr.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(fd_out_rtp, (struct sockaddr *)&in_rtcp_addr, sizeof(in_rtcp_addr)) < 0) { perror("bind outgoing_rtp_addr failed"); return 0; } else { cerr<< "Listen on port "<< out_port <<" to receive RTCP from encoder "<<endl; } screamTx = new ScreamTx(congestionScaleFactor, congestionScaleFactor, delayTarget, false, 1.0f, 10.0f, 12500, false, bytesInFlightHistSize, false, false); for (int n=0; n < nSources; n++) { rtpQueue[n] = new RtpQueue(); screamTx->registerNewStream(rtpQueue[n], in_ssrc[n], priority[n], 256e3f, 1000e3f, maxRate, 500e5f, 0.5f, 0.1f, 0.05f, congestionScaleFactor, congestionScaleFactor); } return 1; } /* * Create socket to Video encoder * for rate commands etc. */ int create_tcp_socket() { int sock; if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0){ cerr << "Can't create TCP socket" << endl; exit(1); } return sock; } int setup_http(char *ip) { http_addr.sin_family = AF_INET; http_addr.sin_addr.s_addr = htonl(INADDR_ANY); inet_aton(ip, (in_addr*)&http_addr.sin_addr.s_addr); http_addr.sin_port = htons(80); if (connect(http_sock, (struct sockaddr *)&http_addr, sizeof(struct sockaddr)) < 0){ cerr << "Could not connect to Video coder HTTP server " << ip << endl; exit(1); } } /* * Send rate change request [bps] */ const void sendCoderCommand(char *buf, char *ip) { http_sock = create_tcp_socket(); setup_http(ip); //Send the query to the server int sent = 0; int tmpres = 0; //cerr << "Send HTTP : " << buf << endl; bool errSend = false; /* * Send HTTP GET */ while (sent < strlen(buf)) { tmpres = send(http_sock, buf + sent, strlen(buf) - sent, 0); if (tmpres == -1){ cerr << "Can't send HTTP GET" << endl; errSend = true; } sent += tmpres; } if (true && !errSend) { memset(buf, 0, sizeof(buf)); tmpres = recv(http_sock, buf, HTTP_BUF_SIZE, 0); if (tmpres > 0) { //cout << "HTTP response: " << buf << endl; } } close(http_sock); } void *videoControlThread(void *arg) { char buf[HTTP_BUF_SIZE]; while (!stopThread) { for (int n=0; n < nSources; n++) { /* * Poll rate change for all media sources */ float rate = screamTx->getTargetBitrate(in_ssrc[n]); if (rate > 0) { int rateQ = (int)(std::min(8192.0f,rate/1000.0f)+0.5f); rateQ = panasonicQuantizeRate(rateQ); if (lastQuantRate[n] != rateQ) { /* * HTTP access to media coder is slow, send command only if rate is changed */ lastQuantRate[n] = rateQ; sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_bandwidth=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n", rateQ, in_ip[n],auth); sendCoderCommand(buf, in_ip[n]); sprintf(buf, "GET /cgi-bin/set_h264?nr_h264_quality=%d HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\n\r\n", panasonicGetQuality(rateQ), in_ip[n],auth); sendCoderCommand(buf, in_ip[n]); } } } usleep(10000); } } \ No newline at end of file diff --git a/RPI/talk.sh b/RPI/talk.sh new file mode 100755 index 0000000..3721c4d --- /dev/null +++ b/RPI/talk.sh @@ -0,0 +1,3 @@ +#!/bin/bash +say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=en"; } +say $* -- GitLab