winlin

merge from 2.0release. refine the thread, protocol, kbps code. 2.0.166

@@ -566,6 +566,7 @@ Supported operating systems and hardware: @@ -566,6 +566,7 @@ Supported operating systems and hardware:
566 566
567 ### SRS 2.0 history 567 ### SRS 2.0 history
568 568
  569 +* v2.0, 2015-05-23, refine the thread, protocol, kbps code. 2.0.166
569 * v2.0, 2015-05-23, fix [#391](https://github.com/simple-rtmp-server/srs/issues/391) copy request for async call. 570 * v2.0, 2015-05-23, fix [#391](https://github.com/simple-rtmp-server/srs/issues/391) copy request for async call.
570 * v2.0, 2015-05-22, fix [#397](https://github.com/simple-rtmp-server/srs/issues/397) the USER_HZ maybe not 100. 2.0.165 571 * v2.0, 2015-05-22, fix [#397](https://github.com/simple-rtmp-server/srs/issues/397) the USER_HZ maybe not 100. 2.0.165
571 * v2.0, 2015-05-22, for [#400](https://github.com/simple-rtmp-server/srs/issues/400), parse when got entire http header, by feilong. 2.0.164. 572 * v2.0, 2015-05-22, for [#400](https://github.com/simple-rtmp-server/srs/issues/400), parse when got entire http header, by feilong. 2.0.164.
@@ -154,26 +154,26 @@ KERNEL_INCS="src/kernel"; MODULE_DIR=${KERNEL_INCS} . auto/modules.sh @@ -154,26 +154,26 @@ KERNEL_INCS="src/kernel"; MODULE_DIR=${KERNEL_INCS} . auto/modules.sh
154 KERNEL_OBJS="${MODULE_OBJS[@]}" 154 KERNEL_OBJS="${MODULE_OBJS[@]}"
155 # 155 #
156 #RTMP Protocol, depends on core/kernel, provides rtmp/htttp protocol features. 156 #RTMP Protocol, depends on core/kernel, provides rtmp/htttp protocol features.
157 -MODULE_ID="RTMP" 157 +MODULE_ID="PROTOCOL"
158 MODULE_DEPENDS=("CORE" "KERNEL") 158 MODULE_DEPENDS=("CORE" "KERNEL")
159 ModuleLibIncs=(${SRS_OBJS_DIR} ${LibSSLRoot}) 159 ModuleLibIncs=(${SRS_OBJS_DIR} ${LibSSLRoot})
160 MODULE_FILES=("srs_rtmp_amf0" "srs_rtmp_io" "srs_rtmp_stack" "srs_rtmp_sdk" 160 MODULE_FILES=("srs_rtmp_amf0" "srs_rtmp_io" "srs_rtmp_stack" "srs_rtmp_sdk"
161 - "srs_rtmp_handshake" "srs_rtmp_utility" "srs_rtmp_msg_array" "srs_rtmp_buffer"  
162 - "srs_raw_avc" "srs_rtsp_stack" "srs_http_stack") 161 + "srs_rtmp_handshake" "srs_rtmp_utility" "srs_rtmp_msg_array" "srs_protocol_buffer"
  162 + "srs_raw_avc" "srs_rtsp_stack" "srs_http_stack" "srs_protocol_kbps")
163 RTMP_INCS="src/protocol"; MODULE_DIR=${RTMP_INCS} . auto/modules.sh 163 RTMP_INCS="src/protocol"; MODULE_DIR=${RTMP_INCS} . auto/modules.sh
164 RTMP_OBJS="${MODULE_OBJS[@]}" 164 RTMP_OBJS="${MODULE_OBJS[@]}"
165 # 165 #
166 #App Module 166 #App Module
167 if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then 167 if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
168 MODULE_ID="APP" 168 MODULE_ID="APP"
169 - MODULE_DEPENDS=("CORE" "KERNEL" "RTMP") 169 + MODULE_DEPENDS=("CORE" "KERNEL" "PROTOCOL")
170 ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${SRS_OBJS_DIR}) 170 ModuleLibIncs=(${LibSTRoot} ${LibHttpParserRoot} ${SRS_OBJS_DIR})
171 MODULE_FILES=("srs_app_server" "srs_app_conn" "srs_app_rtmp_conn" "srs_app_st_socket" "srs_app_source" 171 MODULE_FILES=("srs_app_server" "srs_app_conn" "srs_app_rtmp_conn" "srs_app_st_socket" "srs_app_source"
172 "srs_app_refer" "srs_app_hls" "srs_app_forward" "srs_app_encoder" 172 "srs_app_refer" "srs_app_hls" "srs_app_forward" "srs_app_encoder"
173 "srs_app_thread" "srs_app_bandwidth" "srs_app_st" "srs_app_log" "srs_app_config" 173 "srs_app_thread" "srs_app_bandwidth" "srs_app_st" "srs_app_log" "srs_app_config"
174 "srs_app_pithy_print" "srs_app_reload" "srs_app_http_api" "srs_app_http_conn" "srs_app_http_hooks" 174 "srs_app_pithy_print" "srs_app_reload" "srs_app_http_api" "srs_app_http_conn" "srs_app_http_hooks"
175 "srs_app_json" "srs_app_ingest" "srs_app_ffmpeg" "srs_app_utility" "srs_app_dvr" "srs_app_edge" 175 "srs_app_json" "srs_app_ingest" "srs_app_ffmpeg" "srs_app_utility" "srs_app_dvr" "srs_app_edge"
176 - "srs_app_kbps" "srs_app_heartbeat" "srs_app_empty" "srs_app_http_client" 176 + "srs_app_heartbeat" "srs_app_empty" "srs_app_http_client"
177 "srs_app_recv_thread" "srs_app_security" "srs_app_statistic" "srs_app_hds" 177 "srs_app_recv_thread" "srs_app_security" "srs_app_statistic" "srs_app_hds"
178 "srs_app_mpegts_udp" "srs_app_rtsp" "srs_app_listener" "srs_app_async_call" 178 "srs_app_mpegts_udp" "srs_app_rtsp" "srs_app_listener" "srs_app_async_call"
179 "srs_app_caster_flv") 179 "srs_app_caster_flv")
@@ -190,7 +190,7 @@ fi @@ -190,7 +190,7 @@ fi
190 # 190 #
191 #LIBS Module, build libsrs.a for static link. 191 #LIBS Module, build libsrs.a for static link.
192 MODULE_ID="LIBS" 192 MODULE_ID="LIBS"
193 -MODULE_DEPENDS=("CORE" "KERNEL" "RTMP") 193 +MODULE_DEPENDS=("CORE" "KERNEL" "PROTOCOL")
194 ModuleLibIncs=(${SRS_OBJS_DIR}) 194 ModuleLibIncs=(${SRS_OBJS_DIR})
195 MODULE_FILES=("srs_librtmp" "srs_lib_simple_socket" "srs_lib_bandwidth") 195 MODULE_FILES=("srs_librtmp" "srs_lib_simple_socket" "srs_lib_bandwidth")
196 LIBS_INCS="src/libs"; MODULE_DIR=${LIBS_INCS} . auto/modules.sh 196 LIBS_INCS="src/libs"; MODULE_DIR=${LIBS_INCS} . auto/modules.sh
@@ -199,7 +199,7 @@ LIBS_OBJS="${MODULE_OBJS[@]}" @@ -199,7 +199,7 @@ LIBS_OBJS="${MODULE_OBJS[@]}"
199 #Main Module 199 #Main Module
200 if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then 200 if [ $SRS_EXPORT_LIBRTMP_PROJECT = NO ]; then
201 MODULE_ID="MAIN" 201 MODULE_ID="MAIN"
202 - MODULE_DEPENDS=("CORE" "KERNEL" "RTMP" "APP") 202 + MODULE_DEPENDS=("CORE" "KERNEL" "PROTOCOL" "APP")
203 ModuleLibIncs=(${LibSTRoot} ${SRS_OBJS_DIR} ${LibGperfRoot} ${LibHttpParserRoot}) 203 ModuleLibIncs=(${LibSTRoot} ${SRS_OBJS_DIR} ${LibGperfRoot} ${LibHttpParserRoot})
204 MODULE_FILES=("srs_main_server" "srs_main_ingest_hls") 204 MODULE_FILES=("srs_main_server" "srs_main_ingest_hls")
205 # add each modules for main 205 # add each modules for main
@@ -257,7 +257,7 @@ if [ $SRS_UTEST = YES ]; then @@ -257,7 +257,7 @@ if [ $SRS_UTEST = YES ]; then
257 "srs_utest_reload") 257 "srs_utest_reload")
258 ModuleLibIncs=(${SRS_OBJS_DIR} ${LibSTRoot} ${LibSSLRoot}) 258 ModuleLibIncs=(${SRS_OBJS_DIR} ${LibSTRoot} ${LibSSLRoot})
259 ModuleLibFiles=(${LibSTfile} ${LibHttpParserfile} ${LibSSLfile}) 259 ModuleLibFiles=(${LibSTfile} ${LibHttpParserfile} ${LibSSLfile})
260 - MODULE_DEPENDS=("CORE" "KERNEL" "RTMP" "APP") 260 + MODULE_DEPENDS=("CORE" "KERNEL" "PROTOCOL" "APP")
261 MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${APP_OBJS[@]}" 261 MODULE_OBJS="${CORE_OBJS[@]} ${KERNEL_OBJS[@]} ${RTMP_OBJS[@]} ${APP_OBJS[@]}"
262 LINK_OPTIONS="-lpthread ${SrsLinkOptions}" MODULE_DIR="src/utest" APP_NAME="srs_utest" . auto/utest.sh 262 LINK_OPTIONS="-lpthread ${SrsLinkOptions}" MODULE_DIR="src/utest" APP_NAME="srs_utest" . auto/utest.sh
263 fi 263 fi
@@ -48,12 +48,14 @@ file @@ -48,12 +48,14 @@ file
48 protocol readonly separator, 48 protocol readonly separator,
49 ../../src/protocol/srs_http_stack.hpp, 49 ../../src/protocol/srs_http_stack.hpp,
50 ../../src/protocol/srs_http_stack.cpp, 50 ../../src/protocol/srs_http_stack.cpp,
  51 + ../../src/protocol/srs_protocol_kbps.hpp,
  52 + ../../src/protocol/srs_protocol_kbps.cpp,
51 ../../src/protocol/srs_raw_avc.hpp, 53 ../../src/protocol/srs_raw_avc.hpp,
52 ../../src/protocol/srs_raw_avc.cpp, 54 ../../src/protocol/srs_raw_avc.cpp,
53 ../../src/protocol/srs_rtmp_amf0.hpp, 55 ../../src/protocol/srs_rtmp_amf0.hpp,
54 ../../src/protocol/srs_rtmp_amf0.cpp, 56 ../../src/protocol/srs_rtmp_amf0.cpp,
55 - ../../src/protocol/srs_rtmp_buffer.hpp,  
56 - ../../src/protocol/srs_rtmp_buffer.cpp, 57 + ../../src/protocol/srs_protocol_buffer.hpp,
  58 + ../../src/protocol/srs_protocol_buffer.cpp,
57 ../../src/protocol/srs_rtmp_handshake.hpp, 59 ../../src/protocol/srs_rtmp_handshake.hpp,
58 ../../src/protocol/srs_rtmp_handshake.cpp, 60 ../../src/protocol/srs_rtmp_handshake.cpp,
59 ../../src/protocol/srs_rtmp_io.hpp, 61 ../../src/protocol/srs_rtmp_io.hpp,
@@ -105,8 +107,6 @@ file @@ -105,8 +107,6 @@ file
105 ../../src/app/srs_app_ingest.cpp, 107 ../../src/app/srs_app_ingest.cpp,
106 ../../src/app/srs_app_json.hpp, 108 ../../src/app/srs_app_json.hpp,
107 ../../src/app/srs_app_json.cpp, 109 ../../src/app/srs_app_json.cpp,
108 - ../../src/app/srs_app_kbps.hpp,  
109 - ../../src/app/srs_app_kbps.cpp,  
110 ../../src/app/srs_app_listener.hpp, 110 ../../src/app/srs_app_listener.hpp,
111 ../../src/app/srs_app_listener.cpp, 111 ../../src/app/srs_app_listener.cpp,
112 ../../src/app/srs_app_log.hpp, 112 ../../src/app/srs_app_log.hpp,
@@ -80,7 +80,6 @@ @@ -80,7 +80,6 @@
80 <ClInclude Include="..\..\src\app\srs_app_http_hooks.hpp" /> 80 <ClInclude Include="..\..\src\app\srs_app_http_hooks.hpp" />
81 <ClInclude Include="..\..\src\app\srs_app_ingest.hpp" /> 81 <ClInclude Include="..\..\src\app\srs_app_ingest.hpp" />
82 <ClInclude Include="..\..\src\app\srs_app_json.hpp" /> 82 <ClInclude Include="..\..\src\app\srs_app_json.hpp" />
83 - <ClInclude Include="..\..\src\app\srs_app_kbps.hpp" />  
84 <ClInclude Include="..\..\src\app\srs_app_listener.hpp" /> 83 <ClInclude Include="..\..\src\app\srs_app_listener.hpp" />
85 <ClInclude Include="..\..\src\app\srs_app_log.hpp" /> 84 <ClInclude Include="..\..\src\app\srs_app_log.hpp" />
86 <ClInclude Include="..\..\src\app\srs_app_mpegts_udp.hpp" /> 85 <ClInclude Include="..\..\src\app\srs_app_mpegts_udp.hpp" />
@@ -121,7 +120,7 @@ @@ -121,7 +120,7 @@
121 <ClInclude Include="..\..\src\protocol\srs_http_stack.hpp" /> 120 <ClInclude Include="..\..\src\protocol\srs_http_stack.hpp" />
122 <ClInclude Include="..\..\src\protocol\srs_raw_avc.hpp" /> 121 <ClInclude Include="..\..\src\protocol\srs_raw_avc.hpp" />
123 <ClInclude Include="..\..\src\protocol\srs_rtmp_amf0.hpp" /> 122 <ClInclude Include="..\..\src\protocol\srs_rtmp_amf0.hpp" />
124 - <ClInclude Include="..\..\src\protocol\srs_rtmp_buffer.hpp" /> 123 + <ClInclude Include="..\..\src\protocol\srs_protocol_buffer.hpp" />
125 <ClInclude Include="..\..\src\protocol\srs_rtmp_handshake.hpp" /> 124 <ClInclude Include="..\..\src\protocol\srs_rtmp_handshake.hpp" />
126 <ClInclude Include="..\..\src\protocol\srs_rtmp_io.hpp" /> 125 <ClInclude Include="..\..\src\protocol\srs_rtmp_io.hpp" />
127 <ClInclude Include="..\..\src\protocol\srs_rtmp_msg_array.hpp" /> 126 <ClInclude Include="..\..\src\protocol\srs_rtmp_msg_array.hpp" />
@@ -129,6 +128,7 @@ @@ -129,6 +128,7 @@
129 <ClInclude Include="..\..\src\protocol\srs_rtmp_stack.hpp" /> 128 <ClInclude Include="..\..\src\protocol\srs_rtmp_stack.hpp" />
130 <ClInclude Include="..\..\src\protocol\srs_rtmp_utility.hpp" /> 129 <ClInclude Include="..\..\src\protocol\srs_rtmp_utility.hpp" />
131 <ClInclude Include="..\..\src\protocol\srs_rtsp_stack.hpp" /> 130 <ClInclude Include="..\..\src\protocol\srs_rtsp_stack.hpp" />
  131 + <ClInclude Include="..\..\src\protocol\srs_protocol_kbps.hpp" />
132 </ItemGroup> 132 </ItemGroup>
133 <ItemGroup> 133 <ItemGroup>
134 <ClCompile Include="..\..\research\hls\ts_info.cc" /> 134 <ClCompile Include="..\..\research\hls\ts_info.cc" />
@@ -161,7 +161,6 @@ @@ -161,7 +161,6 @@
161 <ClCompile Include="..\..\src\app\srs_app_http_hooks.cpp" /> 161 <ClCompile Include="..\..\src\app\srs_app_http_hooks.cpp" />
162 <ClCompile Include="..\..\src\app\srs_app_ingest.cpp" /> 162 <ClCompile Include="..\..\src\app\srs_app_ingest.cpp" />
163 <ClCompile Include="..\..\src\app\srs_app_json.cpp" /> 163 <ClCompile Include="..\..\src\app\srs_app_json.cpp" />
164 - <ClCompile Include="..\..\src\app\srs_app_kbps.cpp" />  
165 <ClCompile Include="..\..\src\app\srs_app_listener.cpp" /> 164 <ClCompile Include="..\..\src\app\srs_app_listener.cpp" />
166 <ClCompile Include="..\..\src\app\srs_app_log.cpp" /> 165 <ClCompile Include="..\..\src\app\srs_app_log.cpp" />
167 <ClCompile Include="..\..\src\app\srs_app_mpegts_udp.cpp" /> 166 <ClCompile Include="..\..\src\app\srs_app_mpegts_udp.cpp" />
@@ -203,7 +202,7 @@ @@ -203,7 +202,7 @@
203 <ClCompile Include="..\..\src\protocol\srs_http_stack.cpp" /> 202 <ClCompile Include="..\..\src\protocol\srs_http_stack.cpp" />
204 <ClCompile Include="..\..\src\protocol\srs_raw_avc.cpp" /> 203 <ClCompile Include="..\..\src\protocol\srs_raw_avc.cpp" />
205 <ClCompile Include="..\..\src\protocol\srs_rtmp_amf0.cpp" /> 204 <ClCompile Include="..\..\src\protocol\srs_rtmp_amf0.cpp" />
206 - <ClCompile Include="..\..\src\protocol\srs_rtmp_buffer.cpp" /> 205 + <ClCompile Include="..\..\src\protocol\srs_protocol_buffer.cpp" />
207 <ClCompile Include="..\..\src\protocol\srs_rtmp_handshake.cpp" /> 206 <ClCompile Include="..\..\src\protocol\srs_rtmp_handshake.cpp" />
208 <ClCompile Include="..\..\src\protocol\srs_rtmp_io.cpp" /> 207 <ClCompile Include="..\..\src\protocol\srs_rtmp_io.cpp" />
209 <ClCompile Include="..\..\src\protocol\srs_rtmp_msg_array.cpp" /> 208 <ClCompile Include="..\..\src\protocol\srs_rtmp_msg_array.cpp" />
@@ -211,6 +210,7 @@ @@ -211,6 +210,7 @@
211 <ClCompile Include="..\..\src\protocol\srs_rtmp_stack.cpp" /> 210 <ClCompile Include="..\..\src\protocol\srs_rtmp_stack.cpp" />
212 <ClCompile Include="..\..\src\protocol\srs_rtmp_utility.cpp" /> 211 <ClCompile Include="..\..\src\protocol\srs_rtmp_utility.cpp" />
213 <ClCompile Include="..\..\src\protocol\srs_rtsp_stack.cpp" /> 212 <ClCompile Include="..\..\src\protocol\srs_rtsp_stack.cpp" />
  213 + <ClCompile Include="..\..\src\protocol\srs_protocol_kbps.cpp" />
214 </ItemGroup> 214 </ItemGroup>
215 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 215 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
216 <ImportGroup Label="ExtensionTargets"> 216 <ImportGroup Label="ExtensionTargets">
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
7 objects = { 7 objects = {
8 8
9 /* Begin PBXBuildFile section */ 9 /* Begin PBXBuildFile section */
  10 + 3C068D6A1B10149F00AA722C /* srs_protocol_kbps.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C068D681B10149F00AA722C /* srs_protocol_kbps.cpp */; };
  11 + 3C068D6D1B10175500AA722C /* srs_protocol_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C068D6B1B10175500AA722C /* srs_protocol_buffer.cpp */; };
10 3C0E1B8D1B0F5ADF003ADEF7 /* srs_http_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */; }; 12 3C0E1B8D1B0F5ADF003ADEF7 /* srs_http_stack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */; };
11 3C1231F61AAE652D00CE8F6C /* srs_core_autofree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1231F01AAE652C00CE8F6C /* srs_core_autofree.cpp */; }; 13 3C1231F61AAE652D00CE8F6C /* srs_core_autofree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1231F01AAE652C00CE8F6C /* srs_core_autofree.cpp */; };
12 3C1231F71AAE652D00CE8F6C /* srs_core_performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1231F21AAE652C00CE8F6C /* srs_core_performance.cpp */; }; 14 3C1231F71AAE652D00CE8F6C /* srs_core_performance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1231F21AAE652C00CE8F6C /* srs_core_performance.cpp */; };
@@ -26,7 +28,6 @@ @@ -26,7 +28,6 @@
26 3C12322B1AAE814D00CE8F6C /* srs_kernel_utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12321E1AAE814D00CE8F6C /* srs_kernel_utility.cpp */; }; 28 3C12322B1AAE814D00CE8F6C /* srs_kernel_utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12321E1AAE814D00CE8F6C /* srs_kernel_utility.cpp */; };
27 3C1232411AAE81A400CE8F6C /* srs_raw_avc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12322D1AAE81A400CE8F6C /* srs_raw_avc.cpp */; }; 29 3C1232411AAE81A400CE8F6C /* srs_raw_avc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12322D1AAE81A400CE8F6C /* srs_raw_avc.cpp */; };
28 3C1232421AAE81A400CE8F6C /* srs_rtmp_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */; }; 30 3C1232421AAE81A400CE8F6C /* srs_rtmp_amf0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */; };
29 - 3C1232431AAE81A400CE8F6C /* srs_rtmp_buffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232311AAE81A400CE8F6C /* srs_rtmp_buffer.cpp */; };  
30 3C1232441AAE81A400CE8F6C /* srs_rtmp_handshake.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */; }; 31 3C1232441AAE81A400CE8F6C /* srs_rtmp_handshake.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */; };
31 3C1232451AAE81A400CE8F6C /* srs_rtmp_io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */; }; 32 3C1232451AAE81A400CE8F6C /* srs_rtmp_io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */; };
32 3C1232461AAE81A400CE8F6C /* srs_rtmp_msg_array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232371AAE81A400CE8F6C /* srs_rtmp_msg_array.cpp */; }; 33 3C1232461AAE81A400CE8F6C /* srs_rtmp_msg_array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232371AAE81A400CE8F6C /* srs_rtmp_msg_array.cpp */; };
@@ -51,7 +52,6 @@ @@ -51,7 +52,6 @@
51 3C1232A21AAE81D900CE8F6C /* srs_app_http_hooks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232681AAE81D900CE8F6C /* srs_app_http_hooks.cpp */; }; 52 3C1232A21AAE81D900CE8F6C /* srs_app_http_hooks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232681AAE81D900CE8F6C /* srs_app_http_hooks.cpp */; };
52 3C1232A41AAE81D900CE8F6C /* srs_app_ingest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12326C1AAE81D900CE8F6C /* srs_app_ingest.cpp */; }; 53 3C1232A41AAE81D900CE8F6C /* srs_app_ingest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12326C1AAE81D900CE8F6C /* srs_app_ingest.cpp */; };
53 3C1232A51AAE81D900CE8F6C /* srs_app_json.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */; }; 54 3C1232A51AAE81D900CE8F6C /* srs_app_json.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */; };
54 - 3C1232A61AAE81D900CE8F6C /* srs_app_kbps.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232701AAE81D900CE8F6C /* srs_app_kbps.cpp */; };  
55 3C1232A71AAE81D900CE8F6C /* srs_app_listener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */; }; 55 3C1232A71AAE81D900CE8F6C /* srs_app_listener.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */; };
56 3C1232A81AAE81D900CE8F6C /* srs_app_log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */; }; 56 3C1232A81AAE81D900CE8F6C /* srs_app_log.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */; };
57 3C1232A91AAE81D900CE8F6C /* srs_app_mpegts_udp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232761AAE81D900CE8F6C /* srs_app_mpegts_udp.cpp */; }; 57 3C1232A91AAE81D900CE8F6C /* srs_app_mpegts_udp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3C1232761AAE81D900CE8F6C /* srs_app_mpegts_udp.cpp */; };
@@ -122,6 +122,10 @@ @@ -122,6 +122,10 @@
122 /* End PBXCopyFilesBuildPhase section */ 122 /* End PBXCopyFilesBuildPhase section */
123 123
124 /* Begin PBXFileReference section */ 124 /* Begin PBXFileReference section */
  125 + 3C068D681B10149F00AA722C /* srs_protocol_kbps.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_protocol_kbps.cpp; path = ../../../src/protocol/srs_protocol_kbps.cpp; sourceTree = "<group>"; };
  126 + 3C068D691B10149F00AA722C /* srs_protocol_kbps.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_protocol_kbps.hpp; path = ../../../src/protocol/srs_protocol_kbps.hpp; sourceTree = "<group>"; };
  127 + 3C068D6B1B10175500AA722C /* srs_protocol_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_protocol_buffer.cpp; path = ../../../src/protocol/srs_protocol_buffer.cpp; sourceTree = "<group>"; };
  128 + 3C068D6C1B10175500AA722C /* srs_protocol_buffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_protocol_buffer.hpp; path = ../../../src/protocol/srs_protocol_buffer.hpp; sourceTree = "<group>"; };
125 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_http_stack.cpp; path = ../../../src/protocol/srs_http_stack.cpp; sourceTree = "<group>"; }; 129 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_http_stack.cpp; path = ../../../src/protocol/srs_http_stack.cpp; sourceTree = "<group>"; };
126 3C0E1B8C1B0F5ADF003ADEF7 /* srs_http_stack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_http_stack.hpp; path = ../../../src/protocol/srs_http_stack.hpp; sourceTree = "<group>"; }; 130 3C0E1B8C1B0F5ADF003ADEF7 /* srs_http_stack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_http_stack.hpp; path = ../../../src/protocol/srs_http_stack.hpp; sourceTree = "<group>"; };
127 3C1231E51AAE64A400CE8F6C /* srs_xcode */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = srs_xcode; sourceTree = BUILT_PRODUCTS_DIR; }; 131 3C1231E51AAE64A400CE8F6C /* srs_xcode */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = srs_xcode; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -161,8 +165,6 @@ @@ -161,8 +165,6 @@
161 3C12322E1AAE81A400CE8F6C /* srs_raw_avc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_raw_avc.hpp; path = ../../../src/protocol/srs_raw_avc.hpp; sourceTree = "<group>"; }; 165 3C12322E1AAE81A400CE8F6C /* srs_raw_avc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_raw_avc.hpp; path = ../../../src/protocol/srs_raw_avc.hpp; sourceTree = "<group>"; };
162 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_amf0.cpp; path = ../../../src/protocol/srs_rtmp_amf0.cpp; sourceTree = "<group>"; }; 166 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_amf0.cpp; path = ../../../src/protocol/srs_rtmp_amf0.cpp; sourceTree = "<group>"; };
163 3C1232301AAE81A400CE8F6C /* srs_rtmp_amf0.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_rtmp_amf0.hpp; path = ../../../src/protocol/srs_rtmp_amf0.hpp; sourceTree = "<group>"; }; 167 3C1232301AAE81A400CE8F6C /* srs_rtmp_amf0.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_rtmp_amf0.hpp; path = ../../../src/protocol/srs_rtmp_amf0.hpp; sourceTree = "<group>"; };
164 - 3C1232311AAE81A400CE8F6C /* srs_rtmp_buffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_buffer.cpp; path = ../../../src/protocol/srs_rtmp_buffer.cpp; sourceTree = "<group>"; };  
165 - 3C1232321AAE81A400CE8F6C /* srs_rtmp_buffer.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_rtmp_buffer.hpp; path = ../../../src/protocol/srs_rtmp_buffer.hpp; sourceTree = "<group>"; };  
166 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_handshake.cpp; path = ../../../src/protocol/srs_rtmp_handshake.cpp; sourceTree = "<group>"; }; 168 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_handshake.cpp; path = ../../../src/protocol/srs_rtmp_handshake.cpp; sourceTree = "<group>"; };
167 3C1232341AAE81A400CE8F6C /* srs_rtmp_handshake.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_rtmp_handshake.hpp; path = ../../../src/protocol/srs_rtmp_handshake.hpp; sourceTree = "<group>"; }; 169 3C1232341AAE81A400CE8F6C /* srs_rtmp_handshake.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_rtmp_handshake.hpp; path = ../../../src/protocol/srs_rtmp_handshake.hpp; sourceTree = "<group>"; };
168 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_io.cpp; path = ../../../src/protocol/srs_rtmp_io.cpp; sourceTree = "<group>"; }; 170 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_rtmp_io.cpp; path = ../../../src/protocol/srs_rtmp_io.cpp; sourceTree = "<group>"; };
@@ -211,8 +213,6 @@ @@ -211,8 +213,6 @@
211 3C12326D1AAE81D900CE8F6C /* srs_app_ingest.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_ingest.hpp; path = ../../../src/app/srs_app_ingest.hpp; sourceTree = "<group>"; }; 213 3C12326D1AAE81D900CE8F6C /* srs_app_ingest.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_ingest.hpp; path = ../../../src/app/srs_app_ingest.hpp; sourceTree = "<group>"; };
212 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_json.cpp; path = ../../../src/app/srs_app_json.cpp; sourceTree = "<group>"; }; 214 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_json.cpp; path = ../../../src/app/srs_app_json.cpp; sourceTree = "<group>"; };
213 3C12326F1AAE81D900CE8F6C /* srs_app_json.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_json.hpp; path = ../../../src/app/srs_app_json.hpp; sourceTree = "<group>"; }; 215 3C12326F1AAE81D900CE8F6C /* srs_app_json.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_json.hpp; path = ../../../src/app/srs_app_json.hpp; sourceTree = "<group>"; };
214 - 3C1232701AAE81D900CE8F6C /* srs_app_kbps.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_kbps.cpp; path = ../../../src/app/srs_app_kbps.cpp; sourceTree = "<group>"; };  
215 - 3C1232711AAE81D900CE8F6C /* srs_app_kbps.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_kbps.hpp; path = ../../../src/app/srs_app_kbps.hpp; sourceTree = "<group>"; };  
216 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_listener.cpp; path = ../../../src/app/srs_app_listener.cpp; sourceTree = "<group>"; }; 216 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_listener.cpp; path = ../../../src/app/srs_app_listener.cpp; sourceTree = "<group>"; };
217 3C1232731AAE81D900CE8F6C /* srs_app_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_listener.hpp; path = ../../../src/app/srs_app_listener.hpp; sourceTree = "<group>"; }; 217 3C1232731AAE81D900CE8F6C /* srs_app_listener.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = srs_app_listener.hpp; path = ../../../src/app/srs_app_listener.hpp; sourceTree = "<group>"; };
218 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_log.cpp; path = ../../../src/app/srs_app_log.cpp; sourceTree = "<group>"; }; 218 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = srs_app_log.cpp; path = ../../../src/app/srs_app_log.cpp; sourceTree = "<group>"; };
@@ -489,12 +489,14 @@ @@ -489,12 +489,14 @@
489 children = ( 489 children = (
490 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */, 490 3C0E1B8B1B0F5ADF003ADEF7 /* srs_http_stack.cpp */,
491 3C0E1B8C1B0F5ADF003ADEF7 /* srs_http_stack.hpp */, 491 3C0E1B8C1B0F5ADF003ADEF7 /* srs_http_stack.hpp */,
  492 + 3C068D6B1B10175500AA722C /* srs_protocol_buffer.cpp */,
  493 + 3C068D6C1B10175500AA722C /* srs_protocol_buffer.hpp */,
  494 + 3C068D681B10149F00AA722C /* srs_protocol_kbps.cpp */,
  495 + 3C068D691B10149F00AA722C /* srs_protocol_kbps.hpp */,
492 3C12322D1AAE81A400CE8F6C /* srs_raw_avc.cpp */, 496 3C12322D1AAE81A400CE8F6C /* srs_raw_avc.cpp */,
493 3C12322E1AAE81A400CE8F6C /* srs_raw_avc.hpp */, 497 3C12322E1AAE81A400CE8F6C /* srs_raw_avc.hpp */,
494 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */, 498 3C12322F1AAE81A400CE8F6C /* srs_rtmp_amf0.cpp */,
495 3C1232301AAE81A400CE8F6C /* srs_rtmp_amf0.hpp */, 499 3C1232301AAE81A400CE8F6C /* srs_rtmp_amf0.hpp */,
496 - 3C1232311AAE81A400CE8F6C /* srs_rtmp_buffer.cpp */,  
497 - 3C1232321AAE81A400CE8F6C /* srs_rtmp_buffer.hpp */,  
498 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */, 500 3C1232331AAE81A400CE8F6C /* srs_rtmp_handshake.cpp */,
499 3C1232341AAE81A400CE8F6C /* srs_rtmp_handshake.hpp */, 501 3C1232341AAE81A400CE8F6C /* srs_rtmp_handshake.hpp */,
500 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */, 502 3C1232351AAE81A400CE8F6C /* srs_rtmp_io.cpp */,
@@ -556,8 +558,6 @@ @@ -556,8 +558,6 @@
556 3C12326D1AAE81D900CE8F6C /* srs_app_ingest.hpp */, 558 3C12326D1AAE81D900CE8F6C /* srs_app_ingest.hpp */,
557 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */, 559 3C12326E1AAE81D900CE8F6C /* srs_app_json.cpp */,
558 3C12326F1AAE81D900CE8F6C /* srs_app_json.hpp */, 560 3C12326F1AAE81D900CE8F6C /* srs_app_json.hpp */,
559 - 3C1232701AAE81D900CE8F6C /* srs_app_kbps.cpp */,  
560 - 3C1232711AAE81D900CE8F6C /* srs_app_kbps.hpp */,  
561 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */, 561 3C1232721AAE81D900CE8F6C /* srs_app_listener.cpp */,
562 3C1232731AAE81D900CE8F6C /* srs_app_listener.hpp */, 562 3C1232731AAE81D900CE8F6C /* srs_app_listener.hpp */,
563 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */, 563 3C1232741AAE81D900CE8F6C /* srs_app_log.cpp */,
@@ -916,6 +916,7 @@ @@ -916,6 +916,7 @@
916 3CE6CD311AE4AFB800706E07 /* srs_main_ingest_hls.cpp in Sources */, 916 3CE6CD311AE4AFB800706E07 /* srs_main_ingest_hls.cpp in Sources */,
917 3C28EDDF1AF5C43F00A3AEAC /* srs_app_caster_flv.cpp in Sources */, 917 3C28EDDF1AF5C43F00A3AEAC /* srs_app_caster_flv.cpp in Sources */,
918 3C1232241AAE814D00CE8F6C /* srs_kernel_error.cpp in Sources */, 918 3C1232241AAE814D00CE8F6C /* srs_kernel_error.cpp in Sources */,
  919 + 3C068D6D1B10175500AA722C /* srs_protocol_buffer.cpp in Sources */,
919 3C1232441AAE81A400CE8F6C /* srs_rtmp_handshake.cpp in Sources */, 920 3C1232441AAE81A400CE8F6C /* srs_rtmp_handshake.cpp in Sources */,
920 3C1232291AAE814D00CE8F6C /* srs_kernel_stream.cpp in Sources */, 921 3C1232291AAE814D00CE8F6C /* srs_kernel_stream.cpp in Sources */,
921 3C663F181AB0155100286D8B /* srs_play.c in Sources */, 922 3C663F181AB0155100286D8B /* srs_play.c in Sources */,
@@ -927,16 +928,15 @@ @@ -927,16 +928,15 @@
927 3C663F161AB0155100286D8B /* srs_ingest_flv.c in Sources */, 928 3C663F161AB0155100286D8B /* srs_ingest_flv.c in Sources */,
928 3C663F141AB0155100286D8B /* srs_flv_parser.c in Sources */, 929 3C663F141AB0155100286D8B /* srs_flv_parser.c in Sources */,
929 3C1232451AAE81A400CE8F6C /* srs_rtmp_io.cpp in Sources */, 930 3C1232451AAE81A400CE8F6C /* srs_rtmp_io.cpp in Sources */,
930 - 3C1232431AAE81A400CE8F6C /* srs_rtmp_buffer.cpp in Sources */,  
931 3C1232211AAE814D00CE8F6C /* srs_kernel_buffer.cpp in Sources */, 931 3C1232211AAE814D00CE8F6C /* srs_kernel_buffer.cpp in Sources */,
932 3C1232471AAE81A400CE8F6C /* srs_rtmp_sdk.cpp in Sources */, 932 3C1232471AAE81A400CE8F6C /* srs_rtmp_sdk.cpp in Sources */,
933 3C36DB5B1ABD1CB90066CCAF /* srs_lib_bandwidth.cpp in Sources */, 933 3C36DB5B1ABD1CB90066CCAF /* srs_lib_bandwidth.cpp in Sources */,
934 - 3C1232A61AAE81D900CE8F6C /* srs_app_kbps.cpp in Sources */,  
935 3C12329D1AAE81D900CE8F6C /* srs_app_heartbeat.cpp in Sources */, 934 3C12329D1AAE81D900CE8F6C /* srs_app_heartbeat.cpp in Sources */,
936 3C1232231AAE814D00CE8F6C /* srs_kernel_consts.cpp in Sources */, 935 3C1232231AAE814D00CE8F6C /* srs_kernel_consts.cpp in Sources */,
937 3C1232AF1AAE81D900CE8F6C /* srs_app_rtsp.cpp in Sources */, 936 3C1232AF1AAE81D900CE8F6C /* srs_app_rtsp.cpp in Sources */,
938 3CC52DDD1ACE4023006FEB01 /* srs_utest_reload.cpp in Sources */, 937 3CC52DDD1ACE4023006FEB01 /* srs_utest_reload.cpp in Sources */,
939 3C689FA11AB6AAC800C9CEEE /* sync.c in Sources */, 938 3C689FA11AB6AAC800C9CEEE /* sync.c in Sources */,
  939 + 3C068D6A1B10149F00AA722C /* srs_protocol_kbps.cpp in Sources */,
940 3C12329A1AAE81D900CE8F6C /* srs_app_encoder.cpp in Sources */, 940 3C12329A1AAE81D900CE8F6C /* srs_app_encoder.cpp in Sources */,
941 ); 941 );
942 runOnlyForDeploymentPostprocessing = 0; 942 runOnlyForDeploymentPostprocessing = 0;
@@ -35,7 +35,10 @@ using namespace std; @@ -35,7 +35,10 @@ using namespace std;
35 #include <srs_core_autofree.hpp> 35 #include <srs_core_autofree.hpp>
36 #include <srs_kernel_utility.hpp> 36 #include <srs_kernel_utility.hpp>
37 #include <srs_app_utility.hpp> 37 #include <srs_app_utility.hpp>
38 -#include <srs_app_kbps.hpp> 38 +#include <srs_protocol_kbps.hpp>
  39 +#include <srs_app_st.hpp>
  40 +
  41 +#define _SRS_BANDWIDTH_LIMIT_INTERVAL_MS 100
39 42
40 // default sample duration, in ms 43 // default sample duration, in ms
41 #define _SRS_BANDWIDTH_SAMPLE_DURATION_MS 3000 44 #define _SRS_BANDWIDTH_SAMPLE_DURATION_MS 3000
@@ -475,3 +478,40 @@ int SrsBandwidth::finial(SrsBandwidthSample& play_sample, SrsBandwidthSample& pu @@ -475,3 +478,40 @@ int SrsBandwidth::finial(SrsBandwidthSample& play_sample, SrsBandwidthSample& pu
475 return ret; 478 return ret;
476 } 479 }
477 480
  481 +SrsKbpsLimit::SrsKbpsLimit(SrsKbps* kbps, int limit_kbps)
  482 +{
  483 + _kbps = kbps;
  484 + _limit_kbps = limit_kbps;
  485 +}
  486 +
  487 +SrsKbpsLimit::~SrsKbpsLimit()
  488 +{
  489 +}
  490 +
  491 +int SrsKbpsLimit::limit_kbps()
  492 +{
  493 + return _limit_kbps;
  494 +}
  495 +
  496 +void SrsKbpsLimit::recv_limit()
  497 +{
  498 + _kbps->sample();
  499 +
  500 + while (_kbps->get_recv_kbps() > _limit_kbps) {
  501 + _kbps->sample();
  502 +
  503 + st_usleep(_SRS_BANDWIDTH_LIMIT_INTERVAL_MS * 1000);
  504 + }
  505 +}
  506 +
  507 +void SrsKbpsLimit::send_limit()
  508 +{
  509 + _kbps->sample();
  510 +
  511 + while (_kbps->get_send_kbps() > _limit_kbps) {
  512 + _kbps->sample();
  513 +
  514 + st_usleep(_SRS_BANDWIDTH_LIMIT_INTERVAL_MS * 1000);
  515 + }
  516 +}
  517 +
@@ -34,6 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -34,6 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 34
35 #include <srs_app_st.hpp> 35 #include <srs_app_st.hpp>
36 36
  37 +class SrsKbps;
37 class SrsRequest; 38 class SrsRequest;
38 class SrsRtmpServer; 39 class SrsRtmpServer;
39 class SrsKbpsLimit; 40 class SrsKbpsLimit;
@@ -199,4 +200,30 @@ private: @@ -199,4 +200,30 @@ private:
199 virtual int finial(SrsBandwidthSample& play_sample, SrsBandwidthSample& publish_sample, int64_t start_time, int64_t& end_time); 200 virtual int finial(SrsBandwidthSample& play_sample, SrsBandwidthSample& publish_sample, int64_t start_time, int64_t& end_time);
200 }; 201 };
201 202
  203 +/**
  204 + * the kbps limit, if exceed the kbps, slow down.
  205 + */
  206 +class SrsKbpsLimit
  207 +{
  208 +private:
  209 + int _limit_kbps;
  210 + SrsKbps* _kbps;
  211 +public:
  212 + SrsKbpsLimit(SrsKbps* kbps, int limit_kbps);
  213 + virtual ~SrsKbpsLimit();
  214 +public:
  215 + /**
  216 + * get the system limit kbps.
  217 + */
  218 + virtual int limit_kbps();
  219 + /**
  220 + * limit the recv bandwidth.
  221 + */
  222 + virtual void recv_limit();
  223 + /**
  224 + * limit the send bandwidth.
  225 + */
  226 + virtual void send_limit();
  227 +};
  228 +
202 #endif 229 #endif
@@ -34,7 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -34,7 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 34
35 #include <srs_app_st.hpp> 35 #include <srs_app_st.hpp>
36 #include <srs_app_thread.hpp> 36 #include <srs_app_thread.hpp>
37 -#include <srs_app_kbps.hpp> 37 +#include <srs_protocol_kbps.hpp>
38 38
39 class SrsConnection; 39 class SrsConnection;
40 40
@@ -39,7 +39,7 @@ using namespace std; @@ -39,7 +39,7 @@ using namespace std;
39 #include <srs_app_source.hpp> 39 #include <srs_app_source.hpp>
40 #include <srs_app_pithy_print.hpp> 40 #include <srs_app_pithy_print.hpp>
41 #include <srs_core_autofree.hpp> 41 #include <srs_core_autofree.hpp>
42 -#include <srs_app_kbps.hpp> 42 +#include <srs_protocol_kbps.hpp>
43 #include <srs_rtmp_msg_array.hpp> 43 #include <srs_rtmp_msg_array.hpp>
44 #include <srs_app_utility.hpp> 44 #include <srs_app_utility.hpp>
45 #include <srs_rtmp_amf0.hpp> 45 #include <srs_rtmp_amf0.hpp>
@@ -38,7 +38,7 @@ using namespace std; @@ -38,7 +38,7 @@ using namespace std;
38 #include <srs_app_pithy_print.hpp> 38 #include <srs_app_pithy_print.hpp>
39 #include <srs_rtmp_sdk.hpp> 39 #include <srs_rtmp_sdk.hpp>
40 #include <srs_rtmp_utility.hpp> 40 #include <srs_rtmp_utility.hpp>
41 -#include <srs_app_kbps.hpp> 41 +#include <srs_protocol_kbps.hpp>
42 #include <srs_rtmp_msg_array.hpp> 42 #include <srs_rtmp_msg_array.hpp>
43 #include <srs_app_utility.hpp> 43 #include <srs_app_utility.hpp>
44 #include <srs_rtmp_amf0.hpp> 44 #include <srs_rtmp_amf0.hpp>
@@ -51,7 +51,7 @@ using namespace std; @@ -51,7 +51,7 @@ using namespace std;
51 #include <srs_kernel_utility.hpp> 51 #include <srs_kernel_utility.hpp>
52 #include <srs_kernel_codec.hpp> 52 #include <srs_kernel_codec.hpp>
53 #include <srs_kernel_file.hpp> 53 #include <srs_kernel_file.hpp>
54 -#include <srs_rtmp_buffer.hpp> 54 +#include <srs_protocol_buffer.hpp>
55 #include <srs_kernel_ts.hpp> 55 #include <srs_kernel_ts.hpp>
56 #include <srs_app_utility.hpp> 56 #include <srs_app_utility.hpp>
57 #include <srs_app_http_hooks.hpp> 57 #include <srs_app_http_hooks.hpp>
@@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 #include <sstream> 33 #include <sstream>
34 using namespace std; 34 using namespace std;
35 35
36 -#include <srs_rtmp_buffer.hpp> 36 +#include <srs_protocol_buffer.hpp>
37 #include <srs_rtmp_utility.hpp> 37 #include <srs_rtmp_utility.hpp>
38 #include <srs_kernel_log.hpp> 38 #include <srs_kernel_log.hpp>
39 #include <srs_kernel_error.hpp> 39 #include <srs_kernel_error.hpp>
@@ -26,7 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -26,7 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 #include <srs_rtmp_sdk.hpp> 26 #include <srs_rtmp_sdk.hpp>
27 #include <srs_rtmp_stack.hpp> 27 #include <srs_rtmp_stack.hpp>
28 #include <srs_app_rtmp_conn.hpp> 28 #include <srs_app_rtmp_conn.hpp>
29 -#include <srs_rtmp_buffer.hpp> 29 +#include <srs_protocol_buffer.hpp>
30 #include <srs_kernel_utility.hpp> 30 #include <srs_kernel_utility.hpp>
31 #include <srs_core_performance.hpp> 31 #include <srs_core_performance.hpp>
32 #include <srs_app_config.hpp> 32 #include <srs_app_config.hpp>
@@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
33 #include <vector> 33 #include <vector>
34 34
35 #include <srs_app_thread.hpp> 35 #include <srs_app_thread.hpp>
36 -#include <srs_rtmp_buffer.hpp> 36 +#include <srs_protocol_buffer.hpp>
37 #include <srs_core_performance.hpp> 37 #include <srs_core_performance.hpp>
38 #include <srs_app_reload.hpp> 38 #include <srs_app_reload.hpp>
39 39
@@ -29,7 +29,7 @@ using namespace std; @@ -29,7 +29,7 @@ using namespace std;
29 29
30 #include <srs_rtmp_sdk.hpp> 30 #include <srs_rtmp_sdk.hpp>
31 #include <srs_app_json.hpp> 31 #include <srs_app_json.hpp>
32 -#include <srs_app_kbps.hpp> 32 +#include <srs_protocol_kbps.hpp>
33 #include <srs_app_conn.hpp> 33 #include <srs_app_conn.hpp>
34 #include <srs_app_config.hpp> 34 #include <srs_app_config.hpp>
35 #include <srs_kernel_utility.hpp> 35 #include <srs_kernel_utility.hpp>
@@ -39,7 +39,7 @@ using namespace std; @@ -39,7 +39,7 @@ using namespace std;
39 #include <srs_app_config.hpp> 39 #include <srs_app_config.hpp>
40 #include <srs_kernel_utility.hpp> 40 #include <srs_kernel_utility.hpp>
41 #include <srs_kernel_error.hpp> 41 #include <srs_kernel_error.hpp>
42 -#include <srs_app_kbps.hpp> 42 +#include <srs_protocol_kbps.hpp>
43 #include <srs_app_json.hpp> 43 #include <srs_app_json.hpp>
44 #include <srs_kernel_stream.hpp> 44 #include <srs_kernel_stream.hpp>
45 45
@@ -21,7 +21,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN @@ -21,7 +21,7 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 -#include <srs_rtmp_buffer.hpp> 24 +#include <srs_protocol_buffer.hpp>
25 25
26 #include <stdlib.h> 26 #include <stdlib.h>
27 27
@@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -25,7 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 #define SRS_PROTOCOL_BUFFER_HPP 25 #define SRS_PROTOCOL_BUFFER_HPP
26 26
27 /* 27 /*
28 -#include <srs_rtmp_buffer.hpp> 28 +#include <srs_protocol_buffer.hpp>
29 */ 29 */
30 30
31 #include <srs_core.hpp> 31 #include <srs_core.hpp>
@@ -21,12 +21,9 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN @@ -21,12 +21,9 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 -#include <srs_app_kbps.hpp> 24 +#include <srs_protocol_kbps.hpp>
25 25
26 #include <srs_kernel_utility.hpp> 26 #include <srs_kernel_utility.hpp>
27 -#include <srs_app_st.hpp>  
28 -  
29 -#define _SRS_BANDWIDTH_LIMIT_INTERVAL_MS 100  
30 27
31 SrsKbpsSample::SrsKbpsSample() 28 SrsKbpsSample::SrsKbpsSample()
32 { 29 {
@@ -253,41 +250,3 @@ void SrsKbps::sample() @@ -253,41 +250,3 @@ void SrsKbps::sample()
253 os.sample(); 250 os.sample();
254 } 251 }
255 252
256 -SrsKbpsLimit::SrsKbpsLimit(SrsKbps* kbps, int limit_kbps)  
257 -{  
258 - _kbps = kbps;  
259 - _limit_kbps = limit_kbps;  
260 -}  
261 -  
262 -SrsKbpsLimit::~SrsKbpsLimit()  
263 -{  
264 -}  
265 -  
266 -int SrsKbpsLimit::limit_kbps()  
267 -{  
268 - return _limit_kbps;  
269 -}  
270 -  
271 -void SrsKbpsLimit::recv_limit()  
272 -{  
273 - _kbps->sample();  
274 -  
275 - while (_kbps->get_recv_kbps() > _limit_kbps) {  
276 - _kbps->sample();  
277 -  
278 - st_usleep(_SRS_BANDWIDTH_LIMIT_INTERVAL_MS * 1000);  
279 - }  
280 -}  
281 -  
282 -void SrsKbpsLimit::send_limit()  
283 -{  
284 - _kbps->sample();  
285 -  
286 - while (_kbps->get_send_kbps() > _limit_kbps) {  
287 - _kbps->sample();  
288 -  
289 - st_usleep(_SRS_BANDWIDTH_LIMIT_INTERVAL_MS * 1000);  
290 - }  
291 -}  
292 -  
293 -  
@@ -21,11 +21,11 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN @@ -21,11 +21,11 @@ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 -#ifndef SRS_APP_KBPS_HPP  
25 -#define SRS_APP_KBPS_HPP 24 +#ifndef SRS_PROTOCOL_KBPS_HPP
  25 +#define SRS_PROTOCOL_KBPS_HPP
26 26
27 /* 27 /*
28 -#include <srs_app_kbps.hpp> 28 +#include <srs_protocol_kbps.hpp>
29 */ 29 */
30 30
31 #include <srs_core.hpp> 31 #include <srs_core.hpp>
@@ -234,30 +234,4 @@ public: @@ -234,30 +234,4 @@ public:
234 virtual void sample(); 234 virtual void sample();
235 }; 235 };
236 236
237 -/**  
238 -* the kbps limit, if exceed the kbps, slow down.  
239 -*/  
240 -class SrsKbpsLimit  
241 -{  
242 -private:  
243 - int _limit_kbps;  
244 - SrsKbps* _kbps;  
245 -public:  
246 - SrsKbpsLimit(SrsKbps* kbps, int limit_kbps);  
247 - virtual ~SrsKbpsLimit();  
248 -public:  
249 - /**  
250 - * get the system limit kbps.  
251 - */  
252 - virtual int limit_kbps();  
253 - /**  
254 - * limit the recv bandwidth.  
255 - */  
256 - virtual void recv_limit();  
257 - /**  
258 - * limit the send bandwidth.  
259 - */  
260 - virtual void send_limit();  
261 -};  
262 -  
263 #endif 237 #endif
@@ -28,7 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -28,7 +28,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 #include <srs_kernel_stream.hpp> 28 #include <srs_kernel_stream.hpp>
29 #include <srs_core_autofree.hpp> 29 #include <srs_core_autofree.hpp>
30 #include <srs_kernel_utility.hpp> 30 #include <srs_kernel_utility.hpp>
31 -#include <srs_rtmp_buffer.hpp> 31 +#include <srs_protocol_buffer.hpp>
32 #include <srs_rtmp_utility.hpp> 32 #include <srs_rtmp_utility.hpp>
33 33
34 // for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213 34 // for srs-librtmp, @see https://github.com/simple-rtmp-server/srs/issues/213
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 31
32 #include <string> 32 #include <string>
33 #include <srs_kernel_file.hpp> 33 #include <srs_kernel_file.hpp>
34 -#include <srs_rtmp_buffer.hpp> 34 +#include <srs_protocol_buffer.hpp>
35 35
36 class MockBufferReader: public ISrsBufferReader 36 class MockBufferReader: public ISrsBufferReader
37 { 37 {
@@ -34,7 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -34,7 +34,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
34 34
35 #include <srs_rtmp_sdk.hpp> 35 #include <srs_rtmp_sdk.hpp>
36 #include <srs_rtmp_handshake.hpp> 36 #include <srs_rtmp_handshake.hpp>
37 -#include <srs_rtmp_buffer.hpp> 37 +#include <srs_protocol_buffer.hpp>
38 38
39 #ifdef SRS_AUTO_SSL 39 #ifdef SRS_AUTO_SSL
40 using namespace _srs_internal; 40 using namespace _srs_internal;