ZLMediaKit/src/Http
alexliyu7352 a0c1bc13cc
修复多次调用onShutdown的bug (#1552)
当HlsPlayer拉取索引失败后会触发PlayerProxy的重试机制.
但是这里就有一个bug会导致重试次数不准确.
因为HlsPlayer播放失败会调用onShutdown.
然后回调PlayerProxy.
之后如果触发重试, 那么在HlsPlayer析构的时候又会在调用一次onShutdown.
这时候是安全的, 因为_on_shutdown已经被置空.
但是如果重试时又再次失败, 那么首先会调用
onPlayResult
这时候在PlayerProxy中会再次触发重试, 紧接着HlsPlayer析构, 又会调用一次onShutdown, 那么就又会触发一次重试.

修复方法有很多, 最简单的就是直接在
onShutdown中判断如果没有_demuxer就不需要父类的onShutdown方法来释放资源与重连了.
因为针对HlsPlayer来说, 如果重试拉取索引没有成功, 应该没有什么资源需要在onShutdown方法中释放了.

当然更完善的修复应该是在PlayerProxy中增加相关的判断逻辑, 给rePlay一个状态.
确保rePlay执行完成前, 不再执行一次rePlay.

具体哪种方式, 大佬您可以看着办.
2022-04-10 19:09:16 +08:00
..
HlsParser.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HlsParser.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HlsPlayer.cpp 修复多次调用onShutdown的bug (#1552) 2022-04-10 19:09:16 +08:00
HlsPlayer.h hls拉流时应该适当重试 (#1541) 2022-04-05 19:49:22 +08:00
HttpBody.cpp http: 修复32位系统下,下载3GB以上文件失败的问题: #1446 2022-02-23 17:03:13 +08:00
HttpBody.h 确保32位系统支持超过4GB文件下载 2022-02-10 21:06:51 +08:00
HttpChunkedSplitter.cpp 避免m3u8文件为chunked时崩溃 (#1543) 2022-04-06 14:16:48 +08:00
HttpChunkedSplitter.h 避免m3u8文件为chunked时崩溃 (#1543) 2022-04-06 14:16:48 +08:00
HttpClient.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpClient.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpClientImp.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpClientImp.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpConst.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpConst.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpCookie.cpp 优化mktime性能问题 2022-02-11 11:54:12 +08:00
HttpCookie.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpCookieManager.cpp http cookie减少互斥锁,优化性能 2022-02-11 14:33:11 +08:00
HttpCookieManager.h http cookie减少互斥锁,优化性能 2022-02-11 14:33:11 +08:00
HttpDownloader.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpDownloader.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpFileManager.cpp 修复HLS播放导致程序异常的BUG 2022-03-29 13:43:17 +08:00
HttpFileManager.h hls m3u8文件直接通过内存读写 2022-02-11 16:21:19 +08:00
HttpRequester.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpRequester.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpRequestSplitter.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpRequestSplitter.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpSession.cpp 修复编译警告 2022-03-27 21:57:05 +08:00
HttpSession.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
HttpTSPlayer.cpp http-ts拉流新增支持mime类型(#1475) 2022-03-12 09:35:22 +08:00
HttpTSPlayer.h 删除多余ts split代码 2022-02-13 21:53:21 +08:00
strCoding.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
strCoding.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
TsPlayer.cpp 删除多余ts split代码 2022-02-13 21:53:21 +08:00
TsPlayer.h hls/http-ts播放器新增性能测试模式 2022-02-11 11:11:30 +08:00
TsplayerImp.cpp 删除多余ts split代码 2022-02-13 21:53:21 +08:00
TsPlayerImp.h 删除多余ts split代码 2022-02-13 21:53:21 +08:00
WebSocketClient.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
WebSocketSession.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
WebSocketSplitter.cpp 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00
WebSocketSplitter.h 整理命名空间 (#1409) 2022-02-02 20:34:50 +08:00