Skip to content

Commit a594678

Browse files
committed
Squash #1685, #1282, #1547: Support ARM platform. 5.0.5
1 parent efdbf37 commit a594678

File tree

285 files changed

+12725
-1672
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

285 files changed

+12725
-1672
lines changed

.circleci/config.yml

+24
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,28 @@ jobs:
123123
- run: |
124124
echo "Build SRS C++98(ANSI), no FFmpeg-fit" &&
125125
cd trunk && ./configure --cxx11=off --cxx14=off --ffmpeg-fit=off && make
126+
build-cross-build-armv7:
127+
docker:
128+
- image: ossrs/srs:ubuntu16
129+
steps:
130+
- checkout
131+
- run: |
132+
echo "Cross build SRS for armv7" &&
133+
cd trunk &&
134+
./configure --cross-build --cc=arm-linux-gnueabihf-gcc --cxx=arm-linux-gnueabihf-g++ \
135+
--ar=arm-linux-gnueabihf-ar --ld=arm-linux-gnueabihf-ld --randlib=arm-linux-gnueabihf-randlib &&
136+
make
137+
build-cross-build-aarch64:
138+
docker:
139+
- image: ossrs/srs:ubuntu16
140+
steps:
141+
- checkout
142+
- run: |
143+
echo "Cross build SRS for aarch64" &&
144+
cd trunk &&
145+
./configure --cross-build --cc=aarch64-linux-gnu-gcc --cxx=aarch64-linux-gnu-g++ \
146+
--ar=aarch64-linux-gnu-ar --ld=aarch64-linux-gnu-ld --randlib=aarch64-linux-gnu-randlib &&
147+
make
126148
workflows:
127149
version: 2
128150
build_and_test:
@@ -142,3 +164,5 @@ workflows:
142164
- build-u20-baseline
143165
- build-u20-srt
144166
- build-c7-ansi-noff
167+
- build-cross-build-armv7
168+
- build-cross-build-aarch64

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ The changelog for SRS.
66

77
## SRS 5.0 Changelog
88

9+
* v5.0, 2021-06-22, Squash: Support ARM platform. 5.0.5
910
* v5.0, 2021-06-16, Change [GB28181](https://github.com/ossrs/srs/issues/1500) to [feature/gb28181](https://github.com/ossrs/srs/tree/feature/gb28181). 5.0.4
1011
* v5.0, 2021-05-31, Use [SPDX-License-Identifier: MIT](https://spdx.dev/ids/). 5.0.3
1112
* v5.0, 2021-05-19, ST: Simplify it, only Linux/Darwin, epoll/kqueue, single process. 5.0.2
@@ -16,6 +17,10 @@ The changelog for SRS.
1617

1718
## SRS 4.0 Changelog
1819

20+
* v4.0, 2021-06-21, Fix [#2413](https://github.com/ossrs/srs/issues/2413), fix RTMP to RTC bug 4.0.130
21+
* v4.0, 2021-06-20, Guess where FFmpeg is. 4.0.129
22+
* v4.0, 2021-06-20, Fix [#1685](https://github.com/ossrs/srs/issues/1685), support RTC cross-build for armv7/armv8(aarch64). 4.0.128
23+
* v4.0, 2021-06-17, Fix [#2214](https://github.com/ossrs/srs/issues/2214), remove detection for gmc and gmp.
1924
* v4.0, 2021-06-16, Change [GB28181](https://github.com/ossrs/srs/issues/1500) to [feature/gb28181](https://github.com/ossrs/srs/tree/feature/gb28181). 4.0.127
2025
* v4.0, 2021-06-01, Support --shared-ffmpeg to link with *.so for LGPL license. 4.0.126
2126
* v4.0, 2021-06-01, Support --shared-srt to link with *.so for MPL license. 4.0.125

README.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
![](http://ossrs.net/gif/v1/sls.gif?site=github.com&path=/srs/develop)
44
[![](https://circleci.com/gh/ossrs/srs/tree/develop.svg?style=svg&circle-token=1ef1d5b5b0cde6c8c282ed856a18199f9e8f85a9)](https://circleci.com/gh/ossrs/srs/tree/develop)
55
[![](https://codecov.io/gh/ossrs/srs/branch/develop/graph/badge.svg)](https://codecov.io/gh/ossrs/srs/branch/develop)
6-
[![](https://cloud.githubusercontent.com/assets/2777660/22814959/c51cbe72-ef92-11e6-81cc-32b657b285d5.png)](https://github.com/ossrs/srs/wiki/v1_CN_Contact#wechat)
6+
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/wechat-badge.png)](../../wikis/Contact#wechat)
7+
[![](https://gitee.com/winlinvip/srs-wiki/raw/master/images/bbs.png)](http://bbs.ossrs.net)
78

89
SRS/4.0,[Leo][release4],是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT。
910

trunk/3rdparty/copy_to_gits.sh

-22
This file was deleted.

trunk/3rdparty/ffmpeg-4-fit/LICENSE.md

+16-25
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@ Specifically, the GPL parts of FFmpeg are:
2121
- `compat/solaris/make_sunver.pl`
2222
- `doc/t2h.pm`
2323
- `doc/texi2pod.pl`
24-
- `libswresample/tests/swresample.c`
24+
- `libswresample/swresample-test.c`
2525
- `tests/checkasm/*`
2626
- `tests/tiny_ssim.c`
2727
- the following filters in libavfilter:
28-
- `signature_lookup.c`
2928
- `vf_blackframe.c`
3029
- `vf_boxblur.c`
3130
- `vf_colormatrix.c`
@@ -35,13 +34,13 @@ Specifically, the GPL parts of FFmpeg are:
3534
- `vf_eq.c`
3635
- `vf_find_rect.c`
3736
- `vf_fspp.c`
37+
- `vf_geq.c`
3838
- `vf_histeq.c`
3939
- `vf_hqdn3d.c`
40+
- `vf_interlace.c`
4041
- `vf_kerndeint.c`
41-
- `vf_lensfun.c` (GPL version 3 or later)
4242
- `vf_mcdeint.c`
4343
- `vf_mpdecimate.c`
44-
- `vf_nnedi.c`
4544
- `vf_owdenoise.c`
4645
- `vf_perspective.c`
4746
- `vf_phase.c`
@@ -50,14 +49,12 @@ Specifically, the GPL parts of FFmpeg are:
5049
- `vf_pullup.c`
5150
- `vf_repeatfields.c`
5251
- `vf_sab.c`
53-
- `vf_signature.c`
5452
- `vf_smartblur.c`
5553
- `vf_spp.c`
5654
- `vf_stereo3d.c`
5755
- `vf_super2xsai.c`
5856
- `vf_tinterlace.c`
5957
- `vf_uspp.c`
60-
- `vf_vaguedenoiser.c`
6158
- `vsrc_mptestsrc.c`
6259

6360
Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
@@ -83,47 +80,41 @@ affect the licensing of binaries resulting from the combination.
8380

8481
### Compatible libraries
8582

86-
The following libraries are under GPL version 2:
87-
- avisynth
83+
The following libraries are under GPL:
8884
- frei0r
8985
- libcdio
90-
- libdavs2
9186
- librubberband
9287
- libvidstab
9388
- libx264
9489
- libx265
9590
- libxavs
96-
- libxavs2
9791
- libxvid
9892

9993
When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by
10094
passing `--enable-gpl` to configure.
10195

102-
The following libraries are under LGPL version 3:
103-
- gmp
104-
- libaribb24
105-
- liblensfun
106-
107-
When combining them with FFmpeg, use the configure option `--enable-version3` to
108-
upgrade FFmpeg to the LGPL v3.
109-
110-
The VMAF, mbedTLS, RK MPI, OpenCORE and VisualOn libraries are under the Apache License
111-
2.0. That license is incompatible with the LGPL v2.1 and the GPL v2, but not with
96+
The OpenCORE and VisualOn libraries are under the Apache License 2.0. That
97+
license is incompatible with the LGPL v2.1 and the GPL v2, but not with
11298
version 3 of those licenses. So to combine these libraries with FFmpeg, the
11399
license version needs to be upgraded by passing `--enable-version3` to configure.
114100

115-
The smbclient library is under the GPL v3, to combine it with FFmpeg,
116-
the options `--enable-gpl` and `--enable-version3` have to be passed to
117-
configure to upgrade FFmpeg to the GPL v3.
118-
119101
### Incompatible libraries
120102

121103
There are certain libraries you can combine with FFmpeg whose licenses are not
122104
compatible with the GPL and/or the LGPL. If you wish to enable these
123105
libraries, even in circumstances that their license may be incompatible, pass
124-
`--enable-nonfree` to configure. This will cause the resulting binary to be
106+
`--enable-nonfree` to configure. But note that if you enable any of these
107+
libraries the resulting binary will be under a complex license mix that is
108+
more restrictive than the LGPL and that may result in additional obligations.
109+
It is possible that these restrictions cause the resulting binary to be
125110
unredistributable.
126111

127112
The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
128113
incompatible with the GPLv2 and v3. To the best of our knowledge, they are
129114
compatible with the LGPL.
115+
116+
The NVENC library, while its header file is licensed under the compatible MIT
117+
license, requires a proprietary binary blob at run time, and is deemed to be
118+
incompatible with the GPL. We are not certain if it is compatible with the
119+
LGPL, but we require `--enable-nonfree` even with LGPL configurations in case
120+
it is not.

trunk/3rdparty/ffmpeg-4-fit/Makefile

+5-7
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ $(TOOLS): %$(EXESUF): %.o
4949
target_dec_%_fuzzer$(EXESUF): target_dec_%_fuzzer.o $(FF_DEP_LIBS)
5050
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
5151

52-
tools/target_dem_fuzzer$(EXESUF): tools/target_dem_fuzzer.o $(FF_DEP_LIBS)
53-
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $^ $(ELIBS) $(FF_EXTRALIBS) $(LIBFUZZER_PATH)
54-
5552
tools/sofa2wavs$(EXESUF): ELIBS = $(FF_EXTRALIBS)
5653
tools/uncoded_frame$(EXESUF): $(FF_DEP_LIBS)
5754
tools/uncoded_frame$(EXESUF): ELIBS = $(FF_EXTRALIBS)
@@ -133,7 +130,7 @@ uninstall-data:
133130

134131
clean::
135132
$(RM) $(CLEANSUFFIXES)
136-
$(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES)) $(addprefix compat/*/*/,$(CLEANSUFFIXES))
133+
$(RM) $(addprefix compat/,$(CLEANSUFFIXES)) $(addprefix compat/*/,$(CLEANSUFFIXES))
137134
$(RM) -r coverage-html
138135
$(RM) -rf coverage.info coverage.info.in lcov
139136

@@ -147,14 +144,15 @@ distclean:: clean
147144
ifeq ($(SRC_LINK),src)
148145
$(RM) src
149146
endif
147+
$(RM) -rf doc/examples/pc-uninstalled
150148

151149
config:
152150
$(SRC_PATH)/configure $(value FFMPEG_CONFIGURATION)
153151

154-
build: all alltools testprogs
155-
check: all alltools testprogs fate
152+
build: all alltools examples testprogs
153+
check: all alltools examples testprogs fate
156154

157-
$(sort $(OUTDIRS)):
155+
$(sort $(OBJDIRS)):
158156
$(Q)mkdir -p $@
159157

160158
# Dummy rule to stop make trying to rebuild removed or renamed headers

0 commit comments

Comments
 (0)