This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new a6c41fbae apps/netutils: Add RTP tools
a6c41fbae is described below

commit a6c41fbaeb2aac9bf2f7125af48e13a5e9211aa8
Author: Tiago Medicci Serrano <[email protected]>
AuthorDate: Fri Feb 24 12:14:22 2023 -0300

    apps/netutils: Add RTP tools
---
 netutils/rtptools/.gitignore |   2 +
 netutils/rtptools/Kconfig    | 131 +++++++++++++++++++++++++++++++++++++++++++
 netutils/rtptools/Make.defs  |  27 +++++++++
 netutils/rtptools/Makefile   | 116 ++++++++++++++++++++++++++++++++++++++
 netutils/rtptools/config.h   |  37 ++++++++++++
 5 files changed, 313 insertions(+)

diff --git a/netutils/rtptools/.gitignore b/netutils/rtptools/.gitignore
new file mode 100644
index 000000000..b86e52048
--- /dev/null
+++ b/netutils/rtptools/.gitignore
@@ -0,0 +1,2 @@
+/rtptools
+/*.tar.gz
diff --git a/netutils/rtptools/Kconfig b/netutils/rtptools/Kconfig
new file mode 100644
index 000000000..a753ef67a
--- /dev/null
+++ b/netutils/rtptools/Kconfig
@@ -0,0 +1,131 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+
+config NETUTILS_RTPTOOLS
+       bool "Enable RTP Tools"
+       default n
+       ---help---
+               RTP Tools is a set of small applications
+               that can be used for processing RTP data.
+
+if NETUTILS_RTPTOOLS
+
+config NETUTILS_RTPTOOLS_VERSION
+       string "RTP Tools version"
+       default "9356740cb0c264577e0f9505e682e53a1e0996d5"
+
+menuconfig RTPTOOLS_APPS
+       tristate "RTP Tools Applications"
+       default y
+       ---help---
+               Enable RTP Tools Applications
+
+if RTPTOOLS_APPS
+
+config NETUTILS_RTPTOOLS_DEFAULT_TASK_STACKSIZE
+       int "RTP Tools apps default stack size"
+       default 12288
+
+config NETUTILS_RTPTOOLS_RTPPLAY
+       bool "Enable rtpplay"
+       default n
+       ---help---
+               Play back RTP sessions recorded by rtpdump.
+
+if NETUTILS_RTPTOOLS_RTPPLAY
+
+config NETUTILS_RTPTOOLS_RTPPLAY_PROGNAME
+       string "Program name"
+       default "rtpplay"
+       ---help---
+               This is the name of the program that will be used.
+
+config NETUTILS_RTPTOOLS_RTPPLAY_PRIORITY
+       int "rtpplay task priority"
+       default 100
+
+config NETUTILS_RTPTOOLS_RTPPLAY_STACKSIZE
+       int "rtpplay stack size"
+       default NETUTILS_RTPTOOLS_DEFAULT_TASK_STACKSIZE
+
+endif # NETUTILS_RTPTOOLS_RTPPLAY
+
+config NETUTILS_RTPTOOLS_RTPSEND
+       bool "Enable rtpsend"
+       default n
+       ---help---
+               Generate RTP packets from textual description,
+               generated by hand or rtpdump.
+
+if NETUTILS_RTPTOOLS_RTPSEND
+
+config NETUTILS_RTPTOOLS_RTPSEND_PROGNAME
+       string "Program name"
+       default "rtpsend"
+       ---help---
+               This is the name of the program that will be used.
+
+config NETUTILS_RTPTOOLS_RTPSEND_PRIORITY
+       int "rtpsend task priority"
+       default 100
+
+config NETUTILS_RTPTOOLS_RTPSEND_STACKSIZE
+       int "rtpsend stack size"
+       default NETUTILS_RTPTOOLS_DEFAULT_TASK_STACKSIZE
+
+endif # NETUTILS_RTPTOOLS_RTPSEND
+
+config NETUTILS_RTPTOOLS_RTPDUMP
+       bool "Enable rtpdump"
+       default y
+       ---help---
+               Parse and print RTP packets, generating output
+               files suitable for rtpplay and rtpsend.
+
+if NETUTILS_RTPTOOLS_RTPDUMP
+
+config NETUTILS_RTPTOOLS_RTPDUMP_PROGNAME
+       string "Program name"
+       default "rtpdump"
+       ---help---
+               This is the name of the program that will be used.
+
+config NETUTILS_RTPTOOLS_RTPDUMP_PRIORITY
+       int "rtpdump task priority"
+       default 100
+
+config NETUTILS_RTPTOOLS_RTPDUMP_STACKSIZE
+       int "rtpdump stack size"
+       default NETUTILS_RTPTOOLS_DEFAULT_TASK_STACKSIZE
+
+endif # NETUTILS_RTPTOOLS_RTPDUMP
+
+config NETUTILS_RTPTOOLS_RTPTRANS
+       bool "Enable rtptrans"
+       default n
+       ---help---
+               RTP translator between unicast and multicast networks.
+
+if NETUTILS_RTPTOOLS_RTPTRANS
+
+config NETUTILS_RTPTOOLS_RTPTRANS_PROGNAME
+       string "Program name"
+       default "rtptrans"
+       ---help---
+               This is the name of the program that will be used.
+
+config NETUTILS_RTPTOOLS_RTPTRANS_PRIORITY
+       int "rtptrans task priority"
+       default 100
+
+config NETUTILS_RTPTOOLS_RTPTRANS_STACKSIZE
+       int "rtptrans stack size"
+       default NETUTILS_RTPTOOLS_DEFAULT_TASK_STACKSIZE
+
+endif # NETUTILS_RTPTOOLS_RTPTRANS
+
+endif # RTPTOOLS_APPS
+
+endif # NETUTILS_RTPTOOLS
diff --git a/netutils/rtptools/Make.defs b/netutils/rtptools/Make.defs
new file mode 100644
index 000000000..0c4cf3840
--- /dev/null
+++ b/netutils/rtptools/Make.defs
@@ -0,0 +1,27 @@
+############################################################################
+# apps/netutils/rtptools/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+ifneq ($(CONFIG_NETUTILS_RTPTOOLS),)
+CONFIGURED_APPS += $(APPDIR)/netutils/rtptools
+
+CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/rtptools/rtptools/include
+CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/netutils/rtptools/rtptools/include
+
+endif
diff --git a/netutils/rtptools/Makefile b/netutils/rtptools/Makefile
new file mode 100644
index 000000000..4f3b36bc5
--- /dev/null
+++ b/netutils/rtptools/Makefile
@@ -0,0 +1,116 @@
+############################################################################
+# apps/netutils/rtptools/Makefile
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+include $(APPDIR)/Make.defs
+
+RTPTOOLS_VERSION := $(patsubst "%",%,$(CONFIG_NETUTILS_RTPTOOLS_VERSION))
+RTPTOOLS_TARBALL  = $(RTPTOOLS_VERSION).tar.gz
+RTPTOOLS_UNPACK   = rtptools
+RTPTOOLS_SRCDIR   = $(RTPTOOLS_UNPACK)
+
+DEPPATH += --dep-path $(RTPTOOLS_SRCDIR)
+VPATH   += :$(RTPTOOLS_SRCDIR)
+
+CFLAGS += -Wno-maybe-uninitialized -Wno-strict-prototypes
+CFLAGS += -Wno-unused-function -Wno-format -Wno-shadow
+
+CSRCS += multimer.c
+CSRCS += notify.c
+CSRCS += payload.c
+CSRCS += rd.c
+CSRCS += utils.c
+
+ifeq ($(CONFIG_ENDIAN_BIG),y)
+RTP_BIG_ENDIAN = 1
+else
+RTP_BIG_ENDIAN = 0
+endif
+
+ifneq ($(CONFIG_RTPTOOLS_APPS),)
+
+MODULE = $(CONFIG_RTPTOOLS_APPS)
+
+ifeq ($(CONFIG_NETUTILS_RTPTOOLS_RTPPLAY),y)
+
+PROGNAME  += $(CONFIG_NETUTILS_RTPTOOLS_RTPPLAY_PROGNAME)
+PRIORITY  += $(CONFIG_NETUTILS_RTPTOOLS_RTPPLAY_PRIORITY)
+STACKSIZE += $(CONFIG_NETUTILS_RTPTOOLS_RTPPLAY_STACKSIZE)
+
+MAINSRC += $(RTPTOOLS_UNPACK)/rtpplay.c
+endif
+
+ifeq ($(CONFIG_NETUTILS_RTPTOOLS_RTPSEND),y)
+
+PROGNAME  += $(CONFIG_NETUTILS_RTPTOOLS_RTPSEND_PROGNAME)
+PRIORITY  += $(CONFIG_NETUTILS_RTPTOOLS_RTPSEND_PRIORITY)
+STACKSIZE += $(CONFIG_NETUTILS_RTPTOOLS_RTPSEND_STACKSIZE)
+
+MAINSRC += $(RTPTOOLS_UNPACK)/rtpsend.c
+endif
+
+ifeq ($(CONFIG_NETUTILS_RTPTOOLS_RTPDUMP),y)
+
+PROGNAME  += $(CONFIG_NETUTILS_RTPTOOLS_RTPDUMP_PROGNAME)
+PRIORITY  += $(CONFIG_NETUTILS_RTPTOOLS_RTPDUMP_PRIORITY)
+STACKSIZE += $(CONFIG_NETUTILS_RTPTOOLS_RTPDUMP_STACKSIZE)
+
+MAINSRC += $(RTPTOOLS_UNPACK)/rtpdump.c
+endif
+
+ifeq ($(CONFIG_NETUTILS_RTPTOOLS_RTPTRANS),y)
+
+PROGNAME  += $(CONFIG_NETUTILS_RTPTOOLS_RTPTRANS_PROGNAME)
+PRIORITY  += $(CONFIG_NETUTILS_RTPTOOLS_RTPTRANS_PRIORITY)
+STACKSIZE += $(CONFIG_NETUTILS_RTPTOOLS_RTPTRANS_STACKSIZE)
+
+MAINSRC += $(RTPTOOLS_UNPACK)/rtptrans.c
+endif
+
+endif
+
+# Download and unpack tarball if no git repo found
+ifeq ($(wildcard $(RTPTOOLS_UNPACK)/.git),)
+$(RTPTOOLS_UNPACK)$(DELIM)config.h: $(RTPTOOLS_UNPACK)
+       $(Q) cp config.h $@
+else
+$(RTPTOOLS_UNPACK)$(DELIM)config.h:
+       $(Q) cp config.h $@
+endif
+
+$(RTPTOOLS_TARBALL):
+       @echo "Downloading: $(RTPTOOLS_TARBALL)"
+       $(Q) curl -O -L 
https://github.com/irtlab/rtptools/archive/$(RTPTOOLS_TARBALL)
+
+$(RTPTOOLS_UNPACK): $(RTPTOOLS_TARBALL)
+       $(Q) echo "Unpacking: $(RTPTOOLS_TARBALL) -> $(RTPTOOLS_UNPACK)"
+       $(Q) tar zxf $(RTPTOOLS_TARBALL)
+       $(Q) mv $(RTPTOOLS_UNPACK)-$(RTPTOOLS_VERSION) $(RTPTOOLS_UNPACK)
+       $(Q) touch $(RTPTOOLS_UNPACK)
+
+context:: $(RTPTOOLS_UNPACK)$(DELIM)config.h
+
+# Download and unpack tarball if no git repo found
+ifeq ($(wildcard $(RTPTOOLS_UNPACK)/.git),)
+distclean::
+       $(call DELFILE, $(RTPTOOLS_TARBALL))
+       $(call DELDIR, $(RTPTOOLS_UNPACK))
+endif
+
+include $(APPDIR)/Application.mk
diff --git a/netutils/rtptools/config.h b/netutils/rtptools/config.h
new file mode 100644
index 000000000..dd077ee99
--- /dev/null
+++ b/netutils/rtptools/config.h
@@ -0,0 +1,37 @@
+/****************************************************************************
+ * apps/netutils/rtptools/config.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#ifdef CONFIG_ENDIAN_BIG
+#define RTP_BIG_ENDIAN 1
+#else
+#define RTP_BIG_ENDIAN 0
+#endif
+
+#define HAVE_MSGCONTROL 1

Reply via email to