From 1cb8e44b1b16e58094b51fab7c97c00a9a9680e6 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 24 Feb 2015 18:39:31 +0800 Subject: [PATCH] fix #304, fix hls bug, write pts/dts error. 2.0.124. --- README.md | 1 + trunk/src/app/srs_app_hls.cpp | 2 ++ trunk/src/core/srs_core.hpp | 2 +- trunk/src/kernel/srs_kernel_ts.cpp | 14 ++++++++++---- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8e0b31a93..58b9c76ec 100755 --- a/README.md +++ b/README.md @@ -532,6 +532,7 @@ Supported operating systems and hardware: ### SRS 2.0 history +* v2.0, 2015-02-24, for [#304](https://github.com/winlinvip/simple-rtmp-server/issues/304), fix hls bug, write pts/dts error. 2.0.124. * v2.0, 2015-02-24, fix [#179](https://github.com/winlinvip/simple-rtmp-server/issues/179), support dvr http api. 2.0.123. * v2.0, 2015-02-19, refine dvr, append file when dvr file exists. 2.0.122. * v2.0, 2015-02-19, refine pithy print to more easyer to use. 2.0.121. diff --git a/trunk/src/app/srs_app_hls.cpp b/trunk/src/app/srs_app_hls.cpp index a22f0a57b..7c7e9a764 100644 --- a/trunk/src/app/srs_app_hls.cpp +++ b/trunk/src/app/srs_app_hls.cpp @@ -928,6 +928,8 @@ int SrsHls::on_audio(SrsSharedPtrMessage* __audio) return ret; } } + srs_info("audio decoded, type=%d, codec=%d, cts=%d, size=%d, time=%"PRId64, + sample->frame_type, codec->audio_codec_id, sample->cts, audio->size, audio->timestamp); SrsCodecAudio acodec = (SrsCodecAudio)codec->audio_codec_id; // ts support audio codec: aac/mp3 diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 48c1825ee..8d14c1b11 100644 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // current release version #define VERSION_MAJOR 2 #define VERSION_MINOR 0 -#define VERSION_REVISION 123 +#define VERSION_REVISION 124 // server info. #define RTMP_SIG_SRS_KEY "SRS" diff --git a/trunk/src/kernel/srs_kernel_ts.cpp b/trunk/src/kernel/srs_kernel_ts.cpp index dbac10b12..e5449df4b 100644 --- a/trunk/src/kernel/srs_kernel_ts.cpp +++ b/trunk/src/kernel/srs_kernel_ts.cpp @@ -1960,16 +1960,16 @@ int SrsTsPayloadPES::encode_33bits_dts_pts(SrsStream* stream, u_int8_t fb, int64 char* p = stream->data() + stream->pos(); stream->skip(5); - int32_t val; + int32_t val = 0; - val = fb << 4 | (((pts >> 30) & 0x07) << 1) | 1; + val = fb << 4 | (((v >> 30) & 0x07) << 1) | 1; *p++ = val; - val = (((pts >> 15) & 0x7fff) << 1) | 1; + val = (((v >> 15) & 0x7fff) << 1) | 1; *p++ = (val >> 8); *p++ = val; - val = (((pts) & 0x7fff) << 1) | 1; + val = (((v) & 0x7fff) << 1) | 1; *p++ = (val >> 8); *p++ = val; @@ -2653,6 +2653,9 @@ int SrsTSMuxer::update_acodec(SrsCodecAudio ac) int SrsTSMuxer::write_audio(SrsTsMessage* audio) { int ret = ERROR_SUCCESS; + + srs_info("hls: write audio pts=%"PRId64", dts=%"PRId64", size=%d", + audio->pts, audio->dts, audio->PES_packet_length); if ((ret = context->encode(writer, audio, vcodec, acodec)) != ERROR_SUCCESS) { srs_error("hls encode audio failed. ret=%d", ret); @@ -2666,6 +2669,9 @@ int SrsTSMuxer::write_audio(SrsTsMessage* audio) int SrsTSMuxer::write_video(SrsTsMessage* video) { int ret = ERROR_SUCCESS; + + srs_info("hls: write video pts=%"PRId64", dts=%"PRId64", size=%d", + video->pts, video->dts, video->PES_packet_length); if ((ret = context->encode(writer, video, vcodec, acodec)) != ERROR_SUCCESS) { srs_error("hls encode video failed. ret=%d", ret);