From c11caab8aa7f1e296694e2eaa4477d299adcd1e6 Mon Sep 17 00:00:00 2001 From: Jochen Dolze Date: Tue, 6 Oct 2009 00:36:26 +0200 Subject: Fixed TS packet processing (buffer overflows) Added packet injection --- recv.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'recv.cpp') 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; -- cgit v1.2.3