Skip to content

Commit

Permalink
Merge branch 'release/19.08.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
voluntas committed Aug 16, 2019
2 parents 11957e6 + 8c7953f commit a9c84ae
Show file tree
Hide file tree
Showing 36 changed files with 1,498 additions and 383 deletions.
35 changes: 17 additions & 18 deletions .circleci/config.yml
@@ -1,29 +1,31 @@
version: 2
jobs:
build_raspbian-stretch_armv7:
build_raspbian-buster_armv7:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-stretch_armv7
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-buster_armv7
working_directory: build
no_output_timeout: 2h
build_raspbian-stretch_armv6:
build_raspbian-buster_armv6:
docker:
- image: docker:18.09.6
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
version: 18.09.3
- run:
command: apk add make bash git
- run:
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-stretch_armv6
command: DOCKER_BUILDKIT=1 NOTTY=1 NOMOUNT=1 make raspbian-buster_armv6
working_directory: build
no_output_timeout: 2h
build_ubuntu-18.04_armv8:
Expand All @@ -32,6 +34,7 @@ jobs:
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
version: 18.09.3
- run:
command: apk add make bash git
Expand All @@ -45,6 +48,7 @@ jobs:
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
version: 18.09.3
- run:
command: apk add make bash git
Expand All @@ -64,38 +68,33 @@ jobs:

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
build_workflow:
jobs:
- build_raspbian-buster_armv6
- build_raspbian-buster_armv7

daily_build_workflow:
triggers:
- schedule:
# UTCで記述する事、この場合は日本時間 22 時にしたいので -9 して 13 にしてある
cron: "0 13 * * *"
# UTCで記述する事、この場合は日本時間 9 時にしたいので -9 して 0 にしてある
cron: "0 0 * * *"
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"
# UTCで記述する事、この場合は日本時間 9 時にしたいので -9 して 0 にしてある
cron: "0 0 * * 0"
filters:
branches:
only:
- develop
jobs:
- build_macos

70 changes: 70 additions & 0 deletions CHANGES.md
Expand Up @@ -11,36 +11,106 @@

## develop

## 19.08.0

- [UPDATE] nlohmann/json を v3.7.0 にアップデートする
- @melpon
- [UPDATE] Raspbian Buster に対応
- @voluntas
- [UPDATE] libwebrtc M77 コミットポジションを 6 にする
- libwebrtc のハッシュは 71e2db7296a26c6d9b18269668d74b764a320680
- @voluntas
- [UPDATE] libwebrtc M77 コミットポジションを 3 にする
- libwebrtc のハッシュは 3d8e627cb5893714a66082544d562cbf4a561515
- @voluntas
- [UPDATE] libwebrtc M76 コミットポジションを 3 にする
- libwebrtc のハッシュは 9863f3d246e2da7a2e1f42bbc5757f6af5ec5682
- @voluntas
- [UPDATE] I420 の時にもハードウェアでリサイズする
- @tnoho
- [UPDATE] libwebrtc M77 に対応する
- libwebrtc のハッシュは 3d8e627cb5893714a66082544d562cbf4a561515
- @kdxu
- [ADD] Raspberry Pi 向けに --use-native オプションを追加しました
- USB カメラ用で MJPEG をハードウェアデコードします
- @tnoho
- [ADD] Raspberry Pi 向けに --force-i420 オプションを追加しました
- Raspberry Pi 専用カメラ用で MJPEG を使えないため HD 以上の解像度でも MJPEG にせず強制的に I420 でキャプチャーする
- @tnoho
- [ADD] Ayame のサブコマンドに --signaling-key を追加する
- @kdxu @tnoho
- [ADD] Ayame 利用時に iceServers の払い出しに対応する
- 独自の STUN/TURN が利用可能になる
- @kdxu @tnoho
- [CHANGE] Ayame のサブコマンドで client id を optional に指定できるように修正する
- @kdxu
- [CHANGE] ./momo p2p を ./momo test に変更する
- @melpon
- [FIX] Ayame の candidate 交換の際の JSON スキーマが間違っていたのを修正する
- @kdxu
- [FIX] Ayame の sdp 交換の際の type が answer 固定になっていたのを修正する
- @kdxu
- [FIX] Ayame で peer connection 生成後に createOffer して send する実装が漏れていたので追加する
- @kdxu
- [FIX] Ayame で momo を起動したあとに映像を受信できない場合が発生するのバグを修正する
- @kdxu
- [FIX] Raspberry Pi でハードウェアエンコーダを利用した際に再接続できなくなることがある問題の修正
- @tnoho
- [FIX] libwebrtc M77 で作成した armv6 バイナリがクラッシュしてしまう問題の対策
- @tnoho
- [FIX] macOS 版 Momo で VideoToolbox 利用時の解像度変更時に落ちる問題の修正
- @hakobera
- [FIX] macOS 版がビルドは成功するが動作させようとするとセグメンテーションフォルトする問題の修正
- @hakobera
- [FIX] Raspberry Pi でハードウェアエンコーダを利用した際にGPUのメモリを食いつぶしてしまう問題の修正
- @tnoho

## 19.07.0

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

## 19.02.0

Expand Down
17 changes: 9 additions & 8 deletions Makefile
Expand Up @@ -11,7 +11,7 @@ include VERSION
# 有効な値は linux, macos
#
# TARGET_OS_LINUX: TARGET_OS が linux の場合の詳細な OS の情報
# 有効な値は raspbian-stretch, ubuntu-16.04, ubuntu-18.04
# 有効な値は raspbian-buster, ubuntu-16.04, ubuntu-18.04
#
# TARGET_ARCH: ビルド対象の動作する CPU
# 有効な値は x86_64, arm
Expand Down Expand Up @@ -44,27 +44,27 @@ include VERSION
#
# MOMO_LDFLAGS: C リンカーに追加で渡すフラグ。サニタイズフラグや追加のリンクオブジェクトを入れることを想定している。

ifeq ($(PACKAGE_NAME),raspbian-stretch_armv6)
ifeq ($(PACKAGE_NAME),raspbian-buster_armv6)
TARGET_OS ?= linux
TARGET_OS_LINUX ?= raspbian-stretch
TARGET_OS_LINUX ?= raspbian-buster
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv6
USE_ROS ?= 0
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
WEBRTC_LIB_ROOT ?= /root/webrtc-build/raspbian-buster_armv6
SYSROOT ?= /root/rootfs
else ifeq ($(PACKAGE_NAME),raspbian-stretch_armv7)
else ifeq ($(PACKAGE_NAME),raspbian-buster_armv7)
TARGET_OS ?= linux
TARGET_OS_LINUX ?= raspbian-stretch
TARGET_OS_LINUX ?= raspbian-buster
TARGET_ARCH ?= arm
TARGET_ARCH_ARM ?= armv7
USE_ROS ?= 0
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
WEBRTC_LIB_ROOT ?= /root/webrtc-build/raspbian-buster_armv7
SYSROOT ?= /root/rootfs
else ifeq ($(PACKAGE_NAME),ubuntu-16.04_armv7_ros)
TARGET_OS ?= linux
Expand Down Expand Up @@ -263,7 +263,7 @@ ifeq ($(TARGET_OS),linux)

# ilclient の設定
ifeq ($(USE_MMAL_ENCODER),1)
ifeq ($(TARGET_OS_LINUX),raspbian-stretch)
ifeq ($(TARGET_OS_LINUX),raspbian-buster)
VC_PATH = $(SYSROOT)/opt/vc
else
VC_PATH = $(SYSROOT)/usr
Expand Down Expand Up @@ -310,6 +310,7 @@ ifeq ($(TARGET_OS),linux)
-lmmal_util \
-lmmal_vc_client \
-lm
SOURCES += $(shell find src/v4l2_video_capturer -maxdepth 1 -name '*.cpp')
SOURCES += $(shell find src/hwenc_mmal -maxdepth 1 -name '*.cpp')
endif
endif
Expand Down
18 changes: 13 additions & 5 deletions README.md
Expand Up @@ -30,6 +30,10 @@ Momo はオープンソースソフトウェアですが、開発については

まずは Discord にてご連絡ください。

## 既知の問題について

[既知の問題に対する解決方針](https://github.com/shiguredo/momo/issues/89)

## バイナリ提供について

Raspberry Pi 向けのバイナリのみ提供を行っています。
Expand All @@ -38,9 +42,9 @@ H.264 ハードウェアエンコーダーのライセンスが Raspberry Pi 以

## 動作環境

- Raspbian Stretch ARMv7
- Raspbian Buster ARMv7
- Raspberry Pi 3 B/B+ で動作
- Raspbian Stretch ARMv6
- Raspbian Buster ARMv6
- Raspberry Pi Zero W/WH で動作
- Ubuntu 18.04 x86_64
- Ubuntu 18.04 ARMv8
Expand Down Expand Up @@ -76,8 +80,6 @@ Linux 版 Momo のビルドに挑戦したい人は [BUILD_LINUX.md](doc/BUILD_L

macOS 版 Momo のビルドに挑戦したい人は [BUILD_MACOS.md](doc/BUILD_MACOS.md) をお読みください。

macOS 版 Momo でハードウェアエンコーダを利用する際は --fixed-resolution を必ず指定するようにしてください

## パッケージを作成する

パッケージ作成に挑戦したい人は [PACKAGE.md](doc/PACKAGE.md) をお読みください。
Expand All @@ -87,7 +89,7 @@ macOS 版 Momo でハードウェアエンコーダを利用する際は --fixed
Apache License 2.0

```
Copyright 2018-2019, Shiguredo Inc, tnoho and melpon
Copyright 2018-2019, Shiguredo Inc, tnoho and melpon and kdxu
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -135,3 +137,9 @@ WebRTC Native Client に対する有料でのサポート契約については W
- [ティアフォーにおける自動運転車両の遠隔監視・操縦システムのご紹介 \- Tier IV Tech Blog](https://tech.tier4.jp/entry/2019/01/22/170032)
- [Run WebRTC Native Client Momo on Raspberry Pi 3B \| SHIROKU\.NET](https://shiroku.net/robotics/run-webrtc-native-client-momo-on-raspberry-pi-3b/)
- [WebRTC Native Client Momo がスゲエ – papalagi\.org](https://papalagi.org/blog/archives/635)

## Windows 版について

Windows 版 Momo をビルドするツールを販売しております。興味のある方は以下をご確認ください。

[Windows 版 WebRTC Native Client Momo](https://gist.github.com/voluntas/7af1596557121796123ac7dee9e3f5a4)
8 changes: 5 additions & 3 deletions THANKS
@@ -1,10 +1,12 @@
以下の人が momo に貢献しています:

tnoho
melpon
bemarble
messi49
hakobera
kdxu
Kadoshita
mganeko
anatawa12
messi49
bemarble
msnoigrs
mganeko
12 changes: 6 additions & 6 deletions VERSION
@@ -1,16 +1,16 @@
# 各種ライブラリのバージョン情報
# 項目を変更してビルドすれば各環境へ反映される(ように作る)
MOMO_VERSION=19.07.0
WEBRTC_VERSION=76
WEBRTC_COMMIT=d91cdbd2dd2969889a1affce28c89b8c0f8bcdb7
MOMO_VERSION=19.08.0
WEBRTC_VERSION=77
WEBRTC_COMMIT=71e2db7296a26c6d9b18269668d74b764a320680
BOOST_VERSION=1.70.0
JSON_VERSION=3.6.1
JSON_VERSION=3.7.0
CLI11_VERSION=1.8.0

# パッケージ名の一覧
PACKAGE_NAMES= \
raspbian-stretch_armv6 \
raspbian-stretch_armv7 \
raspbian-buster_armv6 \
raspbian-buster_armv7 \
ubuntu-16.04_armv7_ros \
ubuntu-18.04_armv8 \
ubuntu-16.04_x86_64_ros \
Expand Down
4 changes: 2 additions & 2 deletions build/Makefile
Expand Up @@ -109,12 +109,12 @@ $(foreach package_name, $(PACKAGE_NAMES), $(eval $(call generateDockerRules,$(pa

.PHONY: macos
macos: macos.prepare
make -C .. MOMO_CFLAGS="-O2" PACKAGE_NAME=macos MOMO_VERSION=${MOMO_VERSION} momo
make -C .. MOMO_CFLAGS="-O2 -fobjc-arc" PACKAGE_NAME=macos MOMO_VERSION=${MOMO_VERSION} momo

.PHONY: macos.package
macos.package: macos.prepare
# momo を package モードでビルドし直す
rm -f ../_build/macos/momo && make -C .. MOMO_CFLAGS="-O2" PACKAGE_NAME=macos BUILD_MODE=package momo
rm -f ../_build/macos/momo && make -C .. MOMO_CFLAGS="-O2 -fobjc-arc" PACKAGE_NAME=macos BUILD_MODE=package momo

# パッケージのバイナリを作る
rm -rf package/momo-$(MOMO_VERSION)_macos
Expand Down
2 changes: 2 additions & 0 deletions build/macos/Makefile
Expand Up @@ -37,10 +37,12 @@ $(LIBWEBRTC): check
prepare_webrtc_macos "" $(WEBRTC_COMMIT) $(CURDIR)/webrtc && \
cd $(CURDIR)/webrtc/src && \
patch -p2 < $(CURDIR)/../../patch/4k.patch && \
patch -p2 < $(CURDIR)/../../patch/macos_h264_encoder.patch && \
gn gen $(CURDIR)/webrtc-build/macos --args='target_os="mac" is_debug=false rtc_include_tests=false rtc_build_examples=false rtc_use_h264=false is_component_build=false use_rtti=true libcxx_abi_unstable=false' && \
ninja -C $(CURDIR)/webrtc-build/macos && \
ninja -C $(CURDIR)/webrtc-build/macos \
builtin_audio_decoder_factory \
default_task_queue_factory \
native_api \
default_codec_factory_objc \
peerconnection \
Expand Down

0 comments on commit a9c84ae

Please sign in to comment.