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:
commit
75ca70c619
5 changed files with 17 additions and 21 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue