summaryrefslogtreecommitdiff
path: root/markad-standalone.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2010-03-17 11:59:36 +0100
committerJochen Dolze <vdr@dolze.de>2010-03-17 11:59:36 +0100
commitc579345b78b87bfbe9b1ce4cbe1be50c0d9dd11a (patch)
tree0d11070937587948790575db9aa1188c62582497 /markad-standalone.cpp
parent216d281a0ea6140a6c1e0190a3ea2ae9ff5e467a (diff)
downloadvdr-plugin-markad-c579345b78b87bfbe9b1ce4cbe1be50c0d9dd11a.tar.gz
vdr-plugin-markad-c579345b78b87bfbe9b1ce4cbe1be50c0d9dd11a.tar.bz2
Hopefully fixed frame counter error
Diffstat (limited to 'markad-standalone.cpp')
-rw-r--r--markad-standalone.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/markad-standalone.cpp b/markad-standalone.cpp
index 7929738..70844c6 100644
--- a/markad-standalone.cpp
+++ b/markad-standalone.cpp
@@ -166,22 +166,18 @@ bool cMarkAdStandalone::ProcessFile(const char *Directory, int Number)
}
//printf("%05i( %c )\n",framecnt,frametypes[macontext.Video.Info.Pict_Type]);
framecnt++;
+ if (macontext.Video.Info.Pict_Type==MA_I_TYPE)
+ {
+ lastiframe=framecnt-1;
+ }
}
bool dRes=true;
if ((decoder) && (bDecodeVideo)) dRes=decoder->DecodeVideo(&macontext,pkt,pktlen);
if (dRes)
{
- if (macontext.Video.Info.Pict_Type==MA_I_TYPE)
+ if ((framecnt-lastiframe)<=3)
{
- if (!isTS)
- {
- lastiframe=framecnt-2;
- }
- else
- {
- lastiframe=framecnt-1;
- }
//SaveFrame(lastiframe); // TODO: JUST FOR DEBUGGING!
mark=video->Process(lastiframe);
AddMark(mark);
@@ -610,12 +606,13 @@ bool cMarkAdStandalone::CheckPATPMT(const char *Directory)
return true;
}
+const char cMarkAdStandalone::frametypes[8]={'?','I','P','B','D','S','s','b'};
+
cMarkAdStandalone::cMarkAdStandalone(const char *Directory, bool BackupMarks, int LogoExtraction,
int LogoWidth, int LogoHeight, bool DecodeVideo,
bool DecodeAudio, bool IgnoreVideoInfo, bool IgnoreAudioInfo,
const char *LogoDir, const char *MarkFileName)
{
- const char frametypes[8]={'?','I','P','B','D','S','s','b'};
recvnumber=255;
abort=false;
@@ -704,7 +701,7 @@ cMarkAdStandalone::cMarkAdStandalone(const char *Directory, bool BackupMarks, in
if (!LoadInfo(Directory))
{
- if (bDecodeVideo) esyslog("markad [%i]: failed loading info - logo detection impossible",recvnumber);
+ if (bDecodeVideo) esyslog("markad [%i]: failed loading info - logo detection disabled",recvnumber);
}
if (MarkFileName[0]) marks.SetFileName(MarkFileName);