正在显示
1 个修改的文件
包含
6 行增加
和
3 行删除
| @@ -899,6 +899,7 @@ int SrsHlsCache::write_audio(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t | @@ -899,6 +899,7 @@ int SrsHlsCache::write_audio(SrsAvcAacCodec* codec, SrsHlsMuxer* muxer, int64_t | ||
| 899 | // we use absolutely overflow of segment to make jwplayer/ffplay happy | 899 | // we use absolutely overflow of segment to make jwplayer/ffplay happy |
| 900 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184 | 900 | // @see https://github.com/winlinvip/simple-rtmp-server/issues/151#issuecomment-71155184 |
| 901 | if (cache->audio && muxer->is_segment_absolutely_overflow()) { | 901 | if (cache->audio && muxer->is_segment_absolutely_overflow()) { |
| 902 | + srs_warn("hls: absolute audio reap segment."); | ||
| 902 | if ((ret = reap_segment("audio", muxer, cache->audio->pts)) != ERROR_SUCCESS) { | 903 | if ((ret = reap_segment("audio", muxer, cache->audio->pts)) != ERROR_SUCCESS) { |
| 903 | return ret; | 904 | return ret; |
| 904 | } | 905 | } |
| @@ -939,19 +940,21 @@ int SrsHlsCache::reap_segment(string log_desc, SrsHlsMuxer* muxer, int64_t segme | @@ -939,19 +940,21 @@ int SrsHlsCache::reap_segment(string log_desc, SrsHlsMuxer* muxer, int64_t segme | ||
| 939 | { | 940 | { |
| 940 | int ret = ERROR_SUCCESS; | 941 | int ret = ERROR_SUCCESS; |
| 941 | 942 | ||
| 943 | + // TODO: flush audio before or after segment? | ||
| 944 | + // TODO: fresh segment begin with audio or video? | ||
| 945 | + | ||
| 946 | + // close current ts. | ||
| 942 | if ((ret = muxer->segment_close(log_desc)) != ERROR_SUCCESS) { | 947 | if ((ret = muxer->segment_close(log_desc)) != ERROR_SUCCESS) { |
| 943 | srs_error("m3u8 muxer close segment failed. ret=%d", ret); | 948 | srs_error("m3u8 muxer close segment failed. ret=%d", ret); |
| 944 | return ret; | 949 | return ret; |
| 945 | } | 950 | } |
| 946 | 951 | ||
| 952 | + // open new ts. | ||
| 947 | if ((ret = muxer->segment_open(segment_start_dts)) != ERROR_SUCCESS) { | 953 | if ((ret = muxer->segment_open(segment_start_dts)) != ERROR_SUCCESS) { |
| 948 | srs_error("m3u8 muxer open segment failed. ret=%d", ret); | 954 | srs_error("m3u8 muxer open segment failed. ret=%d", ret); |
| 949 | return ret; | 955 | return ret; |
| 950 | } | 956 | } |
| 951 | 957 | ||
| 952 | - // TODO: flush audio before or after segment? | ||
| 953 | - // TODO: fresh segment begin with audio or video? | ||
| 954 | - | ||
| 955 | // segment open, flush video first. | 958 | // segment open, flush video first. |
| 956 | if ((ret = muxer->flush_video(cache)) != ERROR_SUCCESS) { | 959 | if ((ret = muxer->flush_video(cache)) != ERROR_SUCCESS) { |
| 957 | srs_error("m3u8 muxer flush video failed. ret=%d", ret); | 960 | srs_error("m3u8 muxer flush video failed. ret=%d", ret); |
-
请 注册 或 登录 后发表评论