[vdr-plugin-markad] 01/06: New upstream version 0.1.4+git20180120

Tobias Grimm tiber-guest at moszumanska.debian.org
Sat Jan 20 22:02:45 UTC 2018


This is an automated email from the git hooks/post-receive script.

tiber-guest pushed a commit to branch master
in repository vdr-plugin-markad.

commit ce2b0bdff05148b92fbc5c2aea0aa9c2e5f6c489
Author: Tobias Grimm <git at e-tobi.net>
Date:   Sat Jan 20 22:56:53 2018 +0100

    New upstream version 0.1.4+git20180120
---
 command/decoder.cpp                                |   7 +++
 command/global.h                                   |  48 +++++++--------
 command/logos/EinsPlus-A16_9-P1.pgm                |   5 --
 command/logos/EinsPlus-A16_9-P2.pgm                |   5 --
 command/logos/Pro7_MAXX-A16_9-P0.pgm               |   1 +
 command/logos/ServusTV_Deutschland-A16_9-P0.pgm    | Bin 0 -> 12019 bytes
 command/logos/ServusTV_Deutschland-A16_9-P2.pgm    | Bin 0 -> 3017 bytes
 command/logos/ServusTV_HD_Deutschland-A16_9-P0.pgm |   6 +-
 command/markad-standalone.cpp                      |  65 ++++++++++++++++++---
 command/marks.cpp                                  |   1 -
 command/video.cpp                                  |  16 ++---
 command/video.h                                    |   2 +-
 plugin/markad.cpp                                  |   1 +
 plugin/setup.cpp                                   |  45 +++++++++-----
 plugin/status.cpp                                  |  56 +++++++++++-------
 version.dist                                       |   2 +-
 16 files changed, 170 insertions(+), 90 deletions(-)

diff --git a/command/decoder.cpp b/command/decoder.cpp
index a75f08f..6400aa7 100644
--- a/command/decoder.cpp
+++ b/command/decoder.cpp
@@ -234,7 +234,9 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threads)
                     video_context->codec_type=AVMEDIA_TYPE_UNKNOWN;
                     video_context->codec_id=AV_CODEC_ID_NONE;
                     video_context->codec_tag=0;
+#if (LIBAVCODEC_VERSION_MAJOR < 57)
                     memset(video_context->codec_name,0,sizeof(video_context->codec_name));
+#endif
 #if LIBAVCODEC_VERSION_INT >= ((53<<16)+(5<<8)+0)
                     video_context->thread_count=threadcount;
                     ret=avcodec_open2(video_context, video_codec, NULL);
@@ -282,7 +284,12 @@ cMarkAdDecoder::cMarkAdDecoder(bool useH264, int Threads)
                 }
 #endif
 
+#if ((LIBAVCODEC_VERSION_MICRO >  100) && (LIBAVCODEC_VERSION_INT < ((55<<16)+(45<<8)+101))) || \
+    ((LIBAVCODEC_VERSION_MICRO <= 100) && (LIBAVCODEC_VERSION_INT < ((55<<16)+(28<<8)+1)))
                 video_frame = avcodec_alloc_frame();
+#else
+                video_frame = av_frame_alloc();
+#endif
                 if (!video_frame)
                 {
                     esyslog("could not allocate frame");
diff --git a/command/global.h b/command/global.h
index 22cee6a..311d25b 100644
--- a/command/global.h
+++ b/command/global.h
@@ -22,37 +22,37 @@ typedef unsigned char uchar;
 #define MA_SP_TYPE 6
 #define MA_BI_TYPE 7
 
-#define MT_START          1
-#define MT_STOP           2
+#define MT_START          (unsigned char) 1
+#define MT_STOP           (unsigned char) 2
 
-#define MT_ASSUMED        0x10
-#define MT_ASSUMEDSTART   0x11
-#define MT_ASSUMEDSTOP    0x12
+#define MT_ASSUMED        (unsigned char) 0x10
+#define MT_ASSUMEDSTART   (unsigned char) 0x11
+#define MT_ASSUMEDSTOP    (unsigned char) 0x12
 
-#define MT_LOGOCHANGE     0x20
-#define MT_LOGOSTART      0x21
-#define MT_LOGOSTOP       0x22
+#define MT_LOGOCHANGE     (unsigned char) 0x20
+#define MT_LOGOSTART      (unsigned char) 0x21
+#define MT_LOGOSTOP       (unsigned char) 0x22
 
-#define MT_HBORDERCHANGE  0x30
-#define MT_HBORDERSTART   0x31
-#define MT_HBORDERSTOP    0x32
+#define MT_HBORDERCHANGE  (unsigned char) 0x30
+#define MT_HBORDERSTART   (unsigned char) 0x31
+#define MT_HBORDERSTOP    (unsigned char) 0x32
 
-#define MT_VBORDERCHANGE  0x40
-#define MT_VBORDERSTART   0x41
-#define MT_VBORDERSTOP    0x42
+#define MT_VBORDERCHANGE  (unsigned char) 0x40
+#define MT_VBORDERSTART   (unsigned char) 0x41
+#define MT_VBORDERSTOP    (unsigned char) 0x42
 
-#define MT_ASPECTCHANGE   0x50
-#define MT_ASPECTSTART    0x51
-#define MT_ASPECTSTOP     0x52
+#define MT_ASPECTCHANGE   (unsigned char) 0x50
+#define MT_ASPECTSTART    (unsigned char) 0x51
+#define MT_ASPECTSTOP     (unsigned char) 0x52
 
-#define MT_CHANNELCHANGE  0x60
-#define MT_CHANNELSTART   0x61
-#define MT_CHANNELSTOP    0x62
+#define MT_CHANNELCHANGE  (unsigned char) 0x60
+#define MT_CHANNELSTART   (unsigned char) 0x61
+#define MT_CHANNELSTOP    (unsigned char) 0x62
 
-#define MT_RECORDINGSTART 0xD1
-#define MT_RECORDINGSTOP  0xD2
-#define MT_MOVED          0xE0
-#define MT_ALL            0xFF
+#define MT_RECORDINGSTART (unsigned char) 0xD1
+#define MT_RECORDINGSTOP  (unsigned char) 0xD2
+#define MT_MOVED          (unsigned char) 0xE0
+#define MT_ALL            (unsigned char) 0xFF
 
 typedef struct config
 {
diff --git a/command/logos/EinsPlus-A16_9-P1.pgm b/command/logos/EinsPlus-A16_9-P1.pgm
deleted file mode 100644
index 9845de6..0000000
--- a/command/logos/EinsPlus-A16_9-P1.pgm
+++ /dev/null
@@ -1,5 +0,0 @@
-P5
-# CREATOR: GIMP PNM Filter Version 1.1
-192 100
-255
-������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
\ No newline at end of file
diff --git a/command/logos/EinsPlus-A16_9-P2.pgm b/command/logos/EinsPlus-A16_9-P2.pgm
deleted file mode 100644
index 660934a..0000000
--- a/command/logos/EinsPlus-A16_9-P2.pgm
+++ /dev/null
@@ -1,5 +0,0 @@
-P5
-# CREATOR: GIMP PNM Filter Version 1.1
-192 100
-255
-������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
\ No newline at end of file
diff --git a/command/logos/Pro7_MAXX-A16_9-P0.pgm b/command/logos/Pro7_MAXX-A16_9-P0.pgm
new file mode 120000
index 0000000..a67c9b9
--- /dev/null
+++ b/command/logos/Pro7_MAXX-A16_9-P0.pgm
@@ -0,0 +1 @@
+ProSieben_MAXX-A16_9-P0.pgm
\ No newline at end of file
diff --git a/command/logos/ServusTV_Deutschland-A16_9-P0.pgm b/command/logos/ServusTV_Deutschland-A16_9-P0.pgm
new file mode 100644
index 0000000..c63479c
Binary files /dev/null and b/command/logos/ServusTV_Deutschland-A16_9-P0.pgm differ
diff --git a/command/logos/ServusTV_Deutschland-A16_9-P2.pgm b/command/logos/ServusTV_Deutschland-A16_9-P2.pgm
new file mode 100644
index 0000000..49e3e48
Binary files /dev/null and b/command/logos/ServusTV_Deutschland-A16_9-P2.pgm differ
diff --git a/command/logos/ServusTV_HD_Deutschland-A16_9-P0.pgm b/command/logos/ServusTV_HD_Deutschland-A16_9-P0.pgm
index 0f5d1cd..d4281ef 100644
--- a/command/logos/ServusTV_HD_Deutschland-A16_9-P0.pgm
+++ b/command/logos/ServusTV_HD_Deutschland-A16_9-P0.pgm
@@ -1,5 +1,5 @@
 P5
-#C1
-320 160
+#D1
+316 152
 255
-������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
\ No newline at end of file
+������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ [...]
\ No newline at end of file
diff --git a/command/markad-standalone.cpp b/command/markad-standalone.cpp
index 498c6df..edd5dd7 100644
--- a/command/markad-standalone.cpp
+++ b/command/markad-standalone.cpp
@@ -158,7 +158,7 @@ void *cOSDMessage::send(void *posd)
     struct sockaddr_in name;
     name.sin_family = AF_INET;
     name.sin_port = htons(osd->port);
-    memcpy(&name.sin_addr.s_addr,host->h_addr,sizeof(host->h_addr));
+    memcpy(&name.sin_addr.s_addr,host->h_addr,host->h_length);
     uint size = sizeof(name);
 
     int sock;
@@ -239,7 +239,8 @@ void cMarkAdStandalone::CalculateCheckPositions(int startframe)
     iStart=-startframe;
     iStop=-(startframe+len_in_frames);
     iStopA=-(startframe+len_in_framesA);
-    chkSTART=-iStart+(1.1*delta);
+    //chkSTART=-iStart+(1.1*delta);
+    chkSTART=-iStart+delta;
     dsyslog("chkSTART set to %i",chkSTART);
     chkSTOP=-iStop+(3*delta);
 }
@@ -339,6 +340,8 @@ void cMarkAdStandalone::CheckStart()
             {
                 if ((macontext.Info.Channels) && (macontext.Audio.Options.IgnoreDolbyDetection==false))
                     isyslog("broadcast with %i audio channels, disabling AC3 decoding",macontext.Info.Channels);
+                if (macontext.Audio.Options.IgnoreDolbyDetection==true)
+                    isyslog("disabling AC3 decoding (from logo)");
                 macontext.Info.DPid.Num=0;
                 demux->DisableDPid();
             }
@@ -399,12 +402,39 @@ void cMarkAdStandalone::CheckStart()
     if (!begin)
     {
         begin=marks.GetAround(macontext.Video.Info.FramesPerSecond*(MAXRANGE*2),iStart,MT_START,0x0F);
+        if (begin) {
+            clMark *begin2=marks.GetAround(macontext.Video.Info.FramesPerSecond*MAXRANGE,begin->position,MT_START,0x0F);
+            if (begin2) {
+                if (begin2->type>begin->type) {
+                    if (begin2->type==MT_ASPECTSTART) {
+                        // special case, only take this mark if aspectratio is 4:3
+                        if ((macontext.Video.Info.AspectRatio.Num==4) &&
+                                (macontext.Video.Info.AspectRatio.Den==3)) {
+                            isyslog("mark on position %i stronger than mark on position %i as start mark",begin2->position,begin->position);
+                            begin=begin2;
+                        }
+                    } else {
+                        isyslog("mark on position %i stronger than mark on position %i as start mark",begin2->position,begin->position);
+                        begin=begin2;
+                    }
+                }
+            }
+        }
     }
     if (begin)
     {
         marks.DelTill(begin->position);
         CalculateCheckPositions(begin->position);
         isyslog("using mark on position %i as start mark",begin->position);
+
+        if ((begin->type==MT_VBORDERSTART) || (begin->type==MT_HBORDERSTART))
+        {
+            isyslog("%s borders, logo detection disabled",(begin->type==MT_HBORDERSTART) ? "horizontal" : "vertical");
+            macontext.Video.Options.IgnoreLogoDetection=true;
+            marks.Del(MT_LOGOSTART);
+            marks.Del(MT_LOGOSTOP);
+        }
+
     }
     else
     {
@@ -524,6 +554,25 @@ void cMarkAdStandalone::AddMark(MarkAdMark *Mark)
 
     if (comment) isyslog("%s",comment);
 
+    clMark *prev=marks.GetLast();
+    if (prev) {
+        if (prev->position==Mark->Position) {
+            if (prev->type>Mark->Type)
+            {
+                isyslog("previous mark (%i) stronger than actual mark on same position, deleting %i",
+                        prev->position, Mark->Position);
+                if (comment) free(comment);
+                return;
+            }
+            else
+            {
+                isyslog("actual mark stronger then previous mark on same position, deleting %i",prev->position);
+                marks.Del(prev);
+            }
+        }
+    }
+
+    /*
     if ((Mark->Type==MT_LOGOSTART) && (!iStart) && (Mark->Position<abs(iStop)))
     {
         clMark *prev=marks.GetPrev(Mark->Position,MT_LOGOSTOP);
@@ -541,8 +590,9 @@ void cMarkAdStandalone::AddMark(MarkAdMark *Mark)
                 return;
             }
         }
-    }    
-    
+    }
+    */
+
     if (((Mark->Type & 0x0F)==MT_STOP) && (!iStart) && (Mark->Position<abs(iStop)))
     {
         clMark *prev=marks.GetPrev(Mark->Position,(Mark->Type & 0xF0)|MT_START);
@@ -570,7 +620,7 @@ void cMarkAdStandalone::AddMark(MarkAdMark *Mark)
         }
     }
 
-    clMark *prev=marks.GetLast();
+    prev=marks.GetLast();
     if (prev)
     {
         if ((prev->type & 0x0F)==(Mark->Type & 0x0F))
@@ -695,7 +745,6 @@ void cMarkAdStandalone::CheckIndexGrowing()
             double slepttime=0;
             while ((unsigned int)slepttime<sleeptime) {
                 while (sleeptime>0) {
-                    errno=0;
                     unsigned int ret=sleep(sleeptime); // now we sleep and hopefully the index will grow
                     if ((errno) && (ret)) {
                         if (abort) return;
@@ -965,8 +1014,10 @@ void cMarkAdStandalone::Process2ndPass()
         off_t offset;
         int number,frame,iframes;
         int frange=macontext.Video.Info.FramesPerSecond*120; // 40s + 80s
+	int frange_begin=p1->position-frange; // 120 seconds before first mark
+	if (frange_begin<0) frange_begin=0; // but not before beginning of broadcast
 
-        if (marks.ReadIndex(directory,isTS,p1->position-frange,frange,&number,&offset,&frame,&iframes))
+        if (marks.ReadIndex(directory,isTS,frange_begin,frange,&number,&offset,&frame,&iframes))
         {
             if (!ProcessFile2ndPass(&p1,NULL,number,offset,frame,iframes)) break;
 
diff --git a/command/marks.cpp b/command/marks.cpp
index b212ef0..c6649ac 100644
--- a/command/marks.cpp
+++ b/command/marks.cpp
@@ -17,7 +17,6 @@
 
 #include "marks.h"
 
-
 clMark::clMark(int Type, int Position, const char *Comment)
 {
     type=Type;
diff --git a/command/video.cpp b/command/video.cpp
index b828c0c..1bf3ec9 100644
--- a/command/video.cpp
+++ b/command/video.cpp
@@ -338,7 +338,7 @@ int cMarkAdLogo::Detect(int framenumber, int *logoframenumber)
     if (extract) return LOGO_NOCHANGE;
     if (!processed) return LOGO_ERROR;
 
-    tsyslog("rp=%5i mp=%5i mpV=%5.f mpI=%5.f i=%3i s=%i",rpixel,mpixel,(mpixel*LOGO_VMARK),(mpixel*LOGO_IMARK),area.intensity,area.status);
+    //tsyslog("rp=%5i mp=%5i mpV=%5.f mpI=%5.f i=%3i s=%i",rpixel,mpixel,(mpixel*LOGO_VMARK),(mpixel*LOGO_IMARK),area.intensity,area.status);
 
     if (processed==1)
     {
@@ -547,7 +547,7 @@ int cMarkAdBlackBordersHoriz::Process(int FrameNumber, int *BorderIFrame)
             borderframenumber=FrameNumber;
         } else {
             if (borderstatus!=HBORDER_VISIBLE) {
-                if (FrameNumber>(borderframenumber+macontext->Video.Info.FramesPerSecond*MINSECS))
+                if (FrameNumber>(borderframenumber+macontext->Video.Info.FramesPerSecond*MINBORDERSECS))
                 {
                     *BorderIFrame=borderframenumber;
                     borderstatus=HBORDER_VISIBLE;
@@ -586,6 +586,7 @@ int cMarkAdBlackBordersVert::Process(int FrameNumber, int *BorderIFrame)
 #define CHECKWIDTH 32
 #define BRIGHTNESS 20
 #define HOFFSET 50
+#define VOFFSET_ 120
     if (!macontext) return 0;
     if (!macontext->Video.Data.Valid) return 0;
     if (macontext->Video.Info.FramesPerSecond==0) return 0;
@@ -596,8 +597,8 @@ int cMarkAdBlackBordersVert::Process(int FrameNumber, int *BorderIFrame)
     bool fleft=true,fright=true;
     int val=0,cnt=0;
 
-    int end=macontext->Video.Data.PlaneLinesize[0]*macontext->Video.Info.Height;
-    int i=0;
+    int end=macontext->Video.Data.PlaneLinesize[0]*(macontext->Video.Info.Height-VOFFSET_);
+    int i=VOFFSET_*macontext->Video.Data.PlaneLinesize[0];
     while (i<end) {
         for (int x=0; x<CHECKWIDTH; x++)
         {
@@ -611,8 +612,9 @@ int cMarkAdBlackBordersVert::Process(int FrameNumber, int *BorderIFrame)
 
     if (fleft)
     {
-        val=cnt=i=0;
-        int w=macontext->Video.Info.Width-HOFFSET;
+        val=cnt=0;
+        i=VOFFSET_*macontext->Video.Data.PlaneLinesize[0];
+        int w=macontext->Video.Info.Width-HOFFSET-CHECKWIDTH;
         while (i<end) {
             for (int x=0; x<CHECKWIDTH; x++)
             {
@@ -630,7 +632,7 @@ int cMarkAdBlackBordersVert::Process(int FrameNumber, int *BorderIFrame)
             borderframenumber=FrameNumber;
         } else {
             if (borderstatus!=VBORDER_VISIBLE) {
-                if (FrameNumber>(borderframenumber+macontext->Video.Info.FramesPerSecond*MINSECS))
+                if (FrameNumber>(borderframenumber+macontext->Video.Info.FramesPerSecond*MINBORDERSECS))
                 {
                     *BorderIFrame=borderframenumber;
                     borderstatus=VBORDER_VISIBLE;
diff --git a/command/video.h b/command/video.h
index 05ad796..85138ca 100644
--- a/command/video.h
+++ b/command/video.h
@@ -46,7 +46,7 @@ enum
     VBORDER_VISIBLE=1
 };
 
-#define MINSECS 240
+#define MINBORDERSECS 60
 
 enum
 {
diff --git a/plugin/markad.cpp b/plugin/markad.cpp
index e7ebfb0..e5801cb 100644
--- a/plugin/markad.cpp
+++ b/plugin/markad.cpp
@@ -233,6 +233,7 @@ const char **cPluginMarkAd::SVDRPHelpPages(void)
 
 bool cPluginMarkAd::ReadTitle(const char *Directory)
 {
+    usleep(1000000); // wait 1 second
     memset(&title,0,sizeof(title));
     char *buf;
 #if VDRVERSNUM > 10700
diff --git a/plugin/setup.cpp b/plugin/setup.cpp
index 8835735..43f923b 100644
--- a/plugin/setup.cpp
+++ b/plugin/setup.cpp
@@ -146,7 +146,11 @@ void cSetupMarkAd::Store(void)
     setup->SaveInfo=saveinfo;
 }
 
+#if APIVERSNUM>=20301
+#define CHNUMWIDTH (numdigits(cChannels::MaxNumber())+1)
+#else
 #define CHNUMWIDTH (numdigits(Channels.MaxNumber())+1)
+#endif
 
 cSetupMarkAdList::cSetupMarkAdList(struct setup *Setup)
         :cOsdMenu("",CHNUMWIDTH)
@@ -168,31 +172,40 @@ cSetupMarkAdList::cSetupMarkAdList(struct setup *Setup)
                 char *m=strchr(name,'-');
                 if (m) *m=0;
 
+#if APIVERSNUM>=20301
+                cStateKey StateKey;
+                if (const cChannels *Channels = cChannels::GetChannelsRead(StateKey)) {
+                    for (const cChannel *channel=Channels->First(); channel; channel=Channels->Next(channel))
+#else
                 for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel))
-                {
-                    if (channel->Name())
+#endif
                     {
-                        char *cname=strdup(channel->Name());
-                        if (cname)
+                        if (channel->Name())
                         {
-                            for (int i=0; i<(int) strlen(cname); i++)
+                            char *cname=strdup(channel->Name());
+                            if (cname)
                             {
-                                if (cname[i]==' ') cname[i]='_';
-                                if (cname[i]=='.') cname[i]='_';
-                                if (cname[i]=='/') cname[i]='_';
-                            }
-                            if (!strcmp(name,cname))
-                            {
-                                Add(new cSetupMarkAdListItem(cString::sprintf("%i\t%s",channel->Number(),channel->Name())));
+                                for (int i=0; i<(int) strlen(cname); i++)
+                                {
+                                    if (cname[i]==' ') cname[i]='_';
+                                    if (cname[i]=='.') cname[i]='_';
+                                    if (cname[i]=='/') cname[i]='_';
+                                }
+                                if (!strcmp(name,cname))
+                                {
+                                    Add(new cSetupMarkAdListItem(cString::sprintf("%i\t%s",channel->Number(),channel->Name())));
+                                    free(cname);
+                                    break;
+                                }
                                 free(cname);
-                                break;
                             }
-                            free(cname);
                         }
                     }
+                    free(name);
+#if APIVERSNUM>=20301
+                    StateKey.Remove();
                 }
-
-                free(name);
+#endif
             }
         }
     }
diff --git a/plugin/status.cpp b/plugin/status.cpp
index a691477..efc8db3 100644
--- a/plugin/status.cpp
+++ b/plugin/status.cpp
@@ -87,6 +87,7 @@ bool cStatusMarkAd::Start(const char *FileName, const char *Name, const bool Dir
                                    setup->Log2Rec ? " -R " : "",
                                    logodir,Direct ? "-O after" : "--online=2 before",
                                    FileName);
+    usleep(1000000); // wait 1 second
     if (SystemExec(cmd)!=-1)
     {
         dsyslog("markad: executing %s",*cmd);
@@ -139,34 +140,49 @@ void cStatusMarkAd::TimerChange(const cTimer *Timer, eTimerChange Change)
 bool cStatusMarkAd::LogoExists(const cDevice *Device,const char *FileName)
 {
     if (!FileName) return false;
+    char *cname=NULL;
+#if APIVERSNUM>=20301
+    const cTimer *timer=NULL;
+    cStateKey StateKey;
+    if (const cTimers *Timers = cTimers::GetTimersRead(StateKey)) {
+        for (const cTimer *Timer=Timers->First(); Timer; Timer=Timers->Next(Timer))
+#else
     cTimer *timer=NULL;
     for (cTimer *Timer = Timers.First(); Timer; Timer=Timers.Next(Timer))
-    {
-#if APIVERSNUM>=10722
-        if (Timer->Recording() && const_cast<cDevice *>(Device)->IsTunedToTransponder(Timer->Channel()) &&
-                (difftime(time(NULL),Timer->StartTime())<60))
+#endif
         {
-            timer=Timer;
-            break;
-        }
+#if APIVERSNUM>=10722
+            if (Timer->Recording() && const_cast<cDevice *>(Device)->IsTunedToTransponder(Timer->Channel()) &&
+            (difftime(time(NULL),Timer->StartTime())<60))
+            {
+                timer=Timer;
+                break;
+            }
 #else
-        if (Timer->Recording() && Device->IsTunedToTransponder(Timer->Channel()) &&
-                (difftime(time(NULL),Timer->StartTime())<60))
-        {
-            timer=Timer;
-            break;
-        }
+            if (Timer->Recording() && Device->IsTunedToTransponder(Timer->Channel()) &&
+                    (difftime(time(NULL),Timer->StartTime())<60))
+            {
+                timer=Timer;
+                break;
+            }
 #endif
+        }
+
+        if (!timer) {
+            esyslog("markad: cannot find timer for '%s'",FileName);
+        } else {
+            const cChannel *chan=timer->Channel();
+            if (chan) cname=strdup(chan->Name());
+        }
+
+#if APIVERSNUM>=20301
+        StateKey.Remove();
     }
-    if (!timer) {
-        esyslog("markad: cannot find timer for '%s'",FileName);
-        return false;
-    }
+#endif
 
-    const cChannel *chan=timer->Channel();
-    if (!chan) return false;
-    char *cname=strdup(chan->Name());
+    if (!timer) return false;
     if (!cname) return false;
+
     for (int i=0; i<(int) strlen(cname); i++)
     {
         if (cname[i]==' ') cname[i]='_';
diff --git a/version.dist b/version.dist
index 8a6a088..a9e2c21 100644
--- a/version.dist
+++ b/version.dist
@@ -8,6 +8,6 @@
 #ifndef __version_h_
 #define __version_h_
 
-static const char *VERSION        = "0.1.5pre";
+static const char *VERSION        = "0.1.6";
 
 #endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vdr-dvb/vdr-plugin-markad.git



More information about the pkg-vdr-dvb-changes mailing list