diff --git a/Laptop/lidar/Lidar.py b/Laptop/lidar/Lidar.py new file mode 100644 index 0000000000000000000000000000000000000000..42a434010cc385ed0ac8168dd130b6ef68a727c4 --- /dev/null +++ b/Laptop/lidar/Lidar.py @@ -0,0 +1,34 @@ +import socket +import time +#import matplotlib.pyplot as plt + +TCP_IP = '169.254.13.125' +TCP_PORT = 2111 +BUFFER_SIZE = 10240 + +#start +#MESSAGE = "\x02sMN\x20LMCstartmeas\x03" + +MESSAGE = "\x02sRN\x20LMDscandata\x03" + +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.connect((TCP_IP, TCP_PORT)) + +for x in range(1,500): + s.send(MESSAGE) + #print "4" + data = s.recv(BUFFER_SIZE) + #print data.split(' 21D ')[1].split(' ') + try: + decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1]) + except : + print ('some error\n') + if len(decdata) == 546 : + print x, "recvd:", decdata[0:545:30] + else: + print x, 'len: ', len(decdata) + #plt.plot(data) + #plt.show() + time.sleep(0.05) +s.close() + diff --git a/Laptop/lidar/aniPlot.py b/Laptop/lidar/aniPlot.py new file mode 100644 index 0000000000000000000000000000000000000000..90da7c45817cd874305c179a7ae8a563f6605cad --- /dev/null +++ b/Laptop/lidar/aniPlot.py @@ -0,0 +1,24 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.animation as animation + +def main(): + numframes = 100 + numpoints = 3 + color_data = np.random.random((numframes, numpoints)) + x, y, c = np.random.random((3, numpoints)) + + fig = plt.figure() + scat = plt.scatter(x, y, c=c, s=100) + + ani = animation.FuncAnimation(fig, update_plot, frames=xrange(numframes), + fargs=(color_data, scat)) + plt.show() + +def update_plot(i, data, scat): + print 'i:', i, ', data:', data[i] + scat.set_offsets((data[i])) + print data[i].shape + return scat, + +main() \ No newline at end of file diff --git a/Laptop/lidar/lidarPlot_simple.py b/Laptop/lidar/lidarPlot_simple.py new file mode 100644 index 0000000000000000000000000000000000000000..28b757e3ed8262446d4dd6d0041bacd421bb8cd7 --- /dev/null +++ b/Laptop/lidar/lidarPlot_simple.py @@ -0,0 +1,84 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.animation as animation +import math + + +def update_plot(k, scat, degsPerP): + #scat.set_array(data[i]) + #print 'K: ', k + myDistances = [20,21,2,3,4,5,6,7,8,9,2, 2,3] + xData = [0 for i in range(len(myDistances))] + yData = [0 for i in range(len(myDistances))] + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP)) + print np.swapaxes(np.asarray((xData,yData)),0,1).shape + scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),0,1)) + + return scat + + +def main(): + myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23] + + degsPerP = 270.0/(len(myDistances)-1) + print 'degs per P: ', degsPerP + + scannerPosx = 0 + scannerPosy = 0 + + xData = [0 for i in range(len(myDistances))] + yData = [0 for i in range(len(myDistances))] + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP)) + #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i] + + xData = [0]+xData # add cross in origin + yData = [0]+yData + fig = plt.figure() + scat = plt.scatter(xData,yData, s=20, marker='x') + plt.xlim(-25, 25) + plt.ylim(-25, 25) + #print len(yData) + + ani = animation.FuncAnimation(fig, update_plot, frames=xrange(5), fargs=(scat, degsPerP)) + plt.show() + +main() + +''' +xDatap1 = [1,2,3,4,5] +yDatap1 = [0.1,0.1,0.1,0.1,0.1] + +xDatap2 = [9,9,9,9,9] +yDatap2 = [9,8,7,6,5] + +xDatap3 = [0.1,0.2,0.3,0.4,0.5] +yDatap3 = [0.9,0.7,0.6,0.4,0.5] + +pos_data = np.random.random((5, 3, 2)) + +for i in range(0, 5): + #pos_data[i] = [[xDatap1[i], xDatap2[i], xDatap3[i]], [yDatap1[i],yDatap2[i],yDatap3[i]]] + pos_data[i] = [[xDatap1[i],yDatap1[i]],[xDatap2[i],yDatap2[i]],[xDatap3[i],yDatap3[i]]] + +numframes = 5 +numpoints = 3 +#pos_data = np.random.random((numframes, numpoints, 2)) +#pos_data = (numframes,2,2) +x, y, c = np.random.random((3, numpoints)) + +fig = plt.figure() +scat = plt.scatter([xDatap1[0],xDatap2[0], xDatap3[0]], + [yDatap1[0],yDatap2[0], yDatap3[0]], c=c, s=100, marker='x') +plt.xlim(0, 15) +plt.ylim(0, 10) + +ani = animation.FuncAnimation(fig, update_plot, frames=xrange(5), + fargs=(pos_data, scat)) +plt.show() +''' \ No newline at end of file diff --git a/Laptop/lidar/plotLidar.py b/Laptop/lidar/plotLidar.py new file mode 100644 index 0000000000000000000000000000000000000000..38620e66db2e62b6f8fd8e959a7c817f8d8a31c4 --- /dev/null +++ b/Laptop/lidar/plotLidar.py @@ -0,0 +1,101 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.animation as animation +import math +import socket +import time + +TCP_IP = '10.180.65.30' #'169.254.13.125' +TCP_PORT = 2111 +BUFFER_SIZE = 10240 +MESSAGE = "\x02sRN LMDscandata\x03" + +xData = [0 for i in range(0,541)] +yData = [0 for i in range(0,541)] +degsPerP = 270.0/(541-1) + +def update_plot(k, scat, s): + + s.send(MESSAGE) + data = s.recv(BUFFER_SIZE) + try: + decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1])[0:-5] + if len(decdata) != 541 : + print 'len: ', len(decdata) + degsPerP = 270.0/(len(myDistances)-1) + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP)) + #print np.swapaxes(np.asarray((xData,yData)),0,1).shape + scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0)) + + return scat + + else: + #print 'OK!' + myDistances = decdata + degsPerP = 0.5 # + + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP)) + #print np.swapaxes(np.asarray((xData,yData)),0,1).shape + scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0)) + + return scat + except : + print ('some error\n') + return scat + + + + +def main(): + + + plot_type = "blit" + + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((TCP_IP, TCP_PORT)) + + myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23] + + #degsPerP = 270.0/(len(myDistances)-1) + print 'degs per P: ', degsPerP + + scannerPosx = 0 + scannerPosy = 0 + + xData = [0 for i in range(len(myDistances))] + yData = [0 for i in range(len(myDistances))] + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP)) + #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i] + + xData = [0]+xData # add cross in origin + yData = [0]+yData + fig = plt.figure() + scat = plt.scatter(xData,yData, s=0.5, marker='x') + plt.xlim(-20000, 20000) + plt.ylim(-10000, 20000) + fig.gca().set_aspect('equal', adjustable='box') + #print len(yData) + + ani = animation.FuncAnimation(fig, update_plot, interval=20, frames=xrange(2), fargs=(scat, s)) + plt.show() + s.close() + +main() + + + +#import matplotlib.pyplot as plt + + + +#start +#MES diff --git a/Laptop/lidar/plotterFRRelayer.py b/Laptop/lidar/plotterFRRelayer.py new file mode 100644 index 0000000000000000000000000000000000000000..ebaef1d44a63ad24f8e069b825b5375d7de54bde --- /dev/null +++ b/Laptop/lidar/plotterFRRelayer.py @@ -0,0 +1,134 @@ +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.animation as animation +import math +import socket +import time + +TCP_IP = '10.9.0.3' #'169.254.13.125' +TCP_PORT = 2110 +BUFFER_SIZE = 10240 + +xData = [0 for i in range(0,541+5)] +yData = [0 for i in range(0,541+5)] +degsPerP = 270.0/(541-1) + +def update_plot(k, scat, s): + + + s.send("go"); + #time.sleep(0.1) + data = s.recv(BUFFER_SIZE) + try: + decdata = map(lambda x: int(x,16), data.split(' 21D ')[1].split(' ')[0:-1])[0:-5] + if len(decdata) != 541 : + print 'len: ', len(decdata) + degsPerP = 270.0/(len(myDistances)-1) + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP)) + #print np.swapaxes(np.asarray((xData,yData)),0,1).shape + + #xData = [0]+xData # add cross in origin + #yData = [0]+yData + + scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0)) + + return scat + + else: + print 'OK! 1' + myDistances = decdata + print 'OK! 2' + print len(myDistances) + degsPerP = 0.5 # + + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + #print i + xData[i] = myDistances[i] * math.cos(math.radians(-45+i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(-45+i*degsPerP)) + + xData[len(myDistances)] = 0 + yData[len(myDistances)] = 0 + yData[len(myDistances)+1] = 200 + xData[len(myDistances)+1] = 300 + + yData[len(myDistances)+2] = 200 + xData[len(myDistances)+2] = -300 + + yData[len(myDistances)+3] = -650 + xData[len(myDistances)+3] = 300 + + yData[len(myDistances)+4] = -650 + xData[len(myDistances)+4] = -300 + #print np.swapaxes(np.asarray((xData,yData)),0,1).shape + print 'OK! 3' + #print xData[0] + #print 'OK! 4' + #print xData + #print 'OK! 5' + #xData = [0]+xData # add cross in origin + #yData = [0]+yData + + #print xData + + scat.set_offsets(np.swapaxes(np.asarray((xData,yData)),1,0)) + + return scat + except : + print ('some error\n') + return scat + + + + +def main(): + + + plot_type = "blit" + + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((TCP_IP, TCP_PORT)) + + myDistances = [10,11,12,13,14,15,16,17,18,19,20, 22, 23] + + #degsPerP = 270.0/(len(myDistances)-1) + print 'degs per P: ', degsPerP + + scannerPosx = 0 + scannerPosy = 0 + + xData = [0 for i in range(len(myDistances))] + yData = [0 for i in range(len(myDistances))] + # generate x and y coordinates from distances + for i in range(0,len(myDistances)): + xData[i] = myDistances[i] * math.cos(math.radians(180+45-i*degsPerP)) + yData[i] = myDistances[i] * math.sin(math.radians(180+45-i*degsPerP)) + #print 'i:',i, 'd:',myDistances[i], ', x:', xData[i], ', y:', yData[i] + + xData = [0]+xData # add cross in origin + yData = [0]+yData + fig = plt.figure() + scat = plt.scatter(xData,yData, s=0.5, marker='x') + plt.xlim(-5000, 5000) + plt.ylim(-3000, 7000) + fig.gca().set_aspect('equal', adjustable='box') + #print len(yData) + + print "Starting animation" + ani = animation.FuncAnimation(fig, update_plot, interval=500, frames=xrange(2), fargs=(scat, s)) + plt.show() + s.close() + +main() + + + +#import matplotlib.pyplot as plt + + + +#start +#MES diff --git a/Laptop/lidar/relayer.py b/Laptop/lidar/relayer.py new file mode 100644 index 0000000000000000000000000000000000000000..28c553ec150e8c53b4f7b66386c3825718834aca --- /dev/null +++ b/Laptop/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 + #print data + + #time.sleep(0.1) + + # send lidar data + conn.sendall(data) + + s.close() + conn.close() + +main() diff --git a/Laptop/permoController.sh b/Laptop/permoController.sh new file mode 100755 index 0000000000000000000000000000000000000000..8a8c7c611e33ae1f8c36dbdea8054014a1a15890 --- /dev/null +++ b/Laptop/permoController.sh @@ -0,0 +1,29 @@ +#!/bin/bash + + +echo "starting controller" +( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) & +P0=$! + +echo "starting camera receivers" + +( ./Downloads/panasonic-ip-cam/scream_receiver/bin/scream_receiver 10.9.0.3 31110 ) & +P1=$! + + +( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P2=$! + +( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P3=$! + +( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P4=$! + +( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P5=$! + + +echo "Receiver and camera pipes up!" +wait $P0 $P1 $P2 $P3 $P4 $P5 + diff --git a/Laptop/permoController_new.sh b/Laptop/permoController_new.sh new file mode 100755 index 0000000000000000000000000000000000000000..f0cc90a2d7340d67a55f6fa838e49df1865e0f84 --- /dev/null +++ b/Laptop/permoController_new.sh @@ -0,0 +1,29 @@ +#!/bin/bash + + +echo "starting controller" +( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) & +P0=$! + +echo "starting camera receivers" + +( ./scream/scream_receiver/bin/scream_receiver 10.9.0.3 31110 |& tee reciever.log ) & +P1=$! + + +( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P2=$! + +( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P3=$! + +( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P4=$! + +( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P5=$! + + +echo "Receiver and camera pipes up!" +wait $P0 $P1 $P2 $P3 $P4 $P5 + diff --git a/Laptop/permoController_rust.sh b/Laptop/permoController_rust.sh new file mode 100755 index 0000000000000000000000000000000000000000..ed98f0fb4de04fcd0bfc11266d8691fbb0ebb551 --- /dev/null +++ b/Laptop/permoController_rust.sh @@ -0,0 +1,29 @@ +#!/bin/bash + + +#echo "starting controller" +#( python Robot/python/permobil/sender_udp_v2.py &> /dev/null ) & +#P0=$! + +echo "starting camera receivers" + +( ./scream/scream_receiver/bin/scream_receiver 10.9.0.3 31110 |& tee reciever.log ) & +P1=$! + + +( gst-launch-1.0 udpsrc port=30130 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P2=$! + +( gst-launch-1.0 udpsrc port=30132 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P3=$! + +( gst-launch-1.0 udpsrc port=30134 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P4=$! + +( gst-launch-1.0 udpsrc port=30136 ! "application/x-rtp,payload=98,encoding-name=H264" ! rtpjitterbuffer latency=10 ! rtph264depay ! avdec_h264 ! videoconvert ! xvimagesink sync=false ) & +P5=$! + + +echo "Receiver and camera pipes up!" +wait $P1 $P2 $P3 $P4 $P5 + diff --git a/Laptop/scream/rtsp/CMakeCache.txt b/Laptop/scream/rtsp/CMakeCache.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9d0c37c7542417a2574495cd8358120c6954f44 --- /dev/null +++ b/Laptop/scream/rtsp/CMakeCache.txt @@ -0,0 +1,304 @@ +# This is the CMakeCache file. +# For build in directory: /home/user/scream_panasonic/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/user/scream_panasonic/rtsp + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00 --- /dev/null +++ b/Laptop/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 "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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f --- /dev/null +++ b/Laptop/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 "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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402 Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55 Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000000000000000000000000000000000000..50dad55f9105cc257142dae3142ee2448a2691d7 --- /dev/null +++ b/Laptop/scream/rtsp/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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100644 index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81 Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdC/a.out differ diff --git a/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100644 index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766 Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ diff --git a/Laptop/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/rtsp/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..de6570cc8d0f2eedaed81850d563444568a9c0fe --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/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/Laptop/scream/rtsp/CMakeFiles/CMakeOutput.log b/Laptop/scream/rtsp/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000000000000000000000000000000000..b7182e5935898927c9bfb7bb5e7fbbe4a069f216 --- /dev/null +++ b/Laptop/scream/rtsp/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/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/user/scream_panasonic/rtsp/CMakeFiles/3.7.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1ab7c/fast" +/usr/bin/make -f CMakeFiles/cmTC_1ab7c.dir/build.make CMakeFiles/cmTC_1ab7c.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_1ab7c +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1ab7c.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_1ab7c.dir/testCCompiler.c.o -o cmTC_1ab7c -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d806e/fast" +/usr/bin/make -f CMakeFiles/cmTC_d806e.dir/build.make CMakeFiles/cmTC_d806e.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_d806e +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d806e.dir/link.txt --verbose=1 +/usr/bin/cc -v CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -o cmTC_d806e -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_d806e' '-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/ccBoP7Hj.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_d806e /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_d806e.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_d806e' '-rdynamic' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_d806e/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_d806e.dir/build.make CMakeFiles/cmTC_d806e.dir/build] + ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_d806e] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d806e.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v CMakeFiles/cmTC_d806e.dir/CMakeCCompilerABI.c.o -o cmTC_d806e -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_d806e' '-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/ccBoP7Hj.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_d806e /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_d806e.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/ccBoP7Hj.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_d806e] ==> 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_d806e.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/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b4a4a/fast" +/usr/bin/make -f CMakeFiles/cmTC_b4a4a.dir/build.make CMakeFiles/cmTC_b4a4a.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_b4a4a +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b4a4a.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_b4a4a.dir/feature_tests.c.o -o cmTC_b4a4a -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_25180/fast" +/usr/bin/make -f CMakeFiles/cmTC_25180.dir/build.make CMakeFiles/cmTC_25180.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_25180.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_25180.dir/feature_tests.c.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_25180 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_25180.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_25180.dir/feature_tests.c.o -o cmTC_25180 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3c285/fast" +/usr/bin/make -f CMakeFiles/cmTC_3c285.dir/build.make CMakeFiles/cmTC_3c285.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_3c285.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_3c285.dir/feature_tests.c.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.c +Linking C executable cmTC_3c285 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3c285.dir/link.txt --verbose=1 +/usr/bin/cc CMakeFiles/cmTC_3c285.dir/feature_tests.c.o -o cmTC_3c285 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_9d104/fast" +/usr/bin/make -f CMakeFiles/cmTC_9d104.dir/build.make CMakeFiles/cmTC_9d104.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_9d104 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9d104.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_9d104.dir/testCXXCompiler.cxx.o -o cmTC_9d104 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_66a10/fast" +/usr/bin/make -f CMakeFiles/cmTC_66a10.dir/build.make CMakeFiles/cmTC_66a10.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_66a10 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_66a10.dir/link.txt --verbose=1 +/usr/bin/c++ -v CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_66a10 -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_66a10' '-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/ccHa6Wku.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_66a10 /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_66a10.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_66a10' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_66a10/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_66a10.dir/build.make CMakeFiles/cmTC_66a10.dir/build] + ignore line: [make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_66a10] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_66a10.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_66a10.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_66a10 -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_66a10' '-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/ccHa6Wku.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_66a10 /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_66a10.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/ccHa6Wku.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_66a10] ==> 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_66a10.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/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_81a54/fast" +/usr/bin/make -f CMakeFiles/cmTC_81a54.dir/build.make CMakeFiles/cmTC_81a54.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_81a54 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_81a54.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_81a54.dir/feature_tests.cxx.o -o cmTC_81a54 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_954d4/fast" +/usr/bin/make -f CMakeFiles/cmTC_954d4.dir/build.make CMakeFiles/cmTC_954d4.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_954d4 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_954d4.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_954d4.dir/feature_tests.cxx.o -o cmTC_954d4 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_87080/fast" +/usr/bin/make -f CMakeFiles/cmTC_87080.dir/build.make CMakeFiles/cmTC_87080.dir/build +make[1]: Entering directory '/home/user/scream_panasonic/rtsp/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o -c /home/user/scream_panasonic/rtsp/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_87080 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_87080.dir/link.txt --verbose=1 +/usr/bin/c++ CMakeFiles/cmTC_87080.dir/feature_tests.cxx.o -o cmTC_87080 -rdynamic +make[1]: Leaving directory '/home/user/scream_panasonic/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/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake b/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d0e7b4c742f7a0f58f0b2eee9d8fe944c9a0e28b --- /dev/null +++ b/Laptop/scream/rtsp/CMakeFiles/Makefile.cmake @@ -0,0 +1,117 @@ +# 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" + "CMakeFiles/feature_tests.c" + "CMakeFiles/feature_tests.cxx" + "CMakeLists.txt" + "code/CMakeLists.txt" + "/usr/share/cmake-3.7/Modules/CMakeCCompiler.cmake.in" + "/usr/share/cmake-3.7/Modules/CMakeCCompilerABI.c" + "/usr/share/cmake-3.7/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.7/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.7/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.7/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCCompiler.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCompileFeatures.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.7/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.7/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.7/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.7/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeParseArguments.cmake" + "/usr/share/cmake-3.7/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.7/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake" + "/usr/share/cmake-3.7/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.7/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.7/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Bruce-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-C-FeatureTests.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX-FeatureTests.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/HP-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/XL-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.7/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.7/Modules/Platform/Linux-Determine-CXX.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/3.7.2/CMakeSystem.cmake" + "CMakeFiles/3.7.2/CMakeCCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCCompiler.cmake" + "CMakeFiles/3.7.2/CMakeCXXCompiler.cmake" + "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/Laptop/scream/rtsp/CMakeFiles/Makefile2 b/Laptop/scream/rtsp/CMakeFiles/Makefile2 new file mode 100644 index 0000000000000000000000000000000000000000..628a582eb7ebf69e7674fa485d07ada8cd40f3a1 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/rtsp.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/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/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt b/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000000000000000000000000000000000..a8609f86f442eb7fcfe11a330978abb2df35899a --- /dev/null +++ b/Laptop/scream/rtsp/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/user/scream_panasonic/rtsp/CMakeFiles/rebuild_cache.dir +/home/user/scream_panasonic/rtsp/CMakeFiles/edit_cache.dir +/home/user/scream_panasonic/rtsp/code/CMakeFiles/edit_cache.dir +/home/user/scream_panasonic/rtsp/code/CMakeFiles/rebuild_cache.dir +/home/user/scream_panasonic/rtsp/code/CMakeFiles/rtsp.dir diff --git a/Laptop/scream/rtsp/CMakeFiles/cmake.check_cache b/Laptop/scream/rtsp/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin b/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin new file mode 100644 index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72 Binary files /dev/null and b/Laptop/scream/rtsp/CMakeFiles/feature_tests.bin differ diff --git a/Laptop/scream/rtsp/CMakeFiles/feature_tests.c b/Laptop/scream/rtsp/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/CMakeFiles/feature_tests.cxx b/Laptop/scream/rtsp/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/CMakeFiles/progress.marks b/Laptop/scream/rtsp/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f --- /dev/null +++ b/Laptop/scream/rtsp/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/Laptop/scream/rtsp/CMakeLists.txt b/Laptop/scream/rtsp/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..56e5847496314216df639ddbde33c65d2a86df5a --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/Makefile b/Laptop/scream/rtsp/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..17ff6a7c5ef3f8d4928cb3099807f83a352cf4fa --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles /home/user/scream_panasonic/rtsp/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/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/Laptop/scream/rtsp/bin/rtsp b/Laptop/scream/rtsp/bin/rtsp new file mode 100755 index 0000000000000000000000000000000000000000..56a859847434e535637be41113d0cb38c2d5d4e5 Binary files /dev/null and b/Laptop/scream/rtsp/bin/rtsp differ diff --git a/Laptop/scream/rtsp/cmake_install.cmake b/Laptop/scream/rtsp/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4353a58aff9bd5637929b41fac6d89619b01adcd --- /dev/null +++ b/Laptop/scream/rtsp/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/rtsp/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/Laptop/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/rtsp/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..de6570cc8d0f2eedaed81850d563444568a9c0fe --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/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/Laptop/scream/rtsp/code/CMakeFiles/progress.marks b/Laptop/scream/rtsp/code/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..0cfbf08886fca9a91cb753ec8734c84fcbe52c9f --- /dev/null +++ b/Laptop/scream/rtsp/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache new file mode 100644 index 0000000000000000000000000000000000000000..0c65d848af5b7b7ac5e32683d0020ee1295e2cae --- /dev/null +++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/CXX.includecache @@ -0,0 +1,10 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/user/scream_panasonic/rtsp/code/rtsp.cpp + diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f2551d96b85e061feead869f312d2f60344dff32 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp/code/rtsp.cpp" "/home/user/scream_panasonic/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/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..dca6fe198ad751a65393f072102d4d3c22f87173 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/rtsp.dir/rtsp.cpp.o" + cd /home/user/scream_panasonic/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/rtsp.dir/rtsp.cpp.o -c /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/rtsp" + cd /home/user/scream_panasonic/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/user/scream_panasonic/rtsp/code && $(CMAKE_COMMAND) -P CMakeFiles/rtsp.dir/cmake_clean.cmake +.PHONY : code/CMakeFiles/rtsp.dir/clean + +code/CMakeFiles/rtsp.dir/depend: + cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/user/scream_panasonic/rtsp /home/user/scream_panasonic/rtsp/code /home/user/scream_panasonic/rtsp /home/user/scream_panasonic/rtsp/code /home/user/scream_panasonic/rtsp/code/CMakeFiles/rtsp.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/rtsp.dir/depend + diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..10971da105656d408d5b9211fbdad98b468bd2a1 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.internal new file mode 100644 index 0000000000000000000000000000000000000000..251e10e0eb0c4f4f8c3ab20094537adc4a260867 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp/code/rtsp.cpp diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..b001b20f9ab3ae28c4d149ff8bbc9e80c788c2e9 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..a1142bb71721959642dae0ae8da79d7e84c85ee8 --- /dev/null +++ b/Laptop/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 = -fPIC -fpermissive -pthread -std=c++0x + +CXX_DEFINES = + +CXX_INCLUDES = -I/home/user/scream_panasonic/rtsp/../include -I/home/user/scream_panasonic/rtsp -I/home/user/scream_panasonic/rtsp/code + diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..1501be8fc0dd3817f11f29a1999dfebfb48007c4 --- /dev/null +++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -fPIC -fpermissive -pthread CMakeFiles/rtsp.dir/rtsp.cpp.o -o ../bin/rtsp -L/home/user/scream_panasonic/rtsp/../lib -L/usr/local/lib -rdynamic diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..abadeb0c3abaa81d622026fcd3ae096d03dd29b7 --- /dev/null +++ b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..07dbe55f536a1fcdf6ca7009fd77809bfc2fad2c Binary files /dev/null and b/Laptop/scream/rtsp/code/CMakeFiles/rtsp.dir/rtsp.cpp.o differ diff --git a/Laptop/scream/rtsp/code/CMakeLists.txt b/Laptop/scream/rtsp/code/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..e7993870e56b59ea3fba48fd168957de108c4a18 --- /dev/null +++ b/Laptop/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/Laptop/scream/rtsp/code/Makefile b/Laptop/scream/rtsp/code/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d61a1ec5c5f358e8c83e0b773ab2b3a636780acb --- /dev/null +++ b/Laptop/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/user/scream_panasonic/rtsp + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/rtsp + +#============================================================================= +# Targets provided globally by CMake. + +# 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 + +# 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 + +# The main all target +all: cmake_check_build_system + cd /home/user/scream_panasonic/rtsp && $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles /home/user/scream_panasonic/rtsp/code/CMakeFiles/progress.marks + cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/rtsp/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/user/scream_panasonic/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/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/user/scream_panasonic/rtsp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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 "... edit_cache" + @echo "... rebuild_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/user/scream_panasonic/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/Laptop/scream/rtsp/code/cmake_install.cmake b/Laptop/scream/rtsp/code/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7f776c8dfc554c62a61573923022277d653fd8a1 --- /dev/null +++ b/Laptop/scream/rtsp/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/user/scream_panasonic/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/Laptop/scream/rtsp/code/rtsp.cpp b/Laptop/scream/rtsp/code/rtsp.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0f4dbccc03449447f9345cbc535600b3feab5b58 --- /dev/null +++ b/Laptop/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; } bool terminateRtsp = false; const void *keyboardThread(void *arg) { cin.ignore(); 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(); cerr << "Streaming started. IP:" << ENCODER_IP << " port:" << INCOMING_RTP_PORT << " SSRC:" << ssrc << endl; cerr << "RTSP streaming started, press ENTER to stop" << endl; pthread_t keyboard_thread; /* Create keyboard thread */ pthread_create(&keyboard_thread,NULL,keyboardThread,"Keyboard thread..."); verbose = false; 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/Laptop/scream/scream_receiver/CMakeCache.txt b/Laptop/scream/scream_receiver/CMakeCache.txt new file mode 100644 index 0000000000000000000000000000000000000000..f47b7e962df4246a6637936511d821c04debfd48 --- /dev/null +++ b/Laptop/scream/scream_receiver/CMakeCache.txt @@ -0,0 +1,255 @@ +# This is the CMakeCache file. +# For build in directory: /home/robert/scream/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/scream/scream_receiver + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/robert/scream/scream_receiver + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/robert/scream/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/scream/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402 Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55 Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ee8af328fc16c6b2329ac3bf047f27bc055a28e5 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81 Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdC/a.out differ diff --git a/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766 Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ diff --git a/Laptop/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_receiver/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fff3727cdc5b167b3dc3445cc87ea09d6f6c2961 --- /dev/null +++ b/Laptop/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/scream/scream_receiver") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/scream/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/Laptop/scream/scream_receiver/CMakeFiles/CMakeOutput.log b/Laptop/scream/scream_receiver/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000000000000000000000000000000000..fbc5e17320bad66dc4bb2c66924603940c171fa7 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/Makefile.cmake b/Laptop/scream/scream_receiver/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..9359cc32e37ad7ebbefb8b5d20db1eb807fb56d0 --- /dev/null +++ b/Laptop/scream/scream_receiver/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_receiver.dir/DependInfo.cmake" + ) diff --git a/Laptop/scream/scream_receiver/CMakeFiles/Makefile2 b/Laptop/scream/scream_receiver/CMakeFiles/Makefile2 new file mode 100644 index 0000000000000000000000000000000000000000..041df9a4a8492bce0b4a217c873485173c255031 --- /dev/null +++ b/Laptop/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/scream/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/scream/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/scream/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/scream/scream_receiver/CMakeFiles 3 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_receiver.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/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/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt b/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000000000000000000000000000000000..48b6c0ab9cc85d3b531d7eaafa915c39bbcc21e9 --- /dev/null +++ b/Laptop/scream/scream_receiver/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/robert/scream/scream_receiver/CMakeFiles/rebuild_cache.dir +/home/robert/scream/scream_receiver/CMakeFiles/edit_cache.dir +/home/robert/scream/scream_receiver/code/CMakeFiles/rebuild_cache.dir +/home/robert/scream/scream_receiver/code/CMakeFiles/edit_cache.dir +/home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir diff --git a/Laptop/scream/scream_receiver/CMakeFiles/cmake.check_cache b/Laptop/scream/scream_receiver/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72 Binary files /dev/null and b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.bin differ diff --git a/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.c b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.cxx b/Laptop/scream/scream_receiver/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/CMakeFiles/progress.marks b/Laptop/scream/scream_receiver/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..00750edc07d6415dcc07ae0351e9397b0222b7ba --- /dev/null +++ b/Laptop/scream/scream_receiver/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/Laptop/scream/scream_receiver/CMakeLists.txt b/Laptop/scream/scream_receiver/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b60cc6e271eb27bdbb63407e960e7094665a282c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/Makefile b/Laptop/scream/scream_receiver/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..bc054a344a525b834785e905a4a280719c0508d9 --- /dev/null +++ b/Laptop/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/scream/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/scream/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/scream/scream_receiver/CMakeFiles /home/robert/scream/scream_receiver/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/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/Laptop/scream/scream_receiver/bin/scream_receiver b/Laptop/scream/scream_receiver/bin/scream_receiver new file mode 100755 index 0000000000000000000000000000000000000000..c47b99cdac96e737a6236524ac3e10cb45293a67 Binary files /dev/null and b/Laptop/scream/scream_receiver/bin/scream_receiver differ diff --git a/Laptop/scream/scream_receiver/cmake_install.cmake b/Laptop/scream/scream_receiver/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fcb58b06fda8c1eebe94dac5cd7a7762a75a1a10 --- /dev/null +++ b/Laptop/scream/scream_receiver/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/robert/scream/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/scream/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/scream/scream_receiver/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fff3727cdc5b167b3dc3445cc87ea09d6f6c2961 --- /dev/null +++ b/Laptop/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/scream/scream_receiver") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/robert/scream/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/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks b/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..00750edc07d6415dcc07ae0351e9397b0222b7ba --- /dev/null +++ b/Laptop/scream/scream_receiver/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +3 diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache new file mode 100644 index 0000000000000000000000000000000000000000..8c962fdc569a522c17cf4cf9bcc356dade413f1a --- /dev/null +++ b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/CXX.includecache @@ -0,0 +1,68 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/robert/scream/scream_receiver/code/ScreamRx.cpp +ScreamRx.h +/home/robert/scream/scream_receiver/code/ScreamRx.h +ScreamTx.h +/home/robert/scream/scream_receiver/code/ScreamTx.h +WinSock2.h +- +arpa/inet.h +- +string.h +- +climits +- +algorithm +- +iostream +- + +/home/robert/scream/scream_receiver/code/ScreamRx.h +cstdint +- +list +- + +/home/robert/scream/scream_receiver/code/ScreamTx.h +string.h +- +iostream +- +cstdint +- + +/home/robert/scream/scream_receiver/code/scream_receiver.cpp +ScreamRx.h +/home/robert/scream/scream_receiver/code/ScreamRx.h +sys/socket.h +/home/robert/scream/scream_receiver/code/sys/socket.h +sys/types.h +/home/robert/scream/scream_receiver/code/sys/types.h +netinet/in.h +/home/robert/scream/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/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1711e4dc9a2e032021b03e22737d009e7d093778 --- /dev/null +++ b/Laptop/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/scream/scream_receiver/code/ScreamRx.cpp" "/home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" + "/home/robert/scream/scream_receiver/code/scream_receiver.cpp" "/home/robert/scream/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/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a598f59386942976b3168bccf0cc162aa3b0a117 Binary files /dev/null and b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o differ diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..fa92b06e6312a10150c5d2697b7eda73fc73ebec --- /dev/null +++ b/Laptop/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/scream/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/scream/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/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o" + cd /home/robert/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/ScreamRx.cpp.o -c /home/robert/scream/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/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/scream/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/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/scream/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/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o" + cd /home/robert/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o -c /home/robert/scream/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/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/robert/scream/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/scream/scream_receiver/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/robert/scream/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/scream/scream_receiver/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable ../bin/scream_receiver" + cd /home/robert/scream/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/scream/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/scream/scream_receiver && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/robert/scream/scream_receiver /home/robert/scream/scream_receiver/code /home/robert/scream/scream_receiver /home/robert/scream/scream_receiver/code /home/robert/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/scream_receiver.dir/depend + diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..3424e1a8f089ece9fd9e4542a26e561697647f7c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.internal new file mode 100644 index 0000000000000000000000000000000000000000..4552dd250e90b037e3c3aa879e20ef0f40329e3a --- /dev/null +++ b/Laptop/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/scream/scream_receiver/code/ScreamRx.cpp + /home/robert/scream/scream_receiver/code/ScreamRx.h + /home/robert/scream/scream_receiver/code/ScreamTx.h +code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o + /home/robert/scream/scream_receiver/code/ScreamRx.h + /home/robert/scream/scream_receiver/code/scream_receiver.cpp diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6ec4d4656db5ce68f7ef9a9e92c95e6cfd84a70a --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..dd6732d63c35ebf65c005434ff2397847c185fab --- /dev/null +++ b/Laptop/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/scream/scream_receiver/../include -I/home/robert/scream/scream_receiver -I/home/robert/scream/scream_receiver/code + diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..015d098f10aa7a0c987bf1921b3867e529750c6b --- /dev/null +++ b/Laptop/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/scream/scream_receiver/../lib -L/usr/local/lib -rdynamic diff --git a/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..6a9dc74f48190611094be92ae37d081d83beb533 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b4503a98a7fc89d72ef9d6a7f3b79c2688a918af Binary files /dev/null and b/Laptop/scream/scream_receiver/code/CMakeFiles/scream_receiver.dir/scream_receiver.cpp.o differ diff --git a/Laptop/scream/scream_receiver/code/CMakeLists.txt b/Laptop/scream/scream_receiver/code/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..b1a64ce63037d504a235bad9b4cc40147b28ce0c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/Makefile b/Laptop/scream/scream_receiver/code/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..a1cff461ea7e01d26d9fc43915d382d54bef211c --- /dev/null +++ b/Laptop/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/scream/scream_receiver + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/robert/scream/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/scream/scream_receiver && $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles /home/robert/scream/scream_receiver/code/CMakeFiles/progress.marks + cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/robert/scream/scream_receiver/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/robert/scream/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/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/robert/scream/scream_receiver && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/robert/scream/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/scream/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/scream/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/scream/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/scream/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/scream/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/scream/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/scream/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/scream/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/scream/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/Laptop/scream/scream_receiver/code/ScreamRx.cpp b/Laptop/scream/scream_receiver/code/ScreamRx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..8f43c821fa7c8c70ae092def39ea7ea6b20a0964 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/ScreamRx.h b/Laptop/scream/scream_receiver/code/ScreamRx.h new file mode 100644 index 0000000000000000000000000000000000000000..f1d9e83c05b476833e82d926ca13d187f9d4179c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/ScreamTx.cpp b/Laptop/scream/scream_receiver/code/ScreamTx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9017d690d327646c64bd6f0a3edb131dae11170f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/ScreamTx.h b/Laptop/scream/scream_receiver/code/ScreamTx.h new file mode 100644 index 0000000000000000000000000000000000000000..786f465300539fdbdacf91729e67380fc179f612 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_receiver/code/cmake_install.cmake b/Laptop/scream/scream_receiver/code/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..319b6ed74fc2d3724d793663ac0e366a1c591aa0 --- /dev/null +++ b/Laptop/scream/scream_receiver/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/robert/scream/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/Laptop/scream/scream_receiver/code/scream_receiver.cpp b/Laptop/scream/scream_receiver/code/scream_receiver.cpp new file mode 100644 index 0000000000000000000000000000000000000000..33da68594e7f78c63b8d5c4d577d03f324f85654 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeCache.txt b/Laptop/scream/scream_sender/CMakeCache.txt new file mode 100644 index 0000000000000000000000000000000000000000..56811c77eda4db836ae853dc4db346747f50649d --- /dev/null +++ b/Laptop/scream/scream_sender/CMakeCache.txt @@ -0,0 +1,255 @@ +# This is the CMakeCache file. +# For build in directory: /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender + +//Value Computed by CMake +scream_SOURCE_DIR:STATIC=/home/user/scream_panasonic/scream_sender + + +######################## +# INTERNAL cache entries +######################## + +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/user/scream_panasonic/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/user/scream_panasonic/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..d628b11a0ddcac6a7a68753726de0069ca182b00 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0018983b5f106398c45a09753459fb0ae45e041f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000000000000000000000000000000000000..49ad92475e2dff2eb841033d3871ac56f77ac402 Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_C.bin differ diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000000000000000000000000000000000000..400f61846d12c9d5edfdb261fe337d9ea54ece55 Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CMakeSystem.cmake new file mode 100644 index 0000000000000000000000000000000000000000..50dad55f9105cc257142dae3142ee2448a2691d7 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000000000000000000000000000000000000..512e3606409146e554bb8288dcef740f8b20880f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out new file mode 100644 index 0000000000000000000000000000000000000000..2c9d824bf34e6384541157ce258ad086b4372b81 Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdC/a.out differ diff --git a/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a6e6bedec4f7adf424f8ebaf03d7dba4adbaa432 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out new file mode 100644 index 0000000000000000000000000000000000000000..4097f848338f087c6f6ac761ebbf3ee0ce882766 Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/3.7.2/CompilerIdCXX/a.out differ diff --git a/Laptop/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_sender/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..58ac59250a547d58df29f60bd8a04912f131c9f2 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/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/Laptop/scream/scream_sender/CMakeFiles/CMakeOutput.log b/Laptop/scream/scream_sender/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000000000000000000000000000000000000..c3698a8a93ae2ec9cad7121815d831734e1b43d9 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/Makefile.cmake b/Laptop/scream/scream_sender/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000000000000000000000000000000000000..7c9aa76814e352989585fccd0fe5a1d8776ffc4f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/Makefile2 b/Laptop/scream/scream_sender/CMakeFiles/Makefile2 new file mode 100644 index 0000000000000000000000000000000000000000..26c1afe04a8c1b2a92a6203f08f7511fe7e451d7 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles 4 + $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/scream_sender.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/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/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt b/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000000000000000000000000000000000000..64b30a512b1ae923b9e2b7f13d58131ff0e80cef --- /dev/null +++ b/Laptop/scream/scream_sender/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,5 @@ +/home/user/scream_panasonic/scream_sender/CMakeFiles/rebuild_cache.dir +/home/user/scream_panasonic/scream_sender/CMakeFiles/edit_cache.dir +/home/user/scream_panasonic/scream_sender/code/CMakeFiles/rebuild_cache.dir +/home/user/scream_panasonic/scream_sender/code/CMakeFiles/edit_cache.dir +/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir diff --git a/Laptop/scream/scream_sender/CMakeFiles/cmake.check_cache b/Laptop/scream/scream_sender/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000000000000000000000000000000000..3dccd731726d7faa8b29d8d7dba3b981a53ca497 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin new file mode 100644 index 0000000000000000000000000000000000000000..6585c4b8a6e80e339754221bccf8504f68df0e72 Binary files /dev/null and b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.bin differ diff --git a/Laptop/scream/scream_sender/CMakeFiles/feature_tests.c b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.c new file mode 100644 index 0000000000000000000000000000000000000000..6590dded2342f3eebd9b81505327e84a488580e6 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/feature_tests.cxx b/Laptop/scream/scream_sender/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000000000000000000000000000000000000..b93418c6ed69feaf1b5c2feb9592bbdb5a5f042c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/CMakeFiles/progress.marks b/Laptop/scream/scream_sender/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..b8626c4cff2849624fb67f87cd0ad72b163671ad --- /dev/null +++ b/Laptop/scream/scream_sender/CMakeFiles/progress.marks @@ -0,0 +1 @@ +4 diff --git a/Laptop/scream/scream_sender/CMakeLists.txt b/Laptop/scream/scream_sender/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..2b4e245e090016ddbccf25d2669b503d4cb9b483 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/Makefile b/Laptop/scream/scream_sender/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..21ffea062ecc9e81c720795ebfbee6eff84ba7a0 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles /home/user/scream_panasonic/scream_sender/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/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/Laptop/scream/scream_sender/bin/scream_sender b/Laptop/scream/scream_sender/bin/scream_sender new file mode 100755 index 0000000000000000000000000000000000000000..6c4f2284046068f49e41da08967fe9b0dd332876 Binary files /dev/null and b/Laptop/scream/scream_sender/bin/scream_sender differ diff --git a/Laptop/scream/scream_sender/cmake_install.cmake b/Laptop/scream/scream_sender/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..138f8669ba98ce2e0c2de1bc63905571b8dd9560 --- /dev/null +++ b/Laptop/scream/scream_sender/cmake_install.cmake @@ -0,0 +1,50 @@ +# Install script for directory: /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/scream_sender/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000000000000000000000000000000000000..58ac59250a547d58df29f60bd8a04912f131c9f2 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/user/scream_panasonic/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/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks b/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks new file mode 100644 index 0000000000000000000000000000000000000000..b8626c4cff2849624fb67f87cd0ad72b163671ad --- /dev/null +++ b/Laptop/scream/scream_sender/code/CMakeFiles/progress.marks @@ -0,0 +1 @@ +4 diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache new file mode 100644 index 0000000000000000000000000000000000000000..1cf004cfb65263b166c3f4aaac770683267f02f8 --- /dev/null +++ b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/CXX.includecache @@ -0,0 +1,62 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/user/scream_panasonic/scream_sender/code/RtpQueue.cpp +RtpQueue.h +/home/user/scream_panasonic/scream_sender/code/RtpQueue.h +iostream +- +string.h +- + +/home/user/scream_panasonic/scream_sender/code/RtpQueue.h + +/home/user/scream_panasonic/scream_sender/code/ScreamRx.h +cstdint +- +list +- + +/home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp +RtpQueue.h +/home/user/scream_panasonic/scream_sender/code/RtpQueue.h +ScreamTx.h +/home/user/scream_panasonic/scream_sender/code/ScreamTx.h +ScreamRx.h +/home/user/scream_panasonic/scream_sender/code/ScreamRx.h +winSock2.h +- +arpa/inet.h +- +cstdint +- +cmath +- +string.h +- +iostream +- +algorithm +- +stdio.h +- +stdlib.h +- +math.h +- + +/home/user/scream_panasonic/scream_sender/code/ScreamTx.h +string.h +- +iostream +- +cstdint +- + +/home/user/scream_panasonic/scream_sender/code/scream_sender.cpp + diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake new file mode 100644 index 0000000000000000000000000000000000000000..e73ede86aeb5334e1e45f82b10aa97e8f33b9415 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender/code/RtpQueue.cpp" "/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" + "/home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp" "/home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" + "/home/user/scream_panasonic/scream_sender/code/scream_sender.cpp" "/home/user/scream_panasonic/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/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..509ed71a1e448926a192b2cb4202a13fb11df531 Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o differ diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..7fa5f847b8dfdfcdd2c95a95e38b8aa4c3cef2ad Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o differ diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/build.make new file mode 100644 index 0000000000000000000000000000000000000000..0e4e9e0d5bc3a4868822279901d84e9530831d00 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object code/CMakeFiles/scream_sender.dir/RtpQueue.cpp.o" + cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/RtpQueue.cpp.o -c /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o" + cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/ScreamTx.cpp.o -c /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o" + cd /home/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/scream_sender.dir/scream_sender.cpp.o -c /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/code && /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Linking CXX executable ../bin/scream_sender" + cd /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/user/scream_panasonic/scream_sender /home/user/scream_panasonic/scream_sender/code /home/user/scream_panasonic/scream_sender /home/user/scream_panasonic/scream_sender/code /home/user/scream_panasonic/scream_sender/code/CMakeFiles/scream_sender.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : code/CMakeFiles/scream_sender.dir/depend + diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/cmake_clean.cmake new file mode 100644 index 0000000000000000000000000000000000000000..045d102f17b47fed804dd06db608a7bddfb35c7b --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.internal new file mode 100644 index 0000000000000000000000000000000000000000..fa193a5c37669a25b5767483581a358db446bf7f --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender/code/RtpQueue.cpp + /home/user/scream_panasonic/scream_sender/code/RtpQueue.h +code/CMakeFiles/scream_sender.dir/ScreamTx.cpp.o + /home/user/scream_panasonic/scream_sender/code/RtpQueue.h + /home/user/scream_panasonic/scream_sender/code/ScreamRx.h + /home/user/scream_panasonic/scream_sender/code/ScreamTx.cpp + /home/user/scream_panasonic/scream_sender/code/ScreamTx.h +code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o + /home/user/scream_panasonic/scream_sender/code/scream_sender.cpp diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/depend.make new file mode 100644 index 0000000000000000000000000000000000000000..6ebc7b0fa2b432757a3168f005d2f314048c278c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/flags.make new file mode 100644 index 0000000000000000000000000000000000000000..2278f3d04321d6d3f2aabc7eaa3bdf05b0b37270 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender/../include -I/home/user/scream_panasonic/scream_sender -I/home/user/scream_panasonic/scream_sender/code + diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/link.txt new file mode 100644 index 0000000000000000000000000000000000000000..a24f55429ac4f32b72753cf95c213fe713cd2352 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender/../lib -L/usr/local/lib -rdynamic diff --git a/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/progress.make new file mode 100644 index 0000000000000000000000000000000000000000..a69a57e8e4ffee737b6054e9068354426a41030f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b9457f4e8e43bf03dee4cbb5b73cbf55729cb882 Binary files /dev/null and b/Laptop/scream/scream_sender/code/CMakeFiles/scream_sender.dir/scream_sender.cpp.o differ diff --git a/Laptop/scream/scream_sender/code/CMakeLists.txt b/Laptop/scream/scream_sender/code/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..a3a464695799eb1ed588cbcaf3c08748cfc9bf4c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/Makefile b/Laptop/scream/scream_sender/code/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..4f534fa48140e75596ec577858daba5fe2f3dcf2 --- /dev/null +++ b/Laptop/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/user/scream_panasonic/scream_sender + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender && $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles /home/user/scream_panasonic/scream_sender/code/CMakeFiles/progress.marks + cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/user/scream_panasonic/scream_sender/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + cd /home/user/scream_panasonic/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/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + cd /home/user/scream_panasonic/scream_sender && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + cd /home/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/user/scream_panasonic/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/Laptop/scream/scream_sender/code/RtpQueue.cpp b/Laptop/scream/scream_sender/code/RtpQueue.cpp new file mode 100644 index 0000000000000000000000000000000000000000..47c1fb4ed09e07840207d19866ff7ddcacefe12f --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/RtpQueue.h b/Laptop/scream/scream_sender/code/RtpQueue.h new file mode 100644 index 0000000000000000000000000000000000000000..82c6ac873e17204d4a96e767a7006fb8e08b3ebf --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/ScreamRx.h b/Laptop/scream/scream_sender/code/ScreamRx.h new file mode 100644 index 0000000000000000000000000000000000000000..f1d9e83c05b476833e82d926ca13d187f9d4179c --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/ScreamTx.cpp b/Laptop/scream/scream_sender/code/ScreamTx.cpp new file mode 100644 index 0000000000000000000000000000000000000000..d638130f0759a6990b2eb878c30669632afc7d12 --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/ScreamTx.h b/Laptop/scream/scream_sender/code/ScreamTx.h new file mode 100644 index 0000000000000000000000000000000000000000..3c802fb8df75ad05de70e23a6455ae77f7e2621d --- /dev/null +++ b/Laptop/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/Laptop/scream/scream_sender/code/cmake_install.cmake b/Laptop/scream/scream_sender/code/cmake_install.cmake new file mode 100644 index 0000000000000000000000000000000000000000..39a25e535c8c77cce8f6a49047d1a00d3aae1b16 --- /dev/null +++ b/Laptop/scream/scream_sender/code/cmake_install.cmake @@ -0,0 +1,34 @@ +# Install script for directory: /home/user/scream_panasonic/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/Laptop/scream/scream_sender/code/scream_sender.cpp b/Laptop/scream/scream_sender/code/scream_sender.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ef05df10bb147977ee315c355d43c355d2a28b64 --- /dev/null +++ b/Laptop/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/Laptop/sshPi b/Laptop/sshPi new file mode 100755 index 0000000000000000000000000000000000000000..39faecd7bfb1b12fcf6cd5eb12f496a40d94df74 --- /dev/null +++ b/Laptop/sshPi @@ -0,0 +1 @@ +ssh pi@10.9.0.3 diff --git a/Laptop/startVPNClient.sh b/Laptop/startVPNClient.sh new file mode 100755 index 0000000000000000000000000000000000000000..a42db227c56108a63f435fc9dfb619f56c60a1ef --- /dev/null +++ b/Laptop/startVPNClient.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sudo systemctl start openvpn@client diff --git a/Laptop/statusVPNClient.sh b/Laptop/statusVPNClient.sh new file mode 100755 index 0000000000000000000000000000000000000000..146eb36ae278c82eb5d8b459294bfceb354b2785 --- /dev/null +++ b/Laptop/statusVPNClient.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sudo systemctl status openvpn@client diff --git a/Laptop/stopVPNClient.sh b/Laptop/stopVPNClient.sh new file mode 100755 index 0000000000000000000000000000000000000000..9e738882fd42a72c48160a3e63efdeabcb449991 --- /dev/null +++ b/Laptop/stopVPNClient.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sudo systemctl stop openvpn@client