For #307, refactor shared msg, add samples and extra payload

pull/1753/head
winlin 5 years ago
parent 5b9cb7dc3f
commit 7ffe4aacb8

@ -194,8 +194,11 @@ srs_error_t SrsCommonMessage::create(SrsMessageHeader* pheader, char* body, int
return srs_success;
}
SrsSharedMessageHeader::SrsSharedMessageHeader() : payload_length(0), message_type(0), perfer_cid(0)
SrsSharedMessageHeader::SrsSharedMessageHeader()
{
payload_length = 0;
message_type = 0;
perfer_cid = 0;
}
SrsSharedMessageHeader::~SrsSharedMessageHeader()
@ -207,6 +210,12 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload()
payload = NULL;
size = 0;
shared_count = 0;
samples = NULL;
nb_samples = 0;
extra_payload = NULL;
extra_size = 0;
}
SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
@ -215,6 +224,8 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
srs_memory_unwatch(payload);
#endif
srs_freepa(payload);
srs_freepa(samples);
srs_freepa(extra_payload);
}
SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL)

@ -40,6 +40,7 @@ class ISrsReader;
class SrsFileReader;
class SrsPacket;
class SrsRtpSharedPacket;
class SrsSample;
#define SRS_FLV_TAG_HEADER_SIZE 11
#define SRS_FLV_PREVIOUS_TAG_SIZE 4
@ -287,7 +288,6 @@ public:
// @remark, not all message payload can be decoded to packet. for example,
// video/audio packet use raw bytes, no video/audio packet.
char* payload;
#ifdef SRS_AUTO_RTC
std::vector<SrsRtpSharedPacket*> rtp_packets;
#endif
@ -305,6 +305,15 @@ private:
int size;
// The reference count
int shared_count;
public:
// For RTC video, we need to know the NALU structures,
// because the RTP STAP-A or FU-A based on NALU.
SrsSample* samples;
int nb_samples;
// For RTC audio, we may need to transcode AAC to opus,
// so there must be an extra payload, which is transformed from payload.
char* extra_payload;
int extra_size;
public:
SrsSharedPtrPayload();
virtual ~SrsSharedPtrPayload();

Loading…
Cancel
Save