1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-02-15 04:42:04 +00:00

Merge branch '2.0release' into develop

This commit is contained in:
winlin 2015-03-26 19:58:27 +08:00
commit 75ca70c619
5 changed files with 17 additions and 21 deletions

View file

@ -388,6 +388,8 @@ int SrsMpegtsOverUdp::on_ts_video(SrsTsMessage* msg, SrsStream* avs)
// for pps
if (avc->is_pps(frame, frame_size)) {
got_sps_pps = true;
std::string pps;
if ((ret = avc->pps_demux(frame, frame_size, pps)) != ERROR_SUCCESS) {
return ret;
@ -405,21 +407,14 @@ int SrsMpegtsOverUdp::on_ts_video(SrsTsMessage* msg, SrsStream* avs)
continue;
}
// regenerat the ibp frame.
if (!avs->empty()) {
ibpframe = avs->data() + avs->pos();
ibpframe_size = avs->size() - avs->pos();
} else {
srs_info("mpegts: sps/pps frame consumed.");
// ibp frame.
srs_info("mpegts: demux avc ibp frame size=%d, dts=%d", ibpframe_size, dts);
if ((ret = write_h264_ipb_frame(frame, frame_size, dts, pts)) != ERROR_SUCCESS) {
return ret;
}
break;
}
// ibp frame.
srs_info("mpegts: demux avc ibp frame size=%d, dts=%d", ibpframe_size, dts);
return write_h264_ipb_frame(ibpframe, ibpframe_size, dts, pts);
return ret;
}
int SrsMpegtsOverUdp::write_h264_sps_pps(u_int32_t dts, u_int32_t pts)

View file

@ -210,11 +210,11 @@ failed:
}
}
handler->on_thread_stop();
srs_info("thread %s cycle finished", _name);
// readly terminated now.
really_terminated = true;
handler->on_thread_stop();
srs_info("thread %s cycle finished", _name);
}
void* SrsThread::thread_fun(void* arg)

View file

@ -91,8 +91,8 @@ string srs_codec_aac_object2str(SrsAacObjectType aac_object)
{
switch (aac_object) {
case SrsAacObjectTypeAacMain: return "Main";
case SrsAacObjectTypeHE: return "HE";
case SrsAacObjectTypeHEV2: return "HEv2";
case SrsAacObjectTypeAacHE: return "HE";
case SrsAacObjectTypeAacHEV2: return "HEv2";
case SrsAacObjectTypeAacLC: return "LC";
case SrsAacObjectTypeAacSSR: return "SSR";
default: return "Other";
@ -113,8 +113,8 @@ SrsAacProfile srs_codec_aac_rtmp2ts(SrsAacObjectType object_type)
{
switch (object_type) {
case SrsAacObjectTypeAacMain: return SrsAacProfileMain;
case SrsAacObjectTypeHE:
case SrsAacObjectTypeHEV2:
case SrsAacObjectTypeAacHE:
case SrsAacObjectTypeAacHEV2:
case SrsAacObjectTypeAacLC: return SrsAacProfileLC;
case SrsAacObjectTypeAacSSR: return SrsAacProfileSSR;
default: return SrsAacProfileReserved;

View file

@ -406,9 +406,9 @@ enum SrsAacObjectType
SrsAacObjectTypeAacSSR = 3,
// AAC HE = LC+SBR
SrsAacObjectTypeHE = 5,
SrsAacObjectTypeAacHE = 5,
// AAC HEv2 = LC+SBR+PS
SrsAacObjectTypeHEV2 = 29,
SrsAacObjectTypeAacHEV2 = 29,
};
std::string srs_codec_aac_object2str(SrsAacObjectType aac_object);
// ts/hls/adts audio header profile to RTMP sequence header object type.

View file

@ -103,6 +103,7 @@ int SrsFlvEncoder::write_header(char flv_header[9])
return ret;
}
// previous tag size.
char pts[] = { (char)0x00, (char)0x00, (char)0x00, (char)0x00 };
if ((ret = _fs->write(pts, 4, NULL)) != ERROR_SUCCESS) {
return ret;