winlin

publish 1.0r1 release(1.0.20)

@@ -35,7 +35,7 @@ git clone https://git.oschina.net/winlinvip/srs.oschina.git @@ -35,7 +35,7 @@ git clone https://git.oschina.net/winlinvip/srs.oschina.git
35 公用机器(LiveShow): [https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow) <br/> 35 公用机器(LiveShow): [https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_LiveShow) <br/>
36 捐款(Donation): [GitHub](http://winlinvip.github.io/srs.release/donation/index.html) 36 捐款(Donation): [GitHub](http://winlinvip.github.io/srs.release/donation/index.html)
37 [阿里云镜像](http://www.ossrs.net/srs.release/donation/index.html) ,查看 37 [阿里云镜像](http://www.ossrs.net/srs.release/donation/index.html) ,查看
38 -[捐献墙(Donations)](https://github.com/winlinvip/simple-rtmp-server/blob/master/DONATIONS.txt)<br/> 38 +[捐献墙(Donations)](https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt)<br/>
39 39
40 ## About 40 ## About
41 41
@@ -216,6 +216,16 @@ the GIT usage( @@ -216,6 +216,16 @@ the GIT usage(
216 git clone https://git.oschina.net/winlinvip/srs.oschina.git 216 git clone https://git.oschina.net/winlinvip/srs.oschina.git
217 ``` 217 ```
218 218
  219 +Gitlab: [https://gitlab.com/winlinvip/srs-gitlab](https://gitlab.com/winlinvip/srs-gitlab) ,
  220 +the GIT usage(
  221 +[CN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Git),
  222 +[EN](https://github.com/winlinvip/simple-rtmp-server/wiki/v1_EN_Git)
  223 +)
  224 +
  225 +```bash
  226 +git clone https://gitlab.com/winlinvip/srs-gitlab.git
  227 +```
  228 +
219 ## Usage 229 ## Usage
220 230
221 <strong>Step 1:</strong> get SRS 231 <strong>Step 1:</strong> get SRS
@@ -306,13 +316,13 @@ Donation:<br/> @@ -306,13 +316,13 @@ Donation:<br/>
306 [http://www.ossrs.net/srs.release/donation/index.html](http://www.ossrs.net/srs.release/donation/index.html) 316 [http://www.ossrs.net/srs.release/donation/index.html](http://www.ossrs.net/srs.release/donation/index.html)
307 317
308 Donations:<br/> 318 Donations:<br/>
309 -[https://github.com/winlinvip/simple-rtmp-server/blob/master/DONATIONS.txt]  
310 -(https://github.com/winlinvip/simple-rtmp-server/blob/master/DONATIONS.txt) 319 +[https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt]
  320 +(https://github.com/winlinvip/simple-rtmp-server/blob/develop/DONATIONS.txt)
311 321
312 ## System Requirements 322 ## System Requirements
313 Supported operating systems and hardware: 323 Supported operating systems and hardware:
314 * All Linux , both 32 and 64 bits 324 * All Linux , both 32 and 64 bits
315 -* All hardware. 325 +* All hardware with x86/x86_64/arm/mips cpu.
316 326
317 ## Summary 327 ## Summary
318 1. 简洁稳定:Simple, also stable enough. 328 1. 简洁稳定:Simple, also stable enough.
@@ -373,6 +383,14 @@ Supported operating systems and hardware: @@ -373,6 +383,14 @@ Supported operating systems and hardware:
373 * 2013-10-17, Created.<br/> 383 * 2013-10-17, Created.<br/>
374 384
375 ## History 385 ## History
  386 +* <strong>v1.0, 2015-01-15, [1.0r1 release(1.0.20)](https://github.com/winlinvip/simple-rtmp-server/releases/tag/1.0r1) released. 59472 lines.</strong>
  387 +* v1.0, 2015-01-08, hotfix [#281](https://github.com/winlinvip/simple-rtmp-server/issues/281), fix hls bug ignore type-9 send aud. 1.0.20
  388 +* v1.0, 2015-01-03, hotfix to remove the pageUrl for http callback. 1.0.19
  389 +* v1.0, 2015-01-02, hotfix [#207](https://github.com/winlinvip/simple-rtmp-server/issues/207), trim the last 0 of log. 1.0.18
  390 +* v1.0, 2015-01-02, hotfix [#216](https://github.com/winlinvip/simple-rtmp-server/issues/216), http-callback post in application/json content-type. 1.0.17
  391 +* v1.0, 2015-01-01, hotfix [#270](https://github.com/winlinvip/simple-rtmp-server/issues/270), memory leak for http client post. 1.0.16
  392 +* v1.0, 2014-12-29, hotfix [#267](https://github.com/winlinvip/simple-rtmp-server/issues/267), the forward dest ep should use server. 1.0.15
  393 +* v1.0, 2014-12-29, hotfix [#268](https://github.com/winlinvip/simple-rtmp-server/issues/268), the hls pcr is negative when startup. 1.0.14
376 * v1.0, 2014-12-26, use master as main stable branch with hotfixes. 1.0.13 394 * v1.0, 2014-12-26, use master as main stable branch with hotfixes. 1.0.13
377 * v1.0, 2014-12-22, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), ignore NALU when sequence header to make HLS happy. 1.0.12 395 * v1.0, 2014-12-22, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), ignore NALU when sequence header to make HLS happy. 1.0.12
378 * v1.0, 2014-12-20, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), support disconnect publish connect when hls error. 1.0.11 396 * v1.0, 2014-12-20, hotfix [#264](https://github.com/winlinvip/simple-rtmp-server/issues/264), support disconnect publish connect when hls error. 1.0.11
@@ -723,41 +741,6 @@ Schema#2: SRS RTMP Edge server pull stream from origin (or upstream SRS @@ -723,41 +741,6 @@ Schema#2: SRS RTMP Edge server pull stream from origin (or upstream SRS
723 RTMP Edge server), then delivery to Client. 741 RTMP Edge server), then delivery to Client.
724 </pre> 742 </pre>
725 743
726 -### (plan) SRS Multiple processes Architecture(design by wenjie)  
727 -  
728 -<pre>  
729 - +---------------+ +--------+  
730 - | upnode server | + client +  
731 - +-------+-------+ +---+----+  
732 - -------------+------------network-------+---------  
733 - | |  
734 - +--------+ +----+-----------+ +----+----------+  
735 - | master +--fork->-+ back source(1) +-->-pull-+ stream 1-N(2) +  
736 - +---+----+ +----------------+ +-------+-------+  
737 - | |  
738 - +-------------------------------------fork--->-----+  
739 - | +-------------+  
740 - +-------------------fork-->-+ http/vod(3) |  
741 - +-------------+  
742 -Remark:  
743 -(1) back source process: create by master process, get stream from  
744 - upnode server if edge, create stream if origin, serve the stream  
745 - process.  
746 -(2) stream process: create by master process, get stream from back  
747 - source process, serve the client.  
748 -(3) the embeded mininum http server, also provides vod service. for  
749 - http server, it provides http api, hls(live/vod) delivery. for  
750 - vod server, it slice the file to hls(m3u8/ts).  
751 -Remark:  
752 -(a) This multiple processes architecture is design by wenjie, it's a  
753 - very simple and powerful multiple process architecture, for the  
754 - master no need to pass between stream process.  
755 -(b) The CLI architecture is similar to this, instead, cli process  
756 - will collect informations from all stream process, master process  
757 - only send signals to child processes.  
758 -(c) Maybe multiple thread is ok? By winlin.  
759 -</pre>  
760 -  
761 ### Bandwidth Test Workflow 744 ### Bandwidth Test Workflow
762 745
763 <pre> 746 <pre>
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 2
3 cat <<END >>/dev/null 3 cat <<END >>/dev/null
4 touch git-ensure-commit && 4 touch git-ensure-commit &&
5 -echo "cd `pwd` && git checkout master &&" >git-ensure-commit && 5 +echo "cd `pwd` && git checkout develop &&" >git-ensure-commit &&
6 echo "bash `pwd`/git.commit.sh" >>git-ensure-commit && 6 echo "bash `pwd`/git.commit.sh" >>git-ensure-commit &&
7 chmod +x git-ensure-commit && 7 chmod +x git-ensure-commit &&
8 sudo rm -f /bin/git-ensure-commit && 8 sudo rm -f /bin/git-ensure-commit &&
@@ -23,7 +23,7 @@ work_dir=`(cd ${work_dir}/.. && pwd)` @@ -23,7 +23,7 @@ work_dir=`(cd ${work_dir}/.. && pwd)`
23 product_dir=$work_dir 23 product_dir=$work_dir
24 24
25 # allow start script from any dir 25 # allow start script from any dir
26 -cd $work_dir && git checkout master 26 +cd $work_dir && git checkout develop
27 27
28 . ${product_dir}/scripts/_log.sh 28 . ${product_dir}/scripts/_log.sh
29 ret=$?; if [[ $ret -ne 0 ]]; then exit $ret; fi 29 ret=$?; if [[ $ret -ne 0 ]]; then exit $ret; fi
@@ -44,6 +44,7 @@ function remote_check() @@ -44,6 +44,7 @@ function remote_check()
44 remote_check origin git@github.com:winlinvip/simple-rtmp-server.git 44 remote_check origin git@github.com:winlinvip/simple-rtmp-server.git
45 remote_check srs.csdn git@code.csdn.net:winlinvip/srs-csdn.git 45 remote_check srs.csdn git@code.csdn.net:winlinvip/srs-csdn.git
46 remote_check srs.oschina git@git.oschina.net:winlinvip/srs.oschina.git 46 remote_check srs.oschina git@git.oschina.net:winlinvip/srs.oschina.git
  47 +remote_check srs.gitlab git@gitlab.com:winlinvip/srs-gitlab.git
47 ok_msg "remote check ok" 48 ok_msg "remote check ok"
48 49
49 function sync_push() 50 function sync_push()
@@ -64,10 +65,12 @@ function sync_push() @@ -64,10 +65,12 @@ function sync_push()
64 sync_push --all origin 65 sync_push --all origin
65 sync_push --all srs.csdn 66 sync_push --all srs.csdn
66 sync_push --all srs.oschina 67 sync_push --all srs.oschina
  68 +sync_push --all srs.gitlab
67 ok_msg "push refs ok" 69 ok_msg "push refs ok"
68 70
69 sync_push --tags srs.csdn 71 sync_push --tags srs.csdn
70 sync_push --tags srs.oschina 72 sync_push --tags srs.oschina
  73 +sync_push --tags srs.gitlab
71 ok_msg "push tags ok" 74 ok_msg "push tags ok"
72 75
73 exit 0 76 exit 0
@@ -337,6 +337,13 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample @@ -337,6 +337,13 @@ int SrsAvcAacCodec::video_avc_demux(char* data, int size, SrsCodecSample* sample
337 337
338 sample->frame_type = (SrsCodecVideoAVCFrame)frame_type; 338 sample->frame_type = (SrsCodecVideoAVCFrame)frame_type;
339 339
  340 + // ignore info frame without error,
  341 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
  342 + if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
  343 + srs_warn("hls igone the info frame, ret=%d", ret);
  344 + return ret;
  345 + }
  346 +
340 // only support h.264/avc 347 // only support h.264/avc
341 if (codec_id != SrsCodecVideoAVC) { 348 if (codec_id != SrsCodecVideoAVC) {
342 ret = ERROR_HLS_DECODE_ERROR; 349 ret = ERROR_HLS_DECODE_ERROR;
@@ -119,7 +119,7 @@ int SrsForwarder::on_publish() @@ -119,7 +119,7 @@ int SrsForwarder::on_publish()
119 if (_ep_forward == SRS_CONSTS_LOCALHOST) { 119 if (_ep_forward == SRS_CONSTS_LOCALHOST) {
120 dest_ep += req->host; 120 dest_ep += req->host;
121 } else { 121 } else {
122 - dest_ep += _ep_forward; 122 + dest_ep += server;
123 } 123 }
124 dest_ep += ":"; 124 dest_ep += ":";
125 dest_ep += port; 125 dest_ep += port;
@@ -368,11 +368,16 @@ private: @@ -368,11 +368,16 @@ private:
368 } 368 }
369 static char* write_pcr(char* p, int64_t pcr) 369 static char* write_pcr(char* p, int64_t pcr)
370 { 370 {
371 - *p++ = (char) (pcr >> 25);  
372 - *p++ = (char) (pcr >> 17);  
373 - *p++ = (char) (pcr >> 9);  
374 - *p++ = (char) (pcr >> 1);  
375 - *p++ = (char) (pcr << 7 | 0x7e); 371 + // the pcr=dts-delay
  372 + // and the pcr maybe negative
  373 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/268
  374 + int64_t v = srs_max(0, pcr);
  375 +
  376 + *p++ = (char) (v >> 25);
  377 + *p++ = (char) (v >> 17);
  378 + *p++ = (char) (v >> 9);
  379 + *p++ = (char) (v >> 1);
  380 + *p++ = (char) (v << 7 | 0x7e);
376 *p++ = 0; 381 *p++ = 0;
377 382
378 return p; 383 return p;
@@ -1271,9 +1276,13 @@ int SrsHlsCache::cache_video(SrsAvcAacCodec* codec, SrsCodecSample* sample) @@ -1271,9 +1276,13 @@ int SrsHlsCache::cache_video(SrsAvcAacCodec* codec, SrsCodecSample* sample)
1271 // 6: Supplemental enhancement information (SEI) sei_rbsp( ), page 61 1276 // 6: Supplemental enhancement information (SEI) sei_rbsp( ), page 61
1272 // @see: ngx_rtmp_hls_append_aud 1277 // @see: ngx_rtmp_hls_append_aud
1273 if (!aud_sent) { 1278 if (!aud_sent) {
1274 - if (nal_unit_type == 9) { 1279 + // @remark, when got type 9, we donot send aud_nal, but it will make
  1280 + // ios unhappy, so we remove it.
  1281 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/281
  1282 + /*if (nal_unit_type == 9) {
1275 aud_sent = true; 1283 aud_sent = true;
1276 - } 1284 + }*/
  1285 +
1277 if (nal_unit_type == 1 || nal_unit_type == 5 || nal_unit_type == 6) { 1286 if (nal_unit_type == 1 || nal_unit_type == 5 || nal_unit_type == 6) {
1278 // for type 6, append a aud with type 9. 1287 // for type 6, append a aud with type 9.
1279 vb->append((const char*)aud_nal, sizeof(aud_nal)); 1288 vb->append((const char*)aud_nal, sizeof(aud_nal));
@@ -1486,6 +1495,12 @@ int SrsHls::on_video(SrsSharedPtrMessage* video) @@ -1486,6 +1495,12 @@ int SrsHls::on_video(SrsSharedPtrMessage* video)
1486 return ret; 1495 return ret;
1487 } 1496 }
1488 1497
  1498 + // ignore info frame,
  1499 + // @see https://github.com/winlinvip/simple-rtmp-server/issues/288#issuecomment-69863909
  1500 + if (sample->frame_type == SrsCodecVideoAVCFrameVideoInfoFrame) {
  1501 + return ret;
  1502 + }
  1503 +
1489 if (codec->video_codec_id != SrsCodecVideoAVC) { 1504 if (codec->video_codec_id != SrsCodecVideoAVC) {
1490 return ret; 1505 return ret;
1491 } 1506 }
@@ -81,7 +81,7 @@ int SrsHttpClient::post(SrsHttpUri* uri, string req, string& res) @@ -81,7 +81,7 @@ int SrsHttpClient::post(SrsHttpUri* uri, string req, string& res)
81 << "Connection: Keep-Alive" << __SRS_CRLF 81 << "Connection: Keep-Alive" << __SRS_CRLF
82 << "Content-Length: " << std::dec << req.length() << __SRS_CRLF 82 << "Content-Length: " << std::dec << req.length() << __SRS_CRLF
83 << "User-Agent: " << RTMP_SIG_SRS_NAME << RTMP_SIG_SRS_VERSION << __SRS_CRLF 83 << "User-Agent: " << RTMP_SIG_SRS_NAME << RTMP_SIG_SRS_VERSION << __SRS_CRLF
84 - << "Content-Type: text/html" << __SRS_CRLF 84 + << "Content-Type: application/json" << __SRS_CRLF
85 << __SRS_CRLF 85 << __SRS_CRLF
86 << req; 86 << req;
87 87
@@ -111,6 +111,8 @@ int SrsHttpClient::post(SrsHttpUri* uri, string req, string& res) @@ -111,6 +111,8 @@ int SrsHttpClient::post(SrsHttpUri* uri, string req, string& res)
111 } 111 }
112 srs_info("parse http post response success."); 112 srs_info("parse http post response success.");
113 113
  114 + srs_freep(msg);
  115 +
114 return ret; 116 return ret;
115 } 117 }
116 118
@@ -112,8 +112,7 @@ void SrsHttpHooks::on_close(string url, int client_id, string ip, SrsRequest* re @@ -112,8 +112,7 @@ void SrsHttpHooks::on_close(string url, int client_id, string ip, SrsRequest* re
112 << __SRS_JFIELD_ORG("client_id", client_id) << __SRS_JFIELD_CONT 112 << __SRS_JFIELD_ORG("client_id", client_id) << __SRS_JFIELD_CONT
113 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT 113 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT
114 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT 114 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT
115 - << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT  
116 - << __SRS_JFIELD_STR("pageUrl", req->pageUrl) 115 + << __SRS_JFIELD_STR("app", req->app)
117 << __SRS_JOBJECT_END; 116 << __SRS_JOBJECT_END;
118 std::string data = ss.str(); 117 std::string data = ss.str();
119 std::string res; 118 std::string res;
@@ -158,7 +157,6 @@ int SrsHttpHooks::on_publish(string url, int client_id, string ip, SrsRequest* r @@ -158,7 +157,6 @@ int SrsHttpHooks::on_publish(string url, int client_id, string ip, SrsRequest* r
158 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT 157 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT
159 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT 158 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT
160 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT 159 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT
161 - << __SRS_JFIELD_STR("pageUrl", req->pageUrl) << __SRS_JFIELD_CONT  
162 << __SRS_JFIELD_STR("stream", req->stream) 160 << __SRS_JFIELD_STR("stream", req->stream)
163 << __SRS_JOBJECT_END; 161 << __SRS_JOBJECT_END;
164 std::string data = ss.str(); 162 std::string data = ss.str();
@@ -204,7 +202,6 @@ void SrsHttpHooks::on_unpublish(string url, int client_id, string ip, SrsRequest @@ -204,7 +202,6 @@ void SrsHttpHooks::on_unpublish(string url, int client_id, string ip, SrsRequest
204 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT 202 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT
205 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT 203 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT
206 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT 204 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT
207 - << __SRS_JFIELD_STR("pageUrl", req->pageUrl) << __SRS_JFIELD_CONT  
208 << __SRS_JFIELD_STR("stream", req->stream) 205 << __SRS_JFIELD_STR("stream", req->stream)
209 << __SRS_JOBJECT_END; 206 << __SRS_JOBJECT_END;
210 std::string data = ss.str(); 207 std::string data = ss.str();
@@ -250,7 +247,6 @@ int SrsHttpHooks::on_play(string url, int client_id, string ip, SrsRequest* req) @@ -250,7 +247,6 @@ int SrsHttpHooks::on_play(string url, int client_id, string ip, SrsRequest* req)
250 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT 247 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT
251 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT 248 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT
252 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT 249 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT
253 - << __SRS_JFIELD_STR("pageUrl", req->pageUrl) << __SRS_JFIELD_CONT  
254 << __SRS_JFIELD_STR("stream", req->stream) 250 << __SRS_JFIELD_STR("stream", req->stream)
255 << __SRS_JOBJECT_END; 251 << __SRS_JOBJECT_END;
256 std::string data = ss.str(); 252 std::string data = ss.str();
@@ -296,7 +292,6 @@ void SrsHttpHooks::on_stop(string url, int client_id, string ip, SrsRequest* req @@ -296,7 +292,6 @@ void SrsHttpHooks::on_stop(string url, int client_id, string ip, SrsRequest* req
296 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT 292 << __SRS_JFIELD_STR("ip", ip) << __SRS_JFIELD_CONT
297 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT 293 << __SRS_JFIELD_STR("vhost", req->vhost) << __SRS_JFIELD_CONT
298 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT 294 << __SRS_JFIELD_STR("app", req->app) << __SRS_JFIELD_CONT
299 - << __SRS_JFIELD_STR("pageUrl", req->pageUrl) << __SRS_JFIELD_CONT  
300 << __SRS_JFIELD_STR("stream", req->stream) 295 << __SRS_JFIELD_STR("stream", req->stream)
301 << __SRS_JOBJECT_END; 296 << __SRS_JOBJECT_END;
302 std::string data = ss.str(); 297 std::string data = ss.str();
@@ -31,7 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 // current release version 31 // current release version
32 #define VERSION_MAJOR 1 32 #define VERSION_MAJOR 1
33 #define VERSION_MINOR 0 33 #define VERSION_MINOR 0
34 -#define VERSION_REVISION 13 34 +#define VERSION_REVISION 21
  35 +
35 // server info. 36 // server info.
36 #define RTMP_SIG_SRS_KEY "SRS" 37 #define RTMP_SIG_SRS_KEY "SRS"
37 #define RTMP_SIG_SRS_ROLE "origin/edge server" 38 #define RTMP_SIG_SRS_ROLE "origin/edge server"
@@ -1207,12 +1207,12 @@ VOID TEST(KernelStreamTest, StreamRead8Bytes) @@ -1207,12 +1207,12 @@ VOID TEST(KernelStreamTest, StreamRead8Bytes)
1207 data[18] = 0x13; 1207 data[18] = 0x13;
1208 data[19] = 0x14; 1208 data[19] = 0x14;
1209 1209
1210 - EXPECT_EQ(0x0102030405060708, s.read_8bytes());  
1211 - EXPECT_EQ(0x090a0b0c0d0e0f10, s.read_8bytes()); 1210 + EXPECT_EQ(0x0102030405060708LL, s.read_8bytes());
  1211 + EXPECT_EQ(0x090a0b0c0d0e0f10LL, s.read_8bytes());
1212 1212
1213 s.skip(-1 * s.pos()); 1213 s.skip(-1 * s.pos());
1214 s.skip(5); 1214 s.skip(5);
1215 - EXPECT_EQ(0x060708090a0b0c0d, s.read_8bytes()); 1215 + EXPECT_EQ(0x060708090a0b0c0dLL, s.read_8bytes());
1216 } 1216 }
1217 1217
1218 /** 1218 /**
@@ -1365,8 +1365,8 @@ VOID TEST(KernelStreamTest, StreamWrite8Bytes) @@ -1365,8 +1365,8 @@ VOID TEST(KernelStreamTest, StreamWrite8Bytes)
1365 1365
1366 EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024)); 1366 EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
1367 1367
1368 - s.write_8bytes(0x1011121314151617);  
1369 - s.write_8bytes(0x1819202122232425); 1368 + s.write_8bytes(0x1011121314151617LL);
  1369 + s.write_8bytes(0x1819202122232425LL);
1370 1370
1371 s.skip(-1 * s.pos()); 1371 s.skip(-1 * s.pos());
1372 EXPECT_EQ(0x10, s.read_1bytes()); 1372 EXPECT_EQ(0x10, s.read_1bytes());