mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
For #307, refactor shared msg, add samples and extra payload
This commit is contained in:
parent
5b9cb7dc3f
commit
7ffe4aacb8
2 changed files with 22 additions and 2 deletions
|
@ -194,8 +194,11 @@ srs_error_t SrsCommonMessage::create(SrsMessageHeader* pheader, char* body, int
|
||||||
return srs_success;
|
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()
|
SrsSharedMessageHeader::~SrsSharedMessageHeader()
|
||||||
|
@ -207,6 +210,12 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload()
|
||||||
payload = NULL;
|
payload = NULL;
|
||||||
size = 0;
|
size = 0;
|
||||||
shared_count = 0;
|
shared_count = 0;
|
||||||
|
|
||||||
|
samples = NULL;
|
||||||
|
nb_samples = 0;
|
||||||
|
|
||||||
|
extra_payload = NULL;
|
||||||
|
extra_size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
||||||
|
@ -215,6 +224,8 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload()
|
||||||
srs_memory_unwatch(payload);
|
srs_memory_unwatch(payload);
|
||||||
#endif
|
#endif
|
||||||
srs_freepa(payload);
|
srs_freepa(payload);
|
||||||
|
srs_freepa(samples);
|
||||||
|
srs_freepa(extra_payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL)
|
SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL)
|
||||||
|
|
|
@ -40,6 +40,7 @@ class ISrsReader;
|
||||||
class SrsFileReader;
|
class SrsFileReader;
|
||||||
class SrsPacket;
|
class SrsPacket;
|
||||||
class SrsRtpSharedPacket;
|
class SrsRtpSharedPacket;
|
||||||
|
class SrsSample;
|
||||||
|
|
||||||
#define SRS_FLV_TAG_HEADER_SIZE 11
|
#define SRS_FLV_TAG_HEADER_SIZE 11
|
||||||
#define SRS_FLV_PREVIOUS_TAG_SIZE 4
|
#define SRS_FLV_PREVIOUS_TAG_SIZE 4
|
||||||
|
@ -287,7 +288,6 @@ public:
|
||||||
// @remark, not all message payload can be decoded to packet. for example,
|
// @remark, not all message payload can be decoded to packet. for example,
|
||||||
// video/audio packet use raw bytes, no video/audio packet.
|
// video/audio packet use raw bytes, no video/audio packet.
|
||||||
char* payload;
|
char* payload;
|
||||||
|
|
||||||
#ifdef SRS_AUTO_RTC
|
#ifdef SRS_AUTO_RTC
|
||||||
std::vector<SrsRtpSharedPacket*> rtp_packets;
|
std::vector<SrsRtpSharedPacket*> rtp_packets;
|
||||||
#endif
|
#endif
|
||||||
|
@ -305,6 +305,15 @@ private:
|
||||||
int size;
|
int size;
|
||||||
// The reference count
|
// The reference count
|
||||||
int shared_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:
|
public:
|
||||||
SrsSharedPtrPayload();
|
SrsSharedPtrPayload();
|
||||||
virtual ~SrsSharedPtrPayload();
|
virtual ~SrsSharedPtrPayload();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue