胡斌

add "#EXT-X-ENDLIST\n" at the end of total.m3u8 when unpublish

@@ -323,14 +323,17 @@ SrsHlsMuxer::~SrsHlsMuxer() @@ -323,14 +323,17 @@ SrsHlsMuxer::~SrsHlsMuxer()
323 void SrsHlsMuxer::dispose() 323 void SrsHlsMuxer::dispose()
324 { 324 {
325 if (should_write_file) { 325 if (should_write_file) {
  326 + if (hls_cleanup) {
326 std::vector<SrsHlsSegment*>::iterator it; 327 std::vector<SrsHlsSegment*>::iterator it;
327 for (it = segments.begin(); it != segments.end(); ++it) { 328 for (it = segments.begin(); it != segments.end(); ++it) {
328 SrsHlsSegment* segment = *it; 329 SrsHlsSegment* segment = *it;
329 if (unlink(segment->full_path.c_str()) < 0) { 330 if (unlink(segment->full_path.c_str()) < 0) {
330 - srs_warn("dispose unlink path failed, file=%s.", segment->full_path.c_str()); 331 + srs_warn("dispose unlink path failed, file=%s.",
  332 + segment->full_path.c_str());
331 } 333 }
332 srs_freep(segment); 334 srs_freep(segment);
333 } 335 }
  336 + }
334 segments.clear(); 337 segments.clear();
335 338
336 if (current) { 339 if (current) {
@@ -816,6 +819,10 @@ int SrsHlsMuxer::segment_close(string log_desc) @@ -816,6 +819,10 @@ int SrsHlsMuxer::segment_close(string log_desc)
816 ss << currentSeg->uri << SRS_CONSTS_LF; 819 ss << currentSeg->uri << SRS_CONSTS_LF;
817 srs_verbose("write m3u8 segment uri success."); 820 srs_verbose("write m3u8 segment uri success.");
818 821
  822 + if(log_desc == "unpublish"){
  823 + ss << "#EXT-X-ENDLIST" << SRS_CONSTS_LF;
  824 + }
  825 +
819 // write m3u8 to writer. 826 // write m3u8 to writer.
820 std::string m3u8 = ss.str(); 827 std::string m3u8 = ss.str();
821 if ((ret = total_m3u8_writer.write((char*) m3u8.c_str(), 828 if ((ret = total_m3u8_writer.write((char*) m3u8.c_str(),