diff options
author | Jochen Dolze <vdr@dolze.de> | 2010-11-22 01:17:28 +0100 |
---|---|---|
committer | Jochen Dolze <vdr@dolze.de> | 2010-11-22 01:17:28 +0100 |
commit | 2e9d23ab5e3cc12ce58042afdc2d77d098fd498e (patch) | |
tree | 2f5887a3b32d4627d6658f1a44998d9145332900 /command/ts2pkt.cpp | |
parent | 1da680d035c377fa6ec94cc97f786f43b07eea2b (diff) | |
download | vdr-plugin-markad-2e9d23ab5e3cc12ce58042afdc2d77d098fd498e.tar.gz vdr-plugin-markad-2e9d23ab5e3cc12ce58042afdc2d77d098fd498e.tar.bz2 |
Fixed bug found by neptunvasja
Diffstat (limited to 'command/ts2pkt.cpp')
-rw-r--r-- | command/ts2pkt.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/command/ts2pkt.cpp b/command/ts2pkt.cpp index 8667fd6..3fbfa75 100644 --- a/command/ts2pkt.cpp +++ b/command/ts2pkt.cpp @@ -136,7 +136,10 @@ bool cMarkAdTS2Pkt::Process(MarkAdPid Pid, uchar *TSData, int TSSize, MarkAdPack } counter=tshdr->Counter; - if (tshdr->PayloadStart) sync=true; + if (tshdr->PayloadStart) + { + sync=true; + } if (!sync) { return false; // not synced @@ -188,6 +191,21 @@ bool cMarkAdTS2Pkt::Process(MarkAdPid Pid, uchar *TSData, int TSSize, MarkAdPack return false; } + if (tshdr->PayloadStart) + { + if ((buf[0]!=0) && (buf[1]!=0)) + { + sync=false; + if (buflen<7) return false; + // add a pseudo padding stream + buf[0]=0; + buf[1]=0; + buf[2]=1; + buf[3]=0xbe; + buf[4]=buflen-6; + buf[5]=0; + } + } queue->Put(buf,buflen); } if (!ret) return ret; |