summaryrefslogtreecommitdiff
path: root/markad-standalone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'markad-standalone.cpp')
-rw-r--r--markad-standalone.cpp94
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;
+
+}