Commit 5832de7e by ziyue

HLS: ts分包器主动丢弃非法数据

parent c25ff640
......@@ -15,8 +15,8 @@ bool TSSegment::isTSPacket(const char *data, size_t len){
return len == TS_PACKET_SIZE && ((uint8_t*)data)[0] == TS_SYNC_BYTE;
}
void TSSegment::setOnSegment(const TSSegment::onSegment &cb) {
_onSegment = cb;
void TSSegment::setOnSegment(TSSegment::onSegment cb) {
_onSegment = std::move(cb);
}
ssize_t TSSegment::onRecvHeader(const char *data, size_t len) {
......@@ -43,6 +43,11 @@ const char *TSSegment::onSearchPacketTail(const char *data, size_t len) {
if (pos) {
return (char *) pos;
}
if (remainDataSize() > 4 * _size) {
//数据这么多都没ts包,全部清空
return data + len;
}
//等待更多数据
return nullptr;
}
......
......@@ -27,7 +27,7 @@ public:
typedef std::function<void(const char *data,size_t len)> onSegment;
TSSegment(size_t size = TS_PACKET_SIZE) : _size(size){}
~TSSegment(){}
void setOnSegment(const onSegment &cb);
void setOnSegment(onSegment cb);
static bool isTSPacket(const char *data, size_t len);
protected:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论