正在显示
5 个修改的文件
包含
19 行增加
和
13 行删除
| @@ -346,6 +346,7 @@ Remark: | @@ -346,6 +346,7 @@ Remark: | ||
| 346 | 346 | ||
| 347 | ## History | 347 | ## History |
| 348 | 348 | ||
| 349 | +* v2.0, 2017-01-22, for [#752][bug #752] release the io then free it for kbps. 2.0.232 | ||
| 349 | * v2.0, 2017-01-18, fix [#750][bug #750] use specific error code for dns resolve. 2.0.231 | 350 | * v2.0, 2017-01-18, fix [#750][bug #750] use specific error code for dns resolve. 2.0.231 |
| 350 | * <strong>v2.0, 2017-01-18, [2.0 beta4(2.0.230)][r2.0b4] released. 86334 lines.</strong> | 351 | * <strong>v2.0, 2017-01-18, [2.0 beta4(2.0.230)][r2.0b4] released. 86334 lines.</strong> |
| 351 | * v2.0, 2017-01-18, fix [#749][bug #749], timestamp overflow for ATC. 2.0.230 | 352 | * v2.0, 2017-01-18, fix [#749][bug #749], timestamp overflow for ATC. 2.0.230 |
| @@ -1283,6 +1284,7 @@ Winlin | @@ -1283,6 +1284,7 @@ Winlin | ||
| 1283 | [bug #740]: https://github.com/ossrs/srs/issues/740 | 1284 | [bug #740]: https://github.com/ossrs/srs/issues/740 |
| 1284 | [bug #749]: https://github.com/ossrs/srs/issues/749 | 1285 | [bug #749]: https://github.com/ossrs/srs/issues/749 |
| 1285 | [bug #750]: https://github.com/ossrs/srs/issues/750 | 1286 | [bug #750]: https://github.com/ossrs/srs/issues/750 |
| 1287 | +[bug #752]: https://github.com/ossrs/srs/issues/752 | ||
| 1286 | [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx | 1288 | [bug #xxxxxxxxxx]: https://github.com/ossrs/srs/issues/xxxxxxxxxx |
| 1287 | 1289 | ||
| 1288 | [exo #828]: https://github.com/google/ExoPlayer/pull/828 | 1290 | [exo #828]: https://github.com/google/ExoPlayer/pull/828 |
| @@ -110,9 +110,9 @@ void SrsEdgeIngester::stop() | @@ -110,9 +110,9 @@ void SrsEdgeIngester::stop() | ||
| 110 | 110 | ||
| 111 | close_underlayer_socket(); | 111 | close_underlayer_socket(); |
| 112 | 112 | ||
| 113 | + kbps->set_io(NULL, NULL); | ||
| 113 | srs_freep(client); | 114 | srs_freep(client); |
| 114 | srs_freep(io); | 115 | srs_freep(io); |
| 115 | - kbps->set_io(NULL, NULL); | ||
| 116 | 116 | ||
| 117 | // notice to unpublish. | 117 | // notice to unpublish. |
| 118 | _source->on_unpublish(); | 118 | _source->on_unpublish(); |
| @@ -376,6 +376,7 @@ int SrsEdgeIngester::connect_server(string& ep_server, string& ep_port) | @@ -376,6 +376,7 @@ int SrsEdgeIngester::connect_server(string& ep_server, string& ep_port) | ||
| 376 | return ret; | 376 | return ret; |
| 377 | } | 377 | } |
| 378 | 378 | ||
| 379 | + kbps->set_io(NULL, NULL); | ||
| 379 | srs_freep(client); | 380 | srs_freep(client); |
| 380 | srs_freep(io); | 381 | srs_freep(io); |
| 381 | 382 | ||
| @@ -478,9 +479,9 @@ void SrsEdgeForwarder::stop() | @@ -478,9 +479,9 @@ void SrsEdgeForwarder::stop() | ||
| 478 | 479 | ||
| 479 | queue->clear(); | 480 | queue->clear(); |
| 480 | 481 | ||
| 482 | + kbps->set_io(NULL, NULL); | ||
| 481 | srs_freep(client); | 483 | srs_freep(client); |
| 482 | srs_freep(io); | 484 | srs_freep(io); |
| 483 | - kbps->set_io(NULL, NULL); | ||
| 484 | } | 485 | } |
| 485 | 486 | ||
| 486 | #define SYS_MAX_EDGE_SEND_MSGS 128 | 487 | #define SYS_MAX_EDGE_SEND_MSGS 128 |
| @@ -626,6 +627,7 @@ int SrsEdgeForwarder::connect_server(string& ep_server, string& ep_port) | @@ -626,6 +627,7 @@ int SrsEdgeForwarder::connect_server(string& ep_server, string& ep_port) | ||
| 626 | return ret; | 627 | return ret; |
| 627 | } | 628 | } |
| 628 | 629 | ||
| 630 | + kbps->set_io(NULL, NULL); | ||
| 629 | srs_freep(client); | 631 | srs_freep(client); |
| 630 | srs_freep(io); | 632 | srs_freep(io); |
| 631 | 633 |
| @@ -150,9 +150,9 @@ void SrsForwarder::on_unpublish() | @@ -150,9 +150,9 @@ void SrsForwarder::on_unpublish() | ||
| 150 | 150 | ||
| 151 | close_underlayer_socket(); | 151 | close_underlayer_socket(); |
| 152 | 152 | ||
| 153 | + kbps->set_io(NULL, NULL); | ||
| 153 | srs_freep(client); | 154 | srs_freep(client); |
| 154 | srs_freep(io); | 155 | srs_freep(io); |
| 155 | - kbps->set_io(NULL, NULL); | ||
| 156 | } | 156 | } |
| 157 | 157 | ||
| 158 | int SrsForwarder::on_meta_data(SrsSharedPtrMessage* shared_metadata) | 158 | int SrsForwarder::on_meta_data(SrsSharedPtrMessage* shared_metadata) |
| @@ -313,6 +313,7 @@ int SrsForwarder::connect_server(string& ep_server, string& ep_port) | @@ -313,6 +313,7 @@ int SrsForwarder::connect_server(string& ep_server, string& ep_port) | ||
| 313 | return ret; | 313 | return ret; |
| 314 | } | 314 | } |
| 315 | 315 | ||
| 316 | + kbps->set_io(NULL, NULL); | ||
| 316 | srs_freep(client); | 317 | srs_freep(client); |
| 317 | srs_freep(io); | 318 | srs_freep(io); |
| 318 | 319 |
| @@ -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 | // current release version | 31 | // current release version |
| 32 | #define VERSION_MAJOR 2 | 32 | #define VERSION_MAJOR 2 |
| 33 | #define VERSION_MINOR 0 | 33 | #define VERSION_MINOR 0 |
| 34 | -#define VERSION_REVISION 231 | 34 | +#define VERSION_REVISION 232 |
| 35 | 35 | ||
| 36 | // generated by configure, only macros. | 36 | // generated by configure, only macros. |
| 37 | #include <srs_auto_headers.hpp> | 37 | #include <srs_auto_headers.hpp> |
| @@ -161,7 +161,7 @@ public: | @@ -161,7 +161,7 @@ public: | ||
| 161 | * SrsKbps* kbps = ...; | 161 | * SrsKbps* kbps = ...; |
| 162 | * kbps->set_io(in, out); | 162 | * kbps->set_io(in, out); |
| 163 | * // both kbps->get_recv_bytes() and kbps->get_send_bytes() are available. | 163 | * // both kbps->get_recv_bytes() and kbps->get_send_bytes() are available. |
| 164 | -* // we can use the kbps as the data source of another kbps: | 164 | + * // we can use the kbps as the data source of another kbps: |
| 165 | * SrsKbps* user = ...; | 165 | * SrsKbps* user = ...; |
| 166 | * user->set_io(kbps, kbps); | 166 | * user->set_io(kbps, kbps); |
| 167 | * the server never know how many bytes already send/recv, for the connection maybe closed. | 167 | * the server never know how many bytes already send/recv, for the connection maybe closed. |
| @@ -176,14 +176,15 @@ public: | @@ -176,14 +176,15 @@ public: | ||
| 176 | virtual ~SrsKbps(); | 176 | virtual ~SrsKbps(); |
| 177 | public: | 177 | public: |
| 178 | /** | 178 | /** |
| 179 | - * set io to start new session. | ||
| 180 | - * set the underlayer reader/writer, | ||
| 181 | - * if the io destroied, for instance, the forwarder reconnect, | ||
| 182 | - * user must set the io of SrsKbps to NULL to continue to use the kbps object. | ||
| 183 | - * @param in the input stream statistic. can be NULL. | ||
| 184 | - * @param out the output stream statistic. can be NULL. | ||
| 185 | - * @remark if in/out is NULL, use the cached data for kbps. | ||
| 186 | - */ | 179 | + * set io to start new session. |
| 180 | + * set the underlayer reader/writer, | ||
| 181 | + * if the io destroied, for instance, the forwarder reconnect, | ||
| 182 | + * user must set the io of SrsKbps to NULL to continue to use the kbps object. | ||
| 183 | + * @param in the input stream statistic. can be NULL. | ||
| 184 | + * @param out the output stream statistic. can be NULL. | ||
| 185 | + * @remark if in/out is NULL, use the cached data for kbps. | ||
| 186 | + * @remark User must set_io(NULL, NULL) then free the in and out. | ||
| 187 | + */ | ||
| 187 | virtual void set_io(ISrsProtocolStatistic* in, ISrsProtocolStatistic* out); | 188 | virtual void set_io(ISrsProtocolStatistic* in, ISrsProtocolStatistic* out); |
| 188 | public: | 189 | public: |
| 189 | /** | 190 | /** |
-
请 注册 或 登录 后发表评论