summaryrefslogtreecommitdiff
path: root/command/ts2pkt.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2010-11-22 01:17:28 +0100
committerJochen Dolze <vdr@dolze.de>2010-11-22 01:17:28 +0100
commit2e9d23ab5e3cc12ce58042afdc2d77d098fd498e (patch)
tree2f5887a3b32d4627d6658f1a44998d9145332900 /command/ts2pkt.cpp
parent1da680d035c377fa6ec94cc97f786f43b07eea2b (diff)
downloadvdr-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.cpp20
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;