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
|
// for pps
|
||||||
if (avc->is_pps(frame, frame_size)) {
|
if (avc->is_pps(frame, frame_size)) {
|
||||||
|
got_sps_pps = true;
|
||||||
|
|
||||||
std::string pps;
|
std::string pps;
|
||||||
if ((ret = avc->pps_demux(frame, frame_size, pps)) != ERROR_SUCCESS) {
|
if ((ret = avc->pps_demux(frame, frame_size, pps)) != ERROR_SUCCESS) {
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -405,21 +407,14 @@ int SrsMpegtsOverUdp::on_ts_video(SrsTsMessage* msg, SrsStream* avs)
|
||||||
continue;
|
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.");
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ibp frame.
|
// ibp frame.
|
||||||
srs_info("mpegts: demux avc ibp frame size=%d, dts=%d", ibpframe_size, dts);
|
srs_info("mpegts: demux avc ibp frame size=%d, dts=%d", ibpframe_size, dts);
|
||||||
return write_h264_ipb_frame(ibpframe, ibpframe_size, dts, pts);
|
if ((ret = write_h264_ipb_frame(frame, frame_size, dts, pts)) != ERROR_SUCCESS) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int SrsMpegtsOverUdp::write_h264_sps_pps(u_int32_t dts, u_int32_t pts)
|
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.
|
// readly terminated now.
|
||||||
really_terminated = true;
|
really_terminated = true;
|
||||||
|
|
||||||
|
handler->on_thread_stop();
|
||||||
|
srs_info("thread %s cycle finished", _name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* SrsThread::thread_fun(void* arg)
|
void* SrsThread::thread_fun(void* arg)
|
||||||
|
|
|
@ -91,8 +91,8 @@ string srs_codec_aac_object2str(SrsAacObjectType aac_object)
|
||||||
{
|
{
|
||||||
switch (aac_object) {
|
switch (aac_object) {
|
||||||
case SrsAacObjectTypeAacMain: return "Main";
|
case SrsAacObjectTypeAacMain: return "Main";
|
||||||
case SrsAacObjectTypeHE: return "HE";
|
case SrsAacObjectTypeAacHE: return "HE";
|
||||||
case SrsAacObjectTypeHEV2: return "HEv2";
|
case SrsAacObjectTypeAacHEV2: return "HEv2";
|
||||||
case SrsAacObjectTypeAacLC: return "LC";
|
case SrsAacObjectTypeAacLC: return "LC";
|
||||||
case SrsAacObjectTypeAacSSR: return "SSR";
|
case SrsAacObjectTypeAacSSR: return "SSR";
|
||||||
default: return "Other";
|
default: return "Other";
|
||||||
|
@ -113,8 +113,8 @@ SrsAacProfile srs_codec_aac_rtmp2ts(SrsAacObjectType object_type)
|
||||||
{
|
{
|
||||||
switch (object_type) {
|
switch (object_type) {
|
||||||
case SrsAacObjectTypeAacMain: return SrsAacProfileMain;
|
case SrsAacObjectTypeAacMain: return SrsAacProfileMain;
|
||||||
case SrsAacObjectTypeHE:
|
case SrsAacObjectTypeAacHE:
|
||||||
case SrsAacObjectTypeHEV2:
|
case SrsAacObjectTypeAacHEV2:
|
||||||
case SrsAacObjectTypeAacLC: return SrsAacProfileLC;
|
case SrsAacObjectTypeAacLC: return SrsAacProfileLC;
|
||||||
case SrsAacObjectTypeAacSSR: return SrsAacProfileSSR;
|
case SrsAacObjectTypeAacSSR: return SrsAacProfileSSR;
|
||||||
default: return SrsAacProfileReserved;
|
default: return SrsAacProfileReserved;
|
||||||
|
|
|
@ -406,9 +406,9 @@ enum SrsAacObjectType
|
||||||
SrsAacObjectTypeAacSSR = 3,
|
SrsAacObjectTypeAacSSR = 3,
|
||||||
|
|
||||||
// AAC HE = LC+SBR
|
// AAC HE = LC+SBR
|
||||||
SrsAacObjectTypeHE = 5,
|
SrsAacObjectTypeAacHE = 5,
|
||||||
// AAC HEv2 = LC+SBR+PS
|
// AAC HEv2 = LC+SBR+PS
|
||||||
SrsAacObjectTypeHEV2 = 29,
|
SrsAacObjectTypeAacHEV2 = 29,
|
||||||
};
|
};
|
||||||
std::string srs_codec_aac_object2str(SrsAacObjectType aac_object);
|
std::string srs_codec_aac_object2str(SrsAacObjectType aac_object);
|
||||||
// ts/hls/adts audio header profile to RTMP sequence header object type.
|
// 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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// previous tag size.
|
||||||
char pts[] = { (char)0x00, (char)0x00, (char)0x00, (char)0x00 };
|
char pts[] = { (char)0x00, (char)0x00, (char)0x00, (char)0x00 };
|
||||||
if ((ret = _fs->write(pts, 4, NULL)) != ERROR_SUCCESS) {
|
if ((ret = _fs->write(pts, 4, NULL)) != ERROR_SUCCESS) {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in a new issue