mirror of
https://github.com/pikvm/ustreamer.git
synced 2026-02-27 12:16:31 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83127e58ff | ||
|
|
604a8f7cb4 | ||
|
|
602c1747d5 | ||
|
|
a2b8b35070 |
@@ -1,7 +1,7 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
current_version = 6.30
|
current_version = 6.32
|
||||||
parse = (?P<major>\d+)\.(?P<minor>\d+)
|
parse = (?P<major>\d+)\.(?P<minor>\d+)
|
||||||
serialize =
|
serialize =
|
||||||
{major}.{minor}
|
{major}.{minor}
|
||||||
|
|||||||
21
Makefile
21
Makefile
@@ -1,4 +1,3 @@
|
|||||||
include lib.mk
|
|
||||||
-include config.mk
|
-include config.mk
|
||||||
|
|
||||||
|
|
||||||
@@ -24,6 +23,18 @@ WITH_PTHREAD_NP ?= 1
|
|||||||
WITH_SETPROCTITLE ?= 1
|
WITH_SETPROCTITLE ?= 1
|
||||||
WITH_PDEATHSIG ?= 1
|
WITH_PDEATHSIG ?= 1
|
||||||
|
|
||||||
|
define optbool
|
||||||
|
$(filter $(shell echo $(1) | tr A-Z a-z), yes on 1)
|
||||||
|
endef
|
||||||
|
MK_WITH_PYTHON = $(call optbool,$(WITH_PYTHON))
|
||||||
|
MK_WITH_JANUS = $(call optbool,$(WITH_JANUS))
|
||||||
|
MK_WITH_V4P = $(call optbool,$(WITH_V4P))
|
||||||
|
MK_WITH_GPIO = $(call optbool,$(WITH_GPIO))
|
||||||
|
MK_WITH_SYSTEMD = $(call optbool,$(WITH_SYSTEMD))
|
||||||
|
MK_WITH_PTHREAD_NP = $(call optbool,$(WITH_PTHREAD_NP))
|
||||||
|
MK_WITH_SETPROCTITLE = $(call optbool,$(WITH_SETPROCTITLE))
|
||||||
|
MK_WITH_PDEATHSIG = $(call optbool,$(WITH_PDEATHSIG))
|
||||||
|
|
||||||
export
|
export
|
||||||
|
|
||||||
_LINTERS_IMAGE ?= ustreamer-linters
|
_LINTERS_IMAGE ?= ustreamer-linters
|
||||||
@@ -44,10 +55,10 @@ endif
|
|||||||
# =====
|
# =====
|
||||||
all:
|
all:
|
||||||
+ $(MAKE) apps
|
+ $(MAKE) apps
|
||||||
ifneq ($(call optbool,$(WITH_PYTHON)),)
|
ifneq ($(MK_WITH_PYTHON),)
|
||||||
+ $(MAKE) python
|
+ $(MAKE) python
|
||||||
endif
|
endif
|
||||||
ifneq ($(call optbool,$(WITH_JANUS)),)
|
ifneq ($(MK_WITH_JANUS),)
|
||||||
+ $(MAKE) janus
|
+ $(MAKE) janus
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -71,10 +82,10 @@ janus:
|
|||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(MAKE) -C src install
|
$(MAKE) -C src install
|
||||||
ifneq ($(call optbool,$(WITH_PYTHON)),)
|
ifneq ($(MK_WITH_PYTHON),)
|
||||||
$(MAKE) -C python install
|
$(MAKE) -C python install
|
||||||
endif
|
endif
|
||||||
ifneq ($(call optbool,$(WITH_JANUS)),)
|
ifneq ($(MK_WITH_JANUS),)
|
||||||
$(MAKE) -C janus install
|
$(MAKE) -C janus install
|
||||||
endif
|
endif
|
||||||
mkdir -p $(R_DESTDIR)$(MANPREFIX)/man1
|
mkdir -p $(R_DESTDIR)$(MANPREFIX)/man1
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
include ../lib.mk
|
|
||||||
|
|
||||||
|
|
||||||
# =====
|
|
||||||
R_DESTDIR ?=
|
R_DESTDIR ?=
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
|
|
||||||
@@ -22,7 +18,7 @@ _SRCS = $(shell ls src/uslibs/*.c src/*.c)
|
|||||||
_BUILD = build
|
_BUILD = build
|
||||||
|
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_PTHREAD_NP)),)
|
ifneq ($(MK_WITH_PTHREAD_NP),)
|
||||||
override _CFLAGS += -DWITH_PTHREAD_NP
|
override _CFLAGS += -DWITH_PTHREAD_NP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -59,6 +59,7 @@
|
|||||||
#include "memsinkfd.h"
|
#include "memsinkfd.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
|
||||||
static us_config_s *_g_config = NULL;
|
static us_config_s *_g_config = NULL;
|
||||||
static const useconds_t _g_watchers_polling = 100000;
|
static const useconds_t _g_watchers_polling = 100000;
|
||||||
|
|
||||||
@@ -669,10 +670,15 @@ static struct janus_plugin_result *_plugin_handle_message(
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (!strcmp(request_str, "features")) {
|
} else if (!strcmp(request_str, "features")) {
|
||||||
|
const char *const stun_host = getenv("JANUS_USTREAMER_STUN_HOST");
|
||||||
|
const char *const stun_port = getenv("JANUS_USTREAMER_STUN_PORT");
|
||||||
json_t *const features = json_pack(
|
json_t *const features = json_pack(
|
||||||
"{sbsb}",
|
"{s:b, s:b, s:{s:s, s:i}}",
|
||||||
"audio", (_g_rtpa != NULL),
|
"audio", (_g_rtpa != NULL),
|
||||||
"mic", (_g_rtpa != NULL && _g_config->aplay_dev_name != NULL)
|
"mic", (_g_rtpa != NULL && _g_config->aplay_dev_name != NULL),
|
||||||
|
"stun",
|
||||||
|
"host", (stun_host != NULL ? stun_host : ""),
|
||||||
|
"port", (stun_port != NULL ? atoi(stun_port) : 0)
|
||||||
);
|
);
|
||||||
PUSH_STATUS("features", features, NULL);
|
PUSH_STATUS("features", features, NULL);
|
||||||
json_decref(features);
|
json_decref(features);
|
||||||
|
|||||||
3
lib.mk
3
lib.mk
@@ -1,3 +0,0 @@
|
|||||||
define optbool
|
|
||||||
$(filter $(shell echo $(1) | tr A-Z a-z), yes on 1)
|
|
||||||
endef
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Manpage for ustreamer-dump.
|
.\" Manpage for ustreamer-dump.
|
||||||
.\" Open an issue or pull request to https://github.com/pikvm/ustreamer to correct errors or typos
|
.\" Open an issue or pull request to https://github.com/pikvm/ustreamer to correct errors or typos
|
||||||
.TH USTREAMER-DUMP 1 "version 6.30" "January 2021"
|
.TH USTREAMER-DUMP 1 "version 6.32" "January 2021"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
ustreamer-dump \- Dump uStreamer's memory sink to file
|
ustreamer-dump \- Dump uStreamer's memory sink to file
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
.\" Manpage for ustreamer.
|
.\" Manpage for ustreamer.
|
||||||
.\" Open an issue or pull request to https://github.com/pikvm/ustreamer to correct errors or typos
|
.\" Open an issue or pull request to https://github.com/pikvm/ustreamer to correct errors or typos
|
||||||
.TH USTREAMER 1 "version 6.30" "November 2020"
|
.TH USTREAMER 1 "version 6.32" "November 2020"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
ustreamer \- stream MJPEG video from any V4L2 device to the network
|
ustreamer \- stream MJPEG video from any V4L2 device to the network
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
|
|
||||||
pkgname=ustreamer
|
pkgname=ustreamer
|
||||||
pkgver=6.30
|
pkgver=6.32
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="Lightweight and fast MJPEG-HTTP streamer"
|
pkgdesc="Lightweight and fast MJPEG-HTTP streamer"
|
||||||
url="https://github.com/pikvm/ustreamer"
|
url="https://github.com/pikvm/ustreamer"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=ustreamer
|
PKG_NAME:=ustreamer
|
||||||
PKG_VERSION:=6.30
|
PKG_VERSION:=6.32
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_MAINTAINER:=Maxim Devaev <mdevaev@gmail.com>
|
PKG_MAINTAINER:=Maxim Devaev <mdevaev@gmail.com>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
-include ../config.mk
|
|
||||||
|
|
||||||
R_DESTDIR ?=
|
R_DESTDIR ?=
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
|
|
||||||
|
|||||||
@@ -16,20 +16,12 @@ def _find_sources() -> list[str]:
|
|||||||
|
|
||||||
def _find_flags() -> dict[str, bool]:
|
def _find_flags() -> dict[str, bool]:
|
||||||
return {
|
return {
|
||||||
key: bool(int(value))
|
key[3:]: (value.strip().lower() in ["true", "on", "1"])
|
||||||
for (key, value) in sorted(os.environ.items())
|
for (key, value) in sorted(os.environ.items())
|
||||||
if key.startswith("WITH_")
|
if key.startswith("MK_WITH_")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def _make_d_flags(flags: dict[str, bool]) -> list[str]:
|
|
||||||
return [
|
|
||||||
f"-D{key}"
|
|
||||||
for (key, value) in flags.items()
|
|
||||||
if value
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def _make_d_features(flags: dict[str, bool]) -> str:
|
def _make_d_features(flags: dict[str, bool]) -> str:
|
||||||
features = " ".join([
|
features = " ".join([
|
||||||
f"{key}={int(value)}"
|
f"{key}={int(value)}"
|
||||||
@@ -42,7 +34,7 @@ def main() -> None:
|
|||||||
flags = _find_flags()
|
flags = _find_flags()
|
||||||
setup(
|
setup(
|
||||||
name="ustreamer",
|
name="ustreamer",
|
||||||
version="6.30",
|
version="6.32",
|
||||||
description="uStreamer tools",
|
description="uStreamer tools",
|
||||||
author="Maxim Devaev",
|
author="Maxim Devaev",
|
||||||
author_email="mdevaev@gmail.com",
|
author_email="mdevaev@gmail.com",
|
||||||
@@ -54,7 +46,6 @@ def main() -> None:
|
|||||||
extra_compile_args=[
|
extra_compile_args=[
|
||||||
"-std=c17", "-D_GNU_SOURCE",
|
"-std=c17", "-D_GNU_SOURCE",
|
||||||
_make_d_features(flags),
|
_make_d_features(flags),
|
||||||
*_make_d_flags(flags),
|
|
||||||
],
|
],
|
||||||
undef_macros=["NDEBUG"],
|
undef_macros=["NDEBUG"],
|
||||||
sources=_find_sources(),
|
sources=_find_sources(),
|
||||||
|
|||||||
36
src/Makefile
36
src/Makefile
@@ -1,7 +1,3 @@
|
|||||||
include ../lib.mk
|
|
||||||
|
|
||||||
|
|
||||||
# =====
|
|
||||||
R_DESTDIR ?=
|
R_DESTDIR ?=
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
|
|
||||||
@@ -50,45 +46,45 @@ _OBJS = $(_USTR_SRCS:%.c=$(_BUILD)/%.o) $(_DUMP_SRCS:%.c=$(_BUILD)/%.o)
|
|||||||
|
|
||||||
|
|
||||||
# =====
|
# =====
|
||||||
ifneq ($(call optbool,$(WITH_PYTHON)),)
|
ifneq ($(MK_WITH_PYTHON),)
|
||||||
override _CFLAGS += -DWITH_PYTHON
|
override _CFLAGS += -DMK_WITH_PYTHON
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_JANUS)),)
|
ifneq ($(MK_WITH_JANUS),)
|
||||||
override _CFLAGS += -DWITH_JANUS
|
override _CFLAGS += -DMK_WITH_JANUS
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_GPIO)),)
|
ifneq ($(MK_WITH_GPIO),)
|
||||||
override _CFLAGS += -DWITH_GPIO $(shell $(PKG_CONFIG) --atleast-version=2 libgpiod 2> /dev/null && echo -DHAVE_GPIOD2)
|
override _CFLAGS += -DMK_WITH_GPIO -DWITH_GPIO $(shell $(PKG_CONFIG) --atleast-version=2 libgpiod 2> /dev/null && echo -DHAVE_GPIOD2)
|
||||||
override _USTR_LDFLAGS += -lgpiod
|
override _USTR_LDFLAGS += -lgpiod
|
||||||
override _USTR_SRCS += $(shell ls ustreamer/gpio/*.c)
|
override _USTR_SRCS += $(shell ls ustreamer/gpio/*.c)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_SYSTEMD)),)
|
ifneq ($(MK_WITH_SYSTEMD),)
|
||||||
override _CFLAGS += -DWITH_SYSTEMD
|
override _CFLAGS += -DMK_WITH_SYSTEMD -DWITH_SYSTEMD
|
||||||
override _USTR_LDFLAGS += -lsystemd
|
override _USTR_LDFLAGS += -lsystemd
|
||||||
override _USTR_SRCS += $(shell ls ustreamer/http/systemd/*.c)
|
override _USTR_SRCS += $(shell ls ustreamer/http/systemd/*.c)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_PTHREAD_NP)),)
|
ifneq ($(MK_WITH_PTHREAD_NP),)
|
||||||
override _CFLAGS += -DWITH_PTHREAD_NP
|
override _CFLAGS += -DMK_WITH_PTHREAD_NP -DWITH_PTHREAD_NP
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_SETPROCTITLE)),)
|
ifneq ($(MK_WITH_SETPROCTITLE),)
|
||||||
override _CFLAGS += -DWITH_SETPROCTITLE
|
override _CFLAGS += -DMK_WITH_SETPROCTITLE -DWITH_SETPROCTITLE
|
||||||
ifeq ($(shell uname -s | tr A-Z a-z),linux)
|
ifeq ($(shell uname -s | tr A-Z a-z),linux)
|
||||||
override _USTR_LDFLAGS += -lbsd
|
override _USTR_LDFLAGS += -lbsd
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_PDEATHSIG)),)
|
ifneq ($(MK_WITH_PDEATHSIG),)
|
||||||
override _CFLAGS += -DWITH_PDEATHSIG
|
override _CFLAGS += -DMK_WITH_PDEATHSIG -DWITH_PDEATHSIG
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(call optbool,$(WITH_V4P)),)
|
ifneq ($(MK_WITH_V4P),)
|
||||||
override _TARGETS += $(_V4P)
|
override _TARGETS += $(_V4P)
|
||||||
override _OBJS += $(_V4P_SRCS:%.c=$(_BUILD)/%.o)
|
override _OBJS += $(_V4P_SRCS:%.c=$(_BUILD)/%.o)
|
||||||
override _CFLAGS += -DWITH_V4P $(shell $(PKG_CONFIG) --cflags libdrm)
|
override _CFLAGS += -DMK_WITH_V4P -DWITH_V4P $(shell $(PKG_CONFIG) --cflags libdrm)
|
||||||
override _V4P_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm)
|
override _V4P_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm)
|
||||||
override _USTR_SRCS += $(shell ls libs/drm/*.c)
|
override _USTR_SRCS += $(shell ls libs/drm/*.c)
|
||||||
override _USTR_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm)
|
override _USTR_LDFLAGS += $(shell $(PKG_CONFIG) --libs libdrm)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#define US_VERSION_MAJOR 6
|
#define US_VERSION_MAJOR 6
|
||||||
#define US_VERSION_MINOR 30
|
#define US_VERSION_MINOR 32
|
||||||
|
|
||||||
#define US_MAKE_VERSION2(_major, _minor) #_major "." #_minor
|
#define US_MAKE_VERSION2(_major, _minor) #_major "." #_minor
|
||||||
#define US_MAKE_VERSION1(_major, _minor) US_MAKE_VERSION2(_major, _minor)
|
#define US_MAKE_VERSION1(_major, _minor) US_MAKE_VERSION2(_major, _minor)
|
||||||
|
|||||||
@@ -581,49 +581,49 @@ static int _check_instance_id(const char *str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void _features(void) {
|
static void _features(void) {
|
||||||
# ifdef WITH_PYTHON
|
# ifdef MK_WITH_PYTHON
|
||||||
puts("+ WITH_PYTHON");
|
puts("+ WITH_PYTHON");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_PYTHON");
|
puts("- WITH_PYTHON");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_JANUS
|
# ifdef MK_WITH_JANUS
|
||||||
puts("+ WITH_JANUS");
|
puts("+ WITH_JANUS");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_JANUS");
|
puts("- WITH_JANUS");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_V4P
|
# ifdef MK_WITH_V4P
|
||||||
puts("+ WITH_V4P");
|
puts("+ WITH_V4P");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_V4P");
|
puts("- WITH_V4P");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_GPIO
|
# ifdef MK_WITH_GPIO
|
||||||
puts("+ WITH_GPIO");
|
puts("+ WITH_GPIO");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_GPIO");
|
puts("- WITH_GPIO");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_SYSTEMD
|
# ifdef MK_WITH_SYSTEMD
|
||||||
puts("+ WITH_SYSTEMD");
|
puts("+ WITH_SYSTEMD");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_SYSTEMD");
|
puts("- WITH_SYSTEMD");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_PTHREAD_NP
|
# ifdef MK_WITH_PTHREAD_NP
|
||||||
puts("+ WITH_PTHREAD_NP");
|
puts("+ WITH_PTHREAD_NP");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_PTHREAD_NP");
|
puts("- WITH_PTHREAD_NP");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_SETPROCTITLE
|
# ifdef MK_WITH_SETPROCTITLE
|
||||||
puts("+ WITH_SETPROCTITLE");
|
puts("+ WITH_SETPROCTITLE");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_SETPROCTITLE");
|
puts("- WITH_SETPROCTITLE");
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef WITH_PDEATHSIG
|
# ifdef MK_WITH_PDEATHSIG
|
||||||
puts("+ WITH_PDEATHSIG");
|
puts("+ WITH_PDEATHSIG");
|
||||||
# else
|
# else
|
||||||
puts("- WITH_PDEATHSIG");
|
puts("- WITH_PDEATHSIG");
|
||||||
|
|||||||
Reference in New Issue
Block a user