diff options
author | Jochen Dolze <vdr@dolze.de> | 2009-10-06 00:36:26 +0200 |
---|---|---|
committer | Jochen Dolze <vdr@dolze.de> | 2009-10-06 00:36:26 +0200 |
commit | c11caab8aa7f1e296694e2eaa4477d299adcd1e6 (patch) | |
tree | 64adfc0dbab11a45f804489f9f4bddbef720fb0c /recv.cpp | |
parent | c69708374c62615009e2b92783dcea696166470e (diff) | |
download | vdr-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.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -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; |