diff --git a/README.md b/README.md
index a37ee269a..cbce9fe74 100755
--- a/README.md
+++ b/README.md
@@ -157,6 +157,9 @@ For previous versions, please read:
## V3 changes
+* v3.0, 2020-01-26, Fix [#607][bug #607], set RTMP identifying recursive depth to 3.
+* v3.0, 2020-01-25, Fix [#878][bug #878], remove deprecated #EXT-X-ALLOW-CACHE for HLS. 3.0.108
+* v3.0, 2020-01-25, Fix [#703][bug #703], drop video data util sps/pps. 3.0.107
* v3.0, 2020-01-25, Fix [#1108][bug #1108], reap DVR tmp file when unpublish. 3.0.106
* v3.0, 2020-01-21, [3.0 alpha9(3.0.105)][r3.0a9] released. 121577 lines.
* v3.0, 2020-01-21, Fix [#1221][bug #1221], remove complex configure options. 3.0.104
@@ -784,7 +787,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Stream Delivery**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| RTMP | Stable | Stable | Stable | Stable | Stable |
| HLS | Stable | Stable | X | Stable | Stable |
@@ -792,12 +795,13 @@ Comparing with other media servers, SRS is much better and stronger, for details
| HLS(aonly) | Stable | X | X | Stable | Stable |
| HDS | Experiment| X | X | Stable | Stable |
| MPEG-DASH | Experiment| X | X | X | X |
+| SRT | Experiment| X | X | X | Stable |
| HTTP Server | Stable | Stable | X | X | Stable |
**Cluster**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| RTMP Edge | Stable | X | X | Stable | X |
| RTMP Backup | Stable | X | X | X | X |
@@ -810,7 +814,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Stream Service**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| DVR | Stable | Stable | X | X | Stable |
| DVR API | Stable | Stable | X | X | X |
@@ -827,7 +831,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Efficiency**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| Concurrency | 7.5k | 3k | 2k | 2k | 3k |
|MultipleProcess| Experiment| Stable | X | X | X |
@@ -837,7 +841,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Stream Caster**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| Ingest | Stable | X | X | X | X |
| Push MPEGTS | Experiment| X | X | X | Stable |
@@ -847,7 +851,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Debug System**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| BW check | Stable | X | X | X | X |
| Tracable Log | Stable | X | X | X | X |
@@ -855,7 +859,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Docs**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| Demos | Stable | X | X | X | X |
| WIKI(EN+CN) | Stable | EN only | X | X | Stable |
@@ -863,7 +867,7 @@ Comparing with other media servers, SRS is much better and stronger, for details
**Others**
-| Feature | SRS | NGINX | CRTMPD | FMS | WOWZA |
+| Feature | SRS | NGINX | CRTMPD | AMS | WOWZA |
| ----------- | ------- | ----- | --------- | -------- | ------ |
| ARM/MIPS | Stable | Stable | X | X | X |
| Client Library| Stable | X | X | X | X |
@@ -1119,6 +1123,15 @@ Gitlab: [https://gitlab.com/winlinvip/srs-gitlab][gitlab], the GIT usage([CN][v1
git clone https://gitlab.com/winlinvip/srs-gitlab.git
```
+| Branch | Cost | Size | CMD |
+| --- | --- | --- | --- |
+| 3.0release | 2m19.931s | 262MB | git clone -b 3.0release https://gitee.com/winlinvip/srs.oschina.git |
+| 3.0release | 0m56.515s | 95MB | git clone -b 3.0release --depth=1 https://gitee.com/winlinvip/srs.oschina.git |
+| develop | 2m22.430s | 234MB | git clone -b develop https://gitee.com/winlinvip/srs.oschina.git |
+| develop | 0m46.421s | 42MB | git clone -b develop --depth=1 https://gitee.com/winlinvip/srs.oschina.git |
+| min | 2m22.865s | 217MB | git clone -b min https://gitee.com/winlinvip/srs.oschina.git |
+| min | 0m36.472s | 11MB | git clone -b min --depth=1 https://gitee.com/winlinvip/srs.oschina.git |
+
## System Requirements
Supported operating systems and hardware:
@@ -1631,6 +1644,9 @@ Winlin
[bug #463]: https://github.com/ossrs/srs/issues/463
[bug #1147]: https://github.com/ossrs/srs/issues/1147
[bug #1108]: https://github.com/ossrs/srs/issues/1108
+[bug #703]: https://github.com/ossrs/srs/issues/703
+[bug #878]: https://github.com/ossrs/srs/issues/878
+[bug #607]: https://github.com/ossrs/srs/issues/607
[bug #xxxxxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxxxxx
[exo #828]: https://github.com/google/ExoPlayer/pull/828
diff --git a/trunk/conf/full.conf b/trunk/conf/full.conf
index b4f0f95c3..20c52ae13 100644
--- a/trunk/conf/full.conf
+++ b/trunk/conf/full.conf
@@ -196,7 +196,7 @@ stream_caster {
# the caster type of stream, the casters:
# mpegts_over_udp, MPEG-TS over UDP caster.
# rtsp, Real Time Streaming Protocol (RTSP).
- # flv, FLV over HTTP POST.
+ # flv, FLV over HTTP by POST.
caster mpegts_over_udp;
# the output rtmp url.
# for mpegts_over_udp caster, the typically output url:
diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp
index 72ec535ca..7470acf2a 100644
--- a/trunk/src/app/srs_app_hls.cpp
+++ b/trunk/src/app/srs_app_hls.cpp
@@ -751,11 +751,9 @@ srs_error_t SrsHlsMuxer::_refresh_m3u8(string m3u8_file)
// #EXTM3U\n
// #EXT-X-VERSION:3\n
- // #EXT-X-ALLOW-CACHE:YES\n
std::stringstream ss;
- ss << "#EXTM3U" << SRS_CONSTS_LF
- << "#EXT-X-VERSION:3" << SRS_CONSTS_LF
- << "#EXT-X-ALLOW-CACHE:YES" << SRS_CONSTS_LF;
+ ss << "#EXTM3U" << SRS_CONSTS_LF;
+ ss << "#EXT-X-VERSION:3" << SRS_CONSTS_LF;
// #EXT-X-MEDIA-SEQUENCE:4294967295\n
SrsHlsSegment* first = dynamic_cast(segments->first());
diff --git a/trunk/src/app/srs_app_source.cpp b/trunk/src/app/srs_app_source.cpp
index f48528015..dd42b5590 100755
--- a/trunk/src/app/srs_app_source.cpp
+++ b/trunk/src/app/srs_app_source.cpp
@@ -1047,6 +1047,12 @@ srs_error_t SrsOriginHub::on_video(SrsSharedPtrMessage* shared_video, bool is_se
srs_avc_level2str(c->avc_level).c_str(), c->width, c->height,
c->video_data_rate / 1000, c->frame_rate, c->duration);
}
+
+ // Ignore video data when no sps/pps
+ // @bug https://github.com/ossrs/srs/issues/703#issuecomment-578393155
+ if (format->vcodec && !format->vcodec->is_avc_codec_ok()) {
+ return err;
+ }
if ((err = hls->on_video(msg, format)) != srs_success) {
// apply the error strategy for hls.