diff options
Diffstat (limited to 'markad-standalone.cpp')
-rw-r--r-- | markad-standalone.cpp | 49 |
1 files changed, 14 insertions, 35 deletions
diff --git a/markad-standalone.cpp b/markad-standalone.cpp index e6d1b20..2a8001e 100644 --- a/markad-standalone.cpp +++ b/markad-standalone.cpp @@ -35,43 +35,26 @@ bool cMarkAdStandalone::ProcessFile(const char *Directory, int Number) if (!Directory) return false; if (!Number) return false; - uchar *data; - int datalen; - int dataread; + int datalen=385024; + uchar data[datalen]; char *fbuf; if (isTS) { - datalen=70688; // multiple of 188 - data=(uchar *) malloc(datalen); - if (!data) return false; - if (asprintf(&fbuf,"%s/%05i.ts",Directory,Number)==-1) - { - free(data); - return false; - } + if (asprintf(&fbuf,"%s/%05i.ts",Directory,Number)==-1) return false; } else { - datalen=69632; // VDR paket size - data=(uchar *) malloc(datalen); - if (!data) return false; - if (asprintf(&fbuf,"%s/%03i.vdr",Directory,Number)==-1) - { - free(data); - return false; - } + if (asprintf(&fbuf,"%s/%03i.vdr",Directory,Number)==-1) return false; } int f=open(fbuf,O_RDONLY); free(fbuf); - if (f==-1) - { - free(data); - return false; - } + if (f==-1) return false; + + int dataread,lastiframe=0; + dsyslog("markad [%i]: processing file %05i",recvnumber,Number); - int lastiframe=0; while ((dataread=read(f,data,datalen))>0) { @@ -183,7 +166,6 @@ bool cMarkAdStandalone::ProcessFile(const char *Directory, int Number) } } } - free(data); close(f); return true; } @@ -222,13 +204,13 @@ bool cMarkAdStandalone::CheckTS(const char *Directory) return false; } free(buf); - // VDR detected + // .VDR detected isTS=false; MaxFiles=999; return true; } free(buf); - // TS detected + // .TS detected isTS=true; MaxFiles=65535; return true; @@ -332,7 +314,6 @@ void cMarkAdStandalone::CheckPATPMT(const char *Directory) case 0x1b: macontext.General.VPid.Type=MARKAD_PIDTYPE_VIDEO_H264; - macontext.General.H264=true; // just use the first pid if (!macontext.General.VPid.Num) macontext.General.VPid.Num=pid; break; @@ -372,14 +353,15 @@ cMarkAdStandalone::cMarkAdStandalone(const char *Directory) } else { - // TODO: get infos from VDR PES + //macontext.General.APid.Num=-1; + macontext.General.DPid.Num=-1; + macontext.General.VPid.Num=-1; macontext.General.VPid.Type=MARKAD_PIDTYPE_VIDEO_H262; - macontext.General.H264=false; } if (macontext.General.VPid.Num) { - dsyslog("markad [%i]: using %s-video (0x%04x)",recvnumber,macontext.General.H264 ? "H264": "H262", + dsyslog("markad [%i]: using %s-video (0x%04x)",recvnumber,macontext.General.VPid.Type==MARKAD_PIDTYPE_VIDEO_H264 ? "H264": "H262", macontext.General.VPid.Num); video_demux = new cMarkAdDemux(recvnumber); } @@ -747,9 +729,6 @@ int main(int argc, char *argv[]) signal(SIGUSR1, signal_handler); */ - // do cleanup at exit... -// atexit(cleanUp); - // now do the work... struct stat statbuf; if (stat(recDir,&statbuf)==-1) |