Skip to content

Commit

Permalink
Merge branch 'release/19.07.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
voluntas committed Jul 6, 2019
2 parents ba827dd + c4da32b commit 11957e6
Show file tree
Hide file tree
Showing 77 changed files with 2,431 additions and 4,955 deletions.
101 changes: 101 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
version: 2
jobs:
build_raspbian-stretch_armv7:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-stretch_armv7
working_directory: build
no_output_timeout: 2h
build_raspbian-stretch_armv6:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-stretch_armv6
working_directory: build
no_output_timeout: 2h
build_ubuntu-18.04_armv8:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make ubuntu-18.04_armv8
working_directory: build
no_output_timeout: 2h
build_ubuntu-18.04_x86_64:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make ubuntu-18.04_x86_64
working_directory: build
no_output_timeout: 2h
build_macos:
macos:
xcode: "10.2.1"
steps:
- checkout
- run:
command: make macos
working_directory: build
no_output_timeout: 2h

workflows:
version: 2
# build_workflow:
# jobs:
# - build_raspbian-stretch_armv6
# - build_raspbian-stretch_armv7
# - build_ubuntu-18.04_armv8
# - build_ubuntu-18.04_x86_64
# - build_macos

daily_build_workflow:
triggers:
- schedule:
# UTCで記述する事、この場合は日本時間 22 時にしたいので -9 して 13 にしてある
cron: "0 13 * * *"
filters:
branches:
only:
- develop
jobs:
- build_raspbian-stretch_armv6
- build_raspbian-stretch_armv7
- build_ubuntu-18.04_armv8
- build_ubuntu-18.04_x86_64
weekly_build_workflow:
triggers:
- schedule:
# macOS はリソースが限られてるので週 1 、日曜日のみビルドする
# UTCで記述する事、この場合は日本時間 22 時にしたいので -9 して 13 にしてある
cron: "0 13 * * 0"
filters:
branches:
only:
- develop
jobs:
- build_macos

38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: Bug report
about: 改善に役立つレポートを作成する
title: ''
labels: bug
assignees: ''

---

**バグを説明してください**

バグが何であるかの明確かつ簡潔な説明をお願いします。

**再現する**

問題の再現手順の momo のコマンドを教えてください。

**予想される行動**

何が起こることが予想されていたのかについての明確で簡潔な説明をお願いします。

**カメラ/マイク**

利用しているカメラやマイクの型番を教えてください。

lsusb のコマンド結果を貼ってください。

**自前バイナリ/提供バイナリ**

自前バイナリの方はビルドしたコミットハッシュを、提供バイナリの方はバイナリのファイル名を教えてください。

**--log-level 1 の出力ログ**

txt ファイルにて添付してください。

**追加の情報**

この問題に関する他の情報をここに追加してください。
31 changes: 31 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,37 @@

## develop

## 19.07.0

- [UPDATE] Raspberry Pi の H.264 を MMAL を利用したハードウェアエンコードに変更する
- 720p 30fps や 1080p 20fps を可能にする
- [UPDATE] libwebrtc を M75 に上げる
- libwebrtc のハッシュは 159c16f3ceea1d02d08d51fc83d843019d773ec6
- [UPDATE] libwebrtc を M76 に上げる
- libwebrtc のハッシュは d91cdbd2dd2969889a1affce28c89b8c0f8bcdb7
- [UPDATE] Unified Plan に対応する
- [UPDATE] no-audio 時に AudioDevice を無効化するよう変更
- [UPDATE] CLI11 を v1.8.0 にアップデートする
- [UPDATE] JSON v3.6.1 にアップデートする
- [UPDATE] macOS のビルドドキュメントを独立させる
- [UPDATE] doc/CACHE.md を削除
- make PACKAGE.clean にてビルドキャッシュの削除が可能になったため
- [UPDATE] audio/video の共通オプションを sora のオプションに移動する
- Momo 側ではコーデックやビットレートは指定できない
- p2p の場合は HTML で sdp を切り替えている
- --audio-codec
- --audio-bitrate
- --video-codec
- --video-bitrate
- [UPDATE] WebRTC Signaling Server Ayame 19.07.0 に追従する
- [ADD] WebRTC Signaling Server Ayame に対応しました
- https://github.com/OpenAyame/ayame
- [ADD] Circle CI で Linux 版を毎日 22:00 に自動ビルドする
- [ADD] Circle CI で macOS 版を毎週日曜日 22:00 に自動ビルドする
- [FIX] macOS でデバイスがつかめなくなっていたのを修正する
- ただし --fixed-resolution 必須
- [FIX] ROS 対応がビルドできなくなっていたのを修正する

## 19.02.0

- [UPDATE] webrtc.js / p2p.html のリファクタリング
Expand Down
84 changes: 37 additions & 47 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ include VERSION
# USE_ROS: ROS を使っているかどうか
# 有効な値は 0, 1
#
# USE_IL_ENCODER: ハードウェアエンコーダを利用するかどうか
# USE_MMAL_ENCODER: ハードウェアエンコーダを利用するかどうか
# 有効な値は 0, 1
#
# BOOST_ROOT: Boost のインストール先ディレクトリ
Expand Down Expand Up @@ -50,7 +50,7 @@ ifeq ($(PACKAGE_NAME),raspbian-stretch_armv6)
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv6
USE_ROS ?= 0
USE_IL_ENCODER ?= 1
USE_MMAL_ENCODER ?= 1
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/raspbian-stretch_armv6
Expand All @@ -61,7 +61,7 @@ else ifeq ($(PACKAGE_NAME),raspbian-stretch_armv7)
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv7
USE_ROS ?= 0
USE_IL_ENCODER ?= 1
USE_MMAL_ENCODER ?= 1
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/raspbian-stretch_armv7
Expand All @@ -72,28 +72,28 @@ else ifeq ($(PACKAGE_NAME),ubuntu-16.04_armv7_ros)
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv7
USE_ROS ?= 1
USE_IL_ENCODER ?= 1
USE_MMAL_ENCODER ?= 1
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/ubuntu-16.04_armv7_ros
SYSROOT ?= /root/rootfs
else ifeq ($(PACKAGE_NAME),ubuntu-16.04_armv8)
else ifeq ($(PACKAGE_NAME),ubuntu-18.04_armv8)
TARGET_OS ?= linux
TARGET_OS_LINUX ?= ubuntu-16.04
TARGET_OS_LINUX ?= ubuntu-18.04
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv8
USE_ROS ?= 0
USE_IL_ENCODER ?= 0
USE_MMAL_ENCODER ?= 0
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/ubuntu-16.04_armv8
WEBRTC_LIB_ROOT ?= /root/webrtc-build/ubuntu-18.04_armv8
SYSROOT ?= /root/rootfs
else ifeq ($(PACKAGE_NAME),ubuntu-16.04_x86_64_ros)
TARGET_OS ?= linux
TARGET_OS_LINUX ?= ubuntu-16.04
TARGET_ARCH ?= x86_64
USE_ROS ?= 1
USE_IL_ENCODER ?= 0
USE_MMAL_ENCODER ?= 0
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/ubuntu-16.04_x86_64_ros
Expand All @@ -102,15 +102,15 @@ else ifeq ($(PACKAGE_NAME),ubuntu-18.04_x86_64)
TARGET_OS_LINUX ?= ubuntu-18.04
TARGET_ARCH ?= x86_64
USE_ROS ?= 0
USE_IL_ENCODER ?= 0
USE_MMAL_ENCODER ?= 0
BOOST_ROOT ?= /root/boost-$(BOOST_VERSION)
WEBRTC_SRC_ROOT ?= /root/webrtc/src
WEBRTC_LIB_ROOT ?= /root/webrtc-build/ubuntu-18.04_x86_64
else ifeq ($(PACKAGE_NAME),macos)
TARGET_OS ?= macos
TARGET_ARCH ?= x86_64
USE_ROS ?= 0
USE_IL_ENCODER ?= 0
USE_MMAL_ENCODER ?= 0
BOOST_ROOT ?= $(CURDIR)/build/macos/boost-$(BOOST_VERSION)
# CURDIR を付けると、ar に渡す時に引数が長すぎるって怒られたので、
# 相対パスで指定する。
Expand Down Expand Up @@ -152,8 +152,8 @@ else
HAS_ERROR = 1
endif

ifndef USE_IL_ENCODER
$(info - USE_IL_ENCODER が指定されていません)
ifndef USE_MMAL_ENCODER
$(info - USE_MMAL_ENCODER が指定されていません)
HAS_ERROR = 1
endif

Expand Down Expand Up @@ -262,16 +262,14 @@ ifeq ($(TARGET_OS),linux)
endif

# ilclient の設定
ifeq ($(USE_IL_ENCODER),1)
ifeq ($(USE_MMAL_ENCODER),1)
ifeq ($(TARGET_OS_LINUX),raspbian-stretch)
VC_PATH = $(SYSROOT)/opt/vc
else
VC_PATH = $(SYSROOT)/usr
endif

IL_SOURCES = $(wildcard libs/ilclient/*.c)
IL_OBJECTS = $(addprefix $(BUILD_ROOT)/,$(patsubst %.c,%.o,$(IL_SOURCES)))
IL_CFLAGS = \
MMAL_CFLAGS = \
-DSTANDALONE \
-D__STDC_CONSTANT_MACROS \
-D__STDC_LIMIT_MACROS \
Expand All @@ -293,28 +291,26 @@ ifeq ($(TARGET_OS),linux)
-DHAVE_LIBBCM_HOST \
-DUSE_EXTERNAL_LIBBCM_HOST \
-DUSE_VCHIQ_ARM
IL_INCLUDES = \
-I$(VC_PATH)/include/ \
-I$(VC_PATH)/include/interface/vcos/pthreads \
-I$(VC_PATH)/include/interface/vmcs_host/linux
CFLAGS += \
-DUSE_IL_ENCODER=1 \
$(IL_CFLAGS) \
-I$(VC_PATH)/include/ \
-Ilibs/ilclient/ \
-I.
-DUSE_MMAL_ENCODER=1 \
$(MMAL_CFLAGS) \
-I$(VC_PATH)/include/
LDFLAGS += \
-L$(VC_PATH)/lib/ \
-lbrcmGLESv2 \
-lbrcmEGL \
-lopenmaxil \
-lbcm_host \
-lcontainers \
-lvcos \
-lvcsm \
-lvchiq_arm \
-lmmal \
-lmmal_core \
-lmmal_components \
-lmmal_util \
-lmmal_vc_client \
-lm
SOURCES += $(shell find hwenc_il -maxdepth 1 -name '*.cpp')
LDFLAGS += -lilclient
LIBILCLIENT = $(BUILD_ROOT)/libilclient.a
SOURCES += $(shell find src/hwenc_mmal -maxdepth 1 -name '*.cpp')
endif
endif
endif
Expand All @@ -323,6 +319,8 @@ endif
ifeq ($(TARGET_OS),macos)
CC = $(WEBRTC_SRC_ROOT)/third_party/llvm-build/Release+Asserts/bin/clang
CXX = $(WEBRTC_SRC_ROOT)/third_party/llvm-build/Release+Asserts/bin/clang++
# brew でインストールした ar コマンドを使うとエラーになるので、明示的にフルパスを指定する
AR = /usr/bin/ar

SDK_PATH = $(shell xcrun --sdk macosx --show-sdk-path)
CC += --sysroot=$(SDK_PATH)
Expand Down Expand Up @@ -365,6 +363,13 @@ else
CFLAGS += -nostdinc++ -isystem$(WEBRTC_SRC_ROOT)/buildtools/third_party/libc++/trunk/include
endif

SOURCES += $(shell find src -maxdepth 1 -name '*.cpp')
SOURCES += $(shell find src/p2p -name '*.cpp')
SOURCES += $(shell find src/rtc -name '*.cpp')
SOURCES += $(shell find src/ayame -name '*.cpp')
SOURCES += $(shell find src/sora -name '*.cpp')
SOURCES += $(shell find src/ws -name '*.cpp')

ifeq ($(USE_ROS),1)
CFLAGS += -DHAVE_JPEG=1 -DUSE_ROS=1 -I$(SYSROOT)/opt/ros/$(ROS_VERSION)/include
LDFLAGS += \
Expand All @@ -379,9 +384,7 @@ ifeq ($(USE_ROS),1)
-lcpp_common \
-lrosconsole_log4cxx \
-lrosconsole_backend_interface
SOURCES += $(shell find src -name '*.cpp')
else
SOURCES += $(shell find src -type d -name 'ros' -prune -o -type f -name '*.cpp' -print)
SOURCES += $(shell find src/ros -name '*.cpp')
endif

OBJECTS = $(addprefix $(BUILD_ROOT)/,$(patsubst %.mm,%.o,$(patsubst %.cpp,%.o,$(SOURCES))))
Expand Down Expand Up @@ -433,14 +436,6 @@ $(BUILD_ROOT):
# ビルド用ディレクトリを作っておく
mkdir -p $(BUILD_ROOT)

# libs/ilclient 以下のソースのビルドルール
$(BUILD_ROOT)/libs/ilclient/%.o: libs/ilclient/%.c | $(BUILD_ROOT)
@mkdir -p `dirname $@`
$(CC) $(IL_CFLAGS) $(IL_INCLUDES) -c $< -o $@ -Wno-deprecated-declarations

$(BUILD_ROOT)/libilclient.a: $(IL_OBJECTS) | $(BUILD_ROOT)
$(AR) -rcT $@ $^

# WEBRTC_LIB_ROOT が空の時に find するとエラーになるので、
# WEBRTC_LIB_ROOT が定義されている時だけルールを定義する
ifdef WEBRTC_LIB_ROOT
Expand All @@ -451,11 +446,6 @@ $(BUILD_ROOT)/libwebrtc.a: $(shell find $(WEBRTC_LIB_ROOT)/obj -name '*.o') | $(

endif

# hwenc_il 以下のソースのビルドルール
$(BUILD_ROOT)/hwenc_il/%.o: hwenc_il/%.cpp | $(BUILD_ROOT)
@mkdir -p `dirname $@`
$(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@

# src 以下のソースのビルドルール
$(BUILD_ROOT)/src/%.o: src/%.cpp | $(BUILD_ROOT)
@mkdir -p `dirname $@`
Expand All @@ -465,7 +455,7 @@ $(BUILD_ROOT)/src/%.o: src/%.mm | $(BUILD_ROOT)
@mkdir -p `dirname $@`
$(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@

$(BUILD_ROOT)/momo: $(LIBILCLIENT) $(BUILD_ROOT)/libwebrtc.a $(OBJECTS) | $(BUILD_ROOT)
$(BUILD_ROOT)/momo: $(BUILD_ROOT)/libwebrtc.a $(OBJECTS) | $(BUILD_ROOT)
$(CXX) -o $(BUILD_ROOT)/momo $(OBJECTS) $(LDFLAGS)

.PHONY: momo
Expand Down
Loading

0 comments on commit 11957e6

Please sign in to comment.