Skip to content

Commit b38bae2

Browse files
committed
for ossrs#250, refine parse pes packet, remove the clear method.
1 parent 1685cdd commit b38bae2

File tree

2 files changed

+18
-21
lines changed

2 files changed

+18
-21
lines changed

trunk/src/kernel/srs_kernel_ts.cpp

+13-16
Original file line numberDiff line numberDiff line change
@@ -415,10 +415,15 @@ SrsTsChannel::~SrsTsChannel()
415415
srs_freep(msg);
416416
}
417417

418-
SrsTsMessage::SrsTsMessage()
418+
SrsTsMessage::SrsTsMessage(SrsTsChannel* c, SrsTsPacket* p)
419419
{
420-
payload = NULL;
421-
clear();
420+
channel = c;
421+
packet = p;
422+
423+
dts = pts = 0;
424+
continuity_counter = 0;
425+
PES_packet_length = 0;
426+
payload = new SrsSimpleBuffer();
422427
}
423428

424429
SrsTsMessage::~SrsTsMessage()
@@ -469,15 +474,6 @@ bool SrsTsMessage::fresh()
469474
return payload->length() == 0;
470475
}
471476

472-
void SrsTsMessage::clear()
473-
{
474-
dts = pts = 0;
475-
continuity_counter = 0;
476-
PES_packet_length = 0;
477-
srs_freep(payload);
478-
payload = new SrsSimpleBuffer();
479-
}
480-
481477
ISrsTsHandler::ISrsTsHandler()
482478
{
483479
}
@@ -941,7 +937,7 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
941937
// init msg.
942938
SrsTsMessage* msg = channel->msg;
943939
if (!msg) {
944-
msg = new SrsTsMessage();
940+
msg = new SrsTsMessage(channel, packet);
945941
channel->msg = msg;
946942
}
947943

@@ -967,7 +963,8 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
967963

968964
// reparse current msg.
969965
stream->skip(stream->pos() * -1);
970-
msg->clear();
966+
srs_freep(msg);
967+
channel->msg = NULL;
971968
return ERROR_SUCCESS;
972969
}
973970

@@ -991,7 +988,8 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
991988

992989
// reparse current msg.
993990
stream->skip(stream->pos() * -1);
994-
msg->clear();
991+
srs_freep(msg);
992+
channel->msg = NULL;
995993
return ERROR_SUCCESS;
996994
}
997995
}
@@ -1005,7 +1003,6 @@ int SrsTsPayloadPES::decode(SrsStream* stream, SrsTsMessage** ppmsg)
10051003

10061004
// reparse current msg.
10071005
stream->skip(stream->pos() * -1);
1008-
10091006
return ret;
10101007
}
10111008

trunk/src/kernel/srs_kernel_ts.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class SrsSimpleBuffer;
4646
class SrsTsAdaptationField;
4747
class SrsTsPayload;
4848
class SrsTsMessage;
49+
class SrsTsPacket;
4950

5051
// Transport Stream packets are 188 bytes in length.
5152
#define SRS_TS_PACKET_SIZE 188
@@ -192,14 +193,17 @@ struct SrsTsChannel
192193
*/
193194
class SrsTsMessage
194195
{
196+
private:
197+
SrsTsChannel* channel;
198+
SrsTsPacket* packet;
195199
public:
196200
int64_t dts;
197201
int64_t pts;
198202
u_int16_t PES_packet_length;
199203
u_int8_t continuity_counter;
200204
SrsSimpleBuffer* payload;
201205
public:
202-
SrsTsMessage();
206+
SrsTsMessage(SrsTsChannel* c, SrsTsPacket* p);
203207
virtual ~SrsTsMessage();
204208
public:
205209
/**
@@ -219,10 +223,6 @@ class SrsTsMessage
219223
* whether the message is fresh.
220224
*/
221225
virtual bool fresh();
222-
/**
223-
* clear current message.
224-
*/
225-
virtual void clear();
226226
};
227227

228228
/**

0 commit comments

Comments
 (0)