aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/CMakeLists.txt20
-rw-r--r--host/lib/CMakeLists.txt46
-rwxr-xr-xhost/lib/transport/gen_vrt.py3
-rw-r--r--host/lib/transport/vrt.cpp549
4 files changed, 57 insertions, 561 deletions
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index baae90861..6334b44ff 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -25,8 +25,8 @@ ENABLE_TESTING()
SET(CPACK_PACKAGE_VERSION_MAJOR 0)
SET(CPACK_PACKAGE_VERSION_MINOR 0)
SET(CPACK_PACKAGE_VERSION_PATCH 0)
-SET(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README)
-SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
+SET(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README)
+SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
INCLUDE(CPack) #include after setting vars
########################################################################
@@ -42,18 +42,18 @@ MESSAGE(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}")
########################################################################
# Local Include Dir
########################################################################
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
########################################################################
# Optional Compiler Flags
########################################################################
INCLUDE(CheckCXXCompilerFlag)
-FUNCTION(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG flag have)
+MACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG flag have)
CHECK_CXX_COMPILER_FLAG(${flag} ${have})
IF(${have})
ADD_DEFINITIONS(${flag})
ENDIF(${have})
-ENDFUNCTION(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG)
+ENDMACRO(UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG)
IF(UNIX)
UHD_ADD_OPTIONAL_CXX_COMPILER_FLAG(-Wall HAVE_WALL)
@@ -114,7 +114,7 @@ ADD_CUSTOM_TARGET(uninstall
# Create Pkg Config File
########################################################################
CONFIGURE_FILE(
- ${CMAKE_SOURCE_DIR}/uhd.pc.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/uhd.pc.in
${CMAKE_CURRENT_BINARY_DIR}/uhd.pc
@ONLY)
@@ -131,7 +131,7 @@ INCLUDE(FindDoxygen)
IF(DOXYGEN_FOUND)
SET(CMAKE_CURRENT_BINARY_DIR_DOXYGEN ${CMAKE_CURRENT_BINARY_DIR}/doxygen)
CONFIGURE_FILE(
- ${CMAKE_SOURCE_DIR}/Doxyfile.in
+ ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
@ONLY)
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR_DOXYGEN}
@@ -143,9 +143,9 @@ IF(DOXYGEN_FOUND)
ENDIF(DOXYGEN_FOUND)
INSTALL(FILES
- ${CMAKE_SOURCE_DIR}/README
- ${CMAKE_SOURCE_DIR}/LICENSE
- ${CMAKE_SOURCE_DIR}/AUTHORS
+ ${CMAKE_CURRENT_SOURCE_DIR}/README
+ ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
+ ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS
DESTINATION ${PKG_DOC_DIR}
)
diff --git a/host/lib/CMakeLists.txt b/host/lib/CMakeLists.txt
index f21a4a491..87e35f412 100644
--- a/host/lib/CMakeLists.txt
+++ b/host/lib/CMakeLists.txt
@@ -15,6 +15,33 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
+
+########################################################################
+# Setup Python
+########################################################################
+INCLUDE(FindPythonInterp)
+
+MACRO(PYTHON_CHECK_MODULE module have)
+ MESSAGE(STATUS "Checking for python module ${module}")
+ EXECUTE_PROCESS(
+ COMMAND ${PYTHON_EXECUTABLE} -c "import ${module}"
+ RESULT_VARIABLE ${have}
+ )
+ IF(${have} EQUAL 0)
+ MESSAGE(STATUS "Checking for python module ${module} - found")
+ SET(${have} TRUE)
+ ELSE(${have} EQUAL 0)
+ MESSAGE(STATUS "Checking for python module ${module} - not found")
+ SET(${have} FALSE)
+ ENDIF(${have} EQUAL 0)
+ENDMACRO(PYTHON_CHECK_MODULE)
+
+PYTHON_CHECK_MODULE("Cheetah" HAVE_PYTHON_MODULE_CHEETAH)
+
+IF(NOT HAVE_PYTHON_MODULE_CHEETAH)
+ MESSAGE(FATAL_ERROR "Error: Cheetah Templates needed for pre-build generation.")
+ENDIF(NOT HAVE_PYTHON_MODULE_CHEETAH)
+
########################################################################
# Create a list of libuhd sources
########################################################################
@@ -26,7 +53,6 @@ SET(libuhd_sources
wax.cpp
transport/if_addrs.cpp
transport/udp_simple.cpp
- transport/vrt.cpp
usrp/dboard/db_basic_and_lf.cpp
usrp/dboard/db_rfx.cpp
usrp/dboard_base.cpp
@@ -42,6 +68,24 @@ SET(libuhd_sources
)
########################################################################
+# Generate Files
+########################################################################
+MACRO(UHD_PYTHON_GEN_FILE pyfile outfile)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${outfile} DEPENDS ${pyfile}
+ COMMAND ${PYTHON_EXECUTABLE} ${pyfile} ${outfile}
+ COMMENT "Calling ${pyfile} to generate ${outfile}"
+ )
+ENDMACRO(UHD_PYTHON_GEN_FILE)
+UHD_PYTHON_GEN_FILE(
+ ${CMAKE_CURRENT_SOURCE_DIR}/transport/gen_vrt.py
+ ${CMAKE_CURRENT_BINARY_DIR}/transport/vrt.cpp
+)
+LIST(APPEND libuhd_sources
+ ${CMAKE_CURRENT_BINARY_DIR}/transport/vrt.cpp
+)
+
+########################################################################
# Conditionally add the udp sources
########################################################################
LIST(APPEND libuhd_sources
diff --git a/host/lib/transport/gen_vrt.py b/host/lib/transport/gen_vrt.py
index bc6635d78..0f961efc2 100755
--- a/host/lib/transport/gen_vrt.py
+++ b/host/lib/transport/gen_vrt.py
@@ -200,9 +200,10 @@ void vrt::unpack(
}
"""
+import sys
from Cheetah import Template
def parse_str(_tmpl_text, **kwargs): return str(Template.Template(_tmpl_text, kwargs))
if __name__ == '__main__':
from Cheetah import Template
- print parse_str(TMPL_TEXT, file=__file__)
+ open(sys.argv[1], 'w').write(parse_str(TMPL_TEXT, file=__file__))
diff --git a/host/lib/transport/vrt.cpp b/host/lib/transport/vrt.cpp
deleted file mode 100644
index 78c3cf2cb..000000000
--- a/host/lib/transport/vrt.cpp
+++ /dev/null
@@ -1,549 +0,0 @@
-
-
-
-/***********************************************************************
- * This file was generated by gen_vrt.py on 04/08/10 10:55:26
- **********************************************************************/
-
-#include <uhd/transport/vrt.hpp>
-#include <boost/asio.hpp> //endianness conversion
-#include <stdexcept>
-
-using namespace uhd;
-using namespace uhd::transport;
-
-void vrt::pack(
- const tx_metadata_t &metadata, //input
- boost::uint32_t *header_buff, //output
- size_t &num_header_words32, //output
- size_t num_payload_words32, //input
- size_t &num_packet_words32, //output
- size_t packet_count, //input
- double tick_rate //input
-){
- boost::uint32_t vrt_hdr_flags;
-
- boost::uint8_t pred = 0;
- if (metadata.has_stream_id) pred |= 0x1;
- if (metadata.has_time_spec) pred |= 0xc;
-
- switch(pred){
- case 0:
- num_header_words32 = 1;
- num_packet_words32 = 1 + num_payload_words32;
- vrt_hdr_flags = 0x0;
- break;
- case 1:
- header_buff[1] = htonl(metadata.stream_id);
- num_header_words32 = 2;
- num_packet_words32 = 2 + num_payload_words32;
- vrt_hdr_flags = 0x10000000;
- break;
- case 2:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- num_header_words32 = 3;
- num_packet_words32 = 3 + num_payload_words32;
- vrt_hdr_flags = 0x8000000;
- break;
- case 3:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- num_header_words32 = 4;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0x18000000;
- break;
- case 4:
- header_buff[1] = htonl(metadata.time_spec.secs);
- num_header_words32 = 2;
- num_packet_words32 = 2 + num_payload_words32;
- vrt_hdr_flags = 0xc00000;
- break;
- case 5:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(metadata.time_spec.secs);
- num_header_words32 = 3;
- num_packet_words32 = 3 + num_payload_words32;
- vrt_hdr_flags = 0x10c00000;
- break;
- case 6:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.secs);
- num_header_words32 = 4;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0x8c00000;
- break;
- case 7:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.secs);
- num_header_words32 = 5;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x18c00000;
- break;
- case 8:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 3;
- num_packet_words32 = 3 + num_payload_words32;
- vrt_hdr_flags = 0x100000;
- break;
- case 9:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 4;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0x10100000;
- break;
- case 10:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 5;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x8100000;
- break;
- case 11:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(0);
- header_buff[5] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 6;
- num_packet_words32 = 6 + num_payload_words32;
- vrt_hdr_flags = 0x18100000;
- break;
- case 12:
- header_buff[1] = htonl(metadata.time_spec.secs);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 4;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0xd00000;
- break;
- case 13:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(metadata.time_spec.secs);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 5;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x10d00000;
- break;
- case 14:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.secs);
- header_buff[4] = htonl(0);
- header_buff[5] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 6;
- num_packet_words32 = 6 + num_payload_words32;
- vrt_hdr_flags = 0x8d00000;
- break;
- case 15:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.secs);
- header_buff[5] = htonl(0);
- header_buff[6] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 7;
- num_packet_words32 = 7 + num_payload_words32;
- vrt_hdr_flags = 0x18d00000;
- break;
- case 16:
- num_header_words32 = 1;
- num_packet_words32 = 2 + num_payload_words32;
- vrt_hdr_flags = 0x4000000;
- break;
- case 17:
- header_buff[1] = htonl(metadata.stream_id);
- num_header_words32 = 2;
- num_packet_words32 = 3 + num_payload_words32;
- vrt_hdr_flags = 0x14000000;
- break;
- case 18:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- num_header_words32 = 3;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0xc000000;
- break;
- case 19:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- num_header_words32 = 4;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x1c000000;
- break;
- case 20:
- header_buff[1] = htonl(metadata.time_spec.secs);
- num_header_words32 = 2;
- num_packet_words32 = 3 + num_payload_words32;
- vrt_hdr_flags = 0x4c00000;
- break;
- case 21:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(metadata.time_spec.secs);
- num_header_words32 = 3;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0x14c00000;
- break;
- case 22:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.secs);
- num_header_words32 = 4;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0xcc00000;
- break;
- case 23:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.secs);
- num_header_words32 = 5;
- num_packet_words32 = 6 + num_payload_words32;
- vrt_hdr_flags = 0x1cc00000;
- break;
- case 24:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 3;
- num_packet_words32 = 4 + num_payload_words32;
- vrt_hdr_flags = 0x4100000;
- break;
- case 25:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 4;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x14100000;
- break;
- case 26:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 5;
- num_packet_words32 = 6 + num_payload_words32;
- vrt_hdr_flags = 0xc100000;
- break;
- case 27:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(0);
- header_buff[5] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 6;
- num_packet_words32 = 7 + num_payload_words32;
- vrt_hdr_flags = 0x1c100000;
- break;
- case 28:
- header_buff[1] = htonl(metadata.time_spec.secs);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 4;
- num_packet_words32 = 5 + num_payload_words32;
- vrt_hdr_flags = 0x4d00000;
- break;
- case 29:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(metadata.time_spec.secs);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 5;
- num_packet_words32 = 6 + num_payload_words32;
- vrt_hdr_flags = 0x14d00000;
- break;
- case 30:
- header_buff[1] = htonl(0);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(metadata.time_spec.secs);
- header_buff[4] = htonl(0);
- header_buff[5] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 6;
- num_packet_words32 = 7 + num_payload_words32;
- vrt_hdr_flags = 0xcd00000;
- break;
- case 31:
- header_buff[1] = htonl(metadata.stream_id);
- header_buff[2] = htonl(0);
- header_buff[3] = htonl(0);
- header_buff[4] = htonl(metadata.time_spec.secs);
- header_buff[5] = htonl(0);
- header_buff[6] = htonl(metadata.time_spec.get_ticks(tick_rate));
- num_header_words32 = 7;
- num_packet_words32 = 8 + num_payload_words32;
- vrt_hdr_flags = 0x1cd00000;
- break;
- }
-
- //set the burst flags
- if (metadata.start_of_burst) vrt_hdr_flags |= 0x2000000;
- if (metadata.end_of_burst) vrt_hdr_flags |= 0x1000000;
-
- //fill in complete header word
- header_buff[0] = htonl(vrt_hdr_flags |
- ((packet_count & 0xf) << 16) |
- (num_packet_words32 & 0xffff)
- );
-}
-
-void vrt::unpack(
- rx_metadata_t &metadata, //output
- const boost::uint32_t *header_buff, //input
- size_t &num_header_words32, //output
- size_t &num_payload_words32, //output
- size_t num_packet_words32, //input
- size_t &packet_count, //output
- double tick_rate //input
-){
- //clear the metadata
- metadata = rx_metadata_t();
-
- //extract vrt header
- boost::uint32_t vrt_hdr_word = ntohl(header_buff[0]);
- size_t packet_words32 = vrt_hdr_word & 0xffff;
- packet_count = (vrt_hdr_word >> 16) & 0xf;
-
- //failure cases
- if (packet_words32 == 0 or num_packet_words32 < packet_words32)
- throw std::runtime_error("bad vrt header or packet fragment");
- if (vrt_hdr_word & (0x7 << 29))
- throw std::runtime_error("unsupported vrt packet type");
-
- boost::uint8_t pred = 0;
- if(vrt_hdr_word & 0x10000000) pred |= 0x1;
- if(vrt_hdr_word & 0x8000000) pred |= 0x2;
- if(vrt_hdr_word & 0xc00000) pred |= 0x4;
- if(vrt_hdr_word & 0x300000) pred |= 0x8;
- if(vrt_hdr_word & 0x4000000) pred |= 0x10;
-
- switch(pred){
- case 0:
- num_header_words32 = 1;
- num_payload_words32 = packet_words32 - 1;
- break;
- case 1:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- num_header_words32 = 2;
- num_payload_words32 = packet_words32 - 2;
- break;
- case 2:
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 3;
- break;
- case 3:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 4:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[1]);
- num_header_words32 = 2;
- num_payload_words32 = packet_words32 - 2;
- break;
- case 5:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[2]);
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 3;
- break;
- case 6:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[3]);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 7:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[4]);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 8:
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[2]), tick_rate);
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 3;
- break;
- case 9:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[3]), tick_rate);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 10:
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[4]), tick_rate);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 11:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[5]), tick_rate);
- num_header_words32 = 6;
- num_payload_words32 = packet_words32 - 6;
- break;
- case 12:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[1]);
- metadata.time_spec.set_ticks(ntohl(header_buff[3]), tick_rate);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 13:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[2]);
- metadata.time_spec.set_ticks(ntohl(header_buff[4]), tick_rate);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 14:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[3]);
- metadata.time_spec.set_ticks(ntohl(header_buff[5]), tick_rate);
- num_header_words32 = 6;
- num_payload_words32 = packet_words32 - 6;
- break;
- case 15:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[4]);
- metadata.time_spec.set_ticks(ntohl(header_buff[6]), tick_rate);
- num_header_words32 = 7;
- num_payload_words32 = packet_words32 - 7;
- break;
- case 16:
- num_header_words32 = 1;
- num_payload_words32 = packet_words32 - 2;
- break;
- case 17:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- num_header_words32 = 2;
- num_payload_words32 = packet_words32 - 3;
- break;
- case 18:
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 19:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 20:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[1]);
- num_header_words32 = 2;
- num_payload_words32 = packet_words32 - 3;
- break;
- case 21:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[2]);
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 22:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[3]);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 23:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[4]);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 6;
- break;
- case 24:
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[2]), tick_rate);
- num_header_words32 = 3;
- num_payload_words32 = packet_words32 - 4;
- break;
- case 25:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[3]), tick_rate);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 26:
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[4]), tick_rate);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 6;
- break;
- case 27:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.set_ticks(ntohl(header_buff[5]), tick_rate);
- num_header_words32 = 6;
- num_payload_words32 = packet_words32 - 7;
- break;
- case 28:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[1]);
- metadata.time_spec.set_ticks(ntohl(header_buff[3]), tick_rate);
- num_header_words32 = 4;
- num_payload_words32 = packet_words32 - 5;
- break;
- case 29:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[2]);
- metadata.time_spec.set_ticks(ntohl(header_buff[4]), tick_rate);
- num_header_words32 = 5;
- num_payload_words32 = packet_words32 - 6;
- break;
- case 30:
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[3]);
- metadata.time_spec.set_ticks(ntohl(header_buff[5]), tick_rate);
- num_header_words32 = 6;
- num_payload_words32 = packet_words32 - 7;
- break;
- case 31:
- metadata.has_stream_id = true;
- metadata.stream_id = ntohl(header_buff[1]);
- metadata.has_time_spec = true;
- metadata.time_spec.secs = ntohl(header_buff[4]);
- metadata.time_spec.set_ticks(ntohl(header_buff[6]), tick_rate);
- num_header_words32 = 7;
- num_payload_words32 = packet_words32 - 8;
- break;
- }
-}
-