mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
supprot LAS(live adaptive stream)
Change-Id: I2f9fd889fc924a3b080667bd2114f4632be461a0
This commit is contained in:
parent
34e7db5a93
commit
c1f98ddcc8
10 changed files with 843 additions and 10 deletions
|
@ -220,6 +220,11 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
|||
SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL)
|
||||
{
|
||||
ptr = NULL;
|
||||
#ifdef SRS_LAS
|
||||
is_keyframe = false;
|
||||
is_header = false;
|
||||
pts = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
SrsSharedPtrMessage::~SrsSharedPtrMessage()
|
||||
|
@ -232,6 +237,23 @@ SrsSharedPtrMessage::~SrsSharedPtrMessage()
|
|||
}
|
||||
}
|
||||
}
|
||||
#ifdef SRS_LAS
|
||||
std::string SrsSharedPtrMessage::to_str() {
|
||||
stringstream ss;
|
||||
ss << "{";
|
||||
ss << "dts=" << timestamp;
|
||||
ss << ",pts=" << pts;
|
||||
ss << ",is_k=" << is_keyframe;
|
||||
ss << ",is_h=" << is_header;
|
||||
if (ptr) {
|
||||
ss << ",type=" << (int)ptr->header.message_type;
|
||||
} else {
|
||||
ss << ",type=unknow";
|
||||
}
|
||||
ss << "}";
|
||||
return ss.str();
|
||||
};
|
||||
#endif
|
||||
|
||||
srs_error_t SrsSharedPtrMessage::create(SrsCommonMessage* msg)
|
||||
{
|
||||
|
@ -268,6 +290,19 @@ srs_error_t SrsSharedPtrMessage::create(SrsMessageHeader* pheader, char* payload
|
|||
ptr->header.perfer_cid = pheader->perfer_cid;
|
||||
this->timestamp = pheader->timestamp;
|
||||
this->stream_id = pheader->stream_id;
|
||||
#ifdef SRS_LAS
|
||||
if (ptr->header.message_type == RTMP_MSG_VideoMessage) {
|
||||
is_header = SrsFlvVideo::sh(payload, size);
|
||||
is_keyframe = SrsFlvVideo::keyframe(payload, size) && !is_header;
|
||||
pts = this->timestamp + SrsFlvVideo::cts(payload, size);
|
||||
} else if (ptr->header.message_type == RTMP_MSG_AudioMessage) {
|
||||
is_header = SrsFlvAudio::sh(payload, size);
|
||||
pts=this->timestamp;
|
||||
} else { // metadate
|
||||
is_header = true;
|
||||
pts=this->timestamp;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
ptr->payload = payload;
|
||||
ptr->size = size;
|
||||
|
@ -361,6 +396,12 @@ SrsSharedPtrMessage* SrsSharedPtrMessage::copy()
|
|||
copy->payload = ptr->payload;
|
||||
copy->size = ptr->size;
|
||||
|
||||
#ifdef SRS_LAS
|
||||
copy->pts = pts;
|
||||
copy->is_header = is_header;
|
||||
copy->is_keyframe = is_keyframe;
|
||||
#endif
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue