apps/netutils: Add RTP tools
This commit is contained in:
parent
b00f612470
commit
a6c41fbaeb
2
netutils/rtptools/.gitignore
vendored
Normal file
2
netutils/rtptools/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/rtptools
|
||||||
|
/*.tar.gz
|
131
netutils/rtptools/Kconfig
Normal file
131
netutils/rtptools/Kconfig
Normal file
@ -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
|
27
netutils/rtptools/Make.defs
Normal file
27
netutils/rtptools/Make.defs
Normal file
@ -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
|
116
netutils/rtptools/Makefile
Normal file
116
netutils/rtptools/Makefile
Normal file
@ -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
|
37
netutils/rtptools/config.h
Normal file
37
netutils/rtptools/config.h
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user