diff options
Diffstat (limited to 'markad-standalone.cpp')
-rw-r--r-- | markad-standalone.cpp | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/markad-standalone.cpp b/markad-standalone.cpp new file mode 100644 index 0000000..6837807 --- /dev/null +++ b/markad-standalone.cpp @@ -0,0 +1,94 @@ +/* + * markad-standalone.cpp: A program for the Video Disk Recorder + * + * See the README file for copyright information and how to reach the author. + * + * $Id$ + */ + +#include "markad-standalone.h" + +#define MAXSYSLOGBUF 255 +void syslog_with_tid(int priority, const char *format, ...) +{ + va_list ap; + char fmt[MAXSYSLOGBUF]; + snprintf(fmt, sizeof(fmt), "[%d] %s", getpid(), format); + va_start(ap, format); + vsyslog(priority, fmt, ap); + va_end(ap); +} + +int main(int argc, char *argv[]) +{ + uchar data[35344]; + int datalen; + + //int f=open("/var/lib/video/031.ts",O_RDWR); + //int f=open("/root/frames_515.dat",O_RDWR); + //int f=open("/root/VDR/PLUGINS/markad/test/ANIXEHD-Spiderman3-h.264.ts",O_RDWR); + int f=open("/tmp/input0.ts",O_RDWR); + if (f==-1) return -1; + + MarkAdContext macontext; + memset(&macontext,0,sizeof(macontext)); + + macontext.General.StartTime=0; + macontext.General.EndTime=0xFFFFFFFF; + macontext.General.VPid=0x100; + //macontext.General.DPid=0x403; +// macontext.General.DPid=0x203; + //macontext.General.APid=0x101; + + cMarkAdDemux *demux = new cMarkAdDemux(); + cMarkAdDecoder *decoder = new cMarkAdDecoder(255,false,false); + cMarkAdVideo *video = new cMarkAdVideo(255,&macontext); + MarkAdMark *mark; + + int lastiframe=1; + while (datalen=read(f,&data,sizeof(data))) + { + uchar *pkt; + int pktlen; + + uchar *tspkt = data; + int tslen = datalen; + + while (tslen>0) + { + int len=demux->Process(macontext.General.VPid,tspkt,tslen,&pkt,&pktlen); + if (len<0) + { + break; + } + else + { + + if (pkt) + { + + decoder->FindH262VideoInfos(&macontext,pkt,pktlen); + if (decoder->DecodeVideo(&macontext,pkt,pktlen)) + { + mark=video->Process(lastiframe++); + // AddMark(mark); + + } + + printf("Pktlen=%i\n", pktlen); + } + + tspkt+=len; + tslen-=len; + } + } + } + delete demux; + delete decoder; + delete video; + close(f); + + + return 0; + +} |