mirror of
https://github.com/ossrs/srs.git
synced 2025-02-12 19:31:53 +00:00
for #250, refine parse pes packet, remove the clear method.
This commit is contained in:
parent
1685cdd48e
commit
b38bae2a89
2 changed files with 18 additions and 21 deletions
|
@ -415,10 +415,15 @@ SrsTsChannel::~SrsTsChannel()
|
|||
srs_freep(msg);
|
||||
}
|
||||
|
||||
SrsTsMessage::SrsTsMessage()
|
||||
SrsTsMessage::SrsTsMessage(SrsTsChannel* c, SrsTsPacket* p)
|
||||
{
|
||||
payload = NULL;
|
||||
clear();
|
||||
channel = c;
|
||||
packet = p;
|
||||
|
||||
dts = pts = 0;
|
||||
continuity_counter = 0;
|
||||
PES_packet_length = 0;
|
||||
payload = new SrsSimpleBuffer();
|
||||
}
|
||||
|
||||
SrsTsMessage::~SrsTsMessage()
|
||||
|
@ -469,15 +474,6 @@ bool SrsTsMessage::fresh()
|
|||
return payload->length() == 0;
|
||||
}
|
||||
|
||||
void SrsTsMessage::clear()
|
||||
{
|
||||
dts = pts = 0;
|
||||
continuity_counter = 0;
|
||||
PES_packet_length = 0;
|
||||
srs_freep(payload);
|
||||
payload = new SrsSimpleBuffer();
|
||||
}
|
||||
|
||||
ISrsTsHandler::ISrsTsHandler()
|
||||
{
|
||||
}
|
||||
|
@ -941,7 +937,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
|
|||
// init msg.
|
||||
SrsTsMessage* msg = channel->msg;
|
||||
if (!msg) {
|
||||
msg = new SrsTsMessage();
|
||||
msg = new SrsTsMessage(channel, packet);
|
||||
channel->msg = msg;
|
||||
}
|
||||
|
||||
|
@ -967,7 +963,8 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
|
|||
|
||||
// reparse current msg.
|
||||
stream->skip(stream->pos() * -1);
|
||||
msg->clear();
|
||||
srs_freep(msg);
|
||||
channel->msg = NULL;
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -991,7 +988,8 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
|
|||
|
||||
// reparse current msg.
|
||||
stream->skip(stream->pos() * -1);
|
||||
msg->clear();
|
||||
srs_freep(msg);
|
||||
channel->msg = NULL;
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@ -1005,7 +1003,6 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
|
|||
|
||||
// reparse current msg.
|
||||
stream->skip(stream->pos() * -1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ class SrsSimpleBuffer;
|
|||
class SrsTsAdaptationField;
|
||||
class SrsTsPayload;
|
||||
class SrsTsMessage;
|
||||
class SrsTsPacket;
|
||||
|
||||
// Transport Stream packets are 188 bytes in length.
|
||||
#define SRS_TS_PACKET_SIZE 188
|
||||
|
@ -192,6 +193,9 @@ struct SrsTsChannel
|
|||
*/
|
||||
class SrsTsMessage
|
||||
{
|
||||
private:
|
||||
SrsTsChannel* channel;
|
||||
SrsTsPacket* packet;
|
||||
public:
|
||||
int64_t dts;
|
||||
int64_t pts;
|
||||
|
@ -199,7 +203,7 @@ public:
|
|||
u_int8_t continuity_counter;
|
||||
SrsSimpleBuffer* payload;
|
||||
public:
|
||||
SrsTsMessage();
|
||||
SrsTsMessage(SrsTsChannel* c, SrsTsPacket* p);
|
||||
virtual ~SrsTsMessage();
|
||||
public:
|
||||
/**
|
||||
|
@ -219,10 +223,6 @@ public:
|
|||
* whether the message is fresh.
|
||||
*/
|
||||
virtual bool fresh();
|
||||
/**
|
||||
* clear current message.
|
||||
*/
|
||||
virtual void clear();
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue