summaryrefslogtreecommitdiff
path: root/recv.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2009-10-06 00:36:26 +0200
committerJochen Dolze <vdr@dolze.de>2009-10-06 00:36:26 +0200
commitc11caab8aa7f1e296694e2eaa4477d299adcd1e6 (patch)
tree64adfc0dbab11a45f804489f9f4bddbef720fb0c /recv.cpp
parentc69708374c62615009e2b92783dcea696166470e (diff)
downloadvdr-plugin-markad-c11caab8aa7f1e296694e2eaa4477d299adcd1e6.tar.gz
vdr-plugin-markad-c11caab8aa7f1e296694e2eaa4477d299adcd1e6.tar.bz2
Fixed TS packet processing (buffer overflows)
Added packet injection
Diffstat (limited to 'recv.cpp')
-rw-r--r--recv.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/recv.cpp b/recv.cpp
index 48dbd35..7ed56aa 100644
--- a/recv.cpp
+++ b/recv.cpp
@@ -74,7 +74,7 @@ cMarkAdReceiver::cMarkAdReceiver(int RecvNumber, const char *Filename, cTimer *T
if (macontext.General.APid.Num)
{
- dsyslog("markad [%i]: using mp2",recvnumber);
+ dsyslog("markad [%i]: using MP2",recvnumber);
mp2_demux = new cMarkAdDemux(RecvNumber);
}
else
@@ -84,7 +84,7 @@ cMarkAdReceiver::cMarkAdReceiver(int RecvNumber, const char *Filename, cTimer *T
if (macontext.General.DPid.Num)
{
- dsyslog("markad [%i]: using ac3",recvnumber);
+ dsyslog("markad [%i]: using AC3",recvnumber);
ac3_demux = new cMarkAdDemux(RecvNumber);
}
else
@@ -107,6 +107,7 @@ cMarkAdReceiver::cMarkAdReceiver(int RecvNumber, const char *Filename, cTimer *T
marks.Load(Filename);
Index=NULL;
lastiframe=0;
+ framecnt=-1;
}
cMarkAdReceiver::~cMarkAdReceiver()
@@ -324,9 +325,17 @@ void cMarkAdReceiver::Action()
{
if (macontext.Video.Info.Pict_Type==MA_I_TYPE)
{
- mark=video->Process(lastiframe);
- AddMark(mark,3);
+ if (framecnt==-1)
+ {
+ framecnt=0;
+ }
+ else
+ {
+ mark=video->Process(lastiframe);
+ AddMark(mark,3);
+ }
}
+ if (framecnt!=-1) framecnt++;
}
}
tspkt+=len;