summaryrefslogtreecommitdiff
path: root/command/marks.cpp
diff options
context:
space:
mode:
authorJochen Dolze <vdr@dolze.de>2010-11-07 23:20:08 +0100
committerJochen Dolze <vdr@dolze.de>2010-11-07 23:20:08 +0100
commitd48a56868074ae2cb71bb6be45fa62aa9f5c2076 (patch)
tree9fedf03b2ef838573414eaf7e5de973dc3fd5156 /command/marks.cpp
parenta6fb12c83bb712faa270b3cba7ff3d2b17b0209e (diff)
downloadvdr-plugin-markad-d48a56868074ae2cb71bb6be45fa62aa9f5c2076.tar.gz
vdr-plugin-markad-d48a56868074ae2cb71bb6be45fa62aa9f5c2076.tar.bz2
Rewrote GenIndex (works with SDTV-PES, should work with SDTV-TS, unknown on HDTV-TS)
Diffstat (limited to 'command/marks.cpp')
-rw-r--r--command/marks.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/command/marks.cpp b/command/marks.cpp
index a59840b..2ebef9f 100644
--- a/command/marks.cpp
+++ b/command/marks.cpp
@@ -452,19 +452,9 @@ bool clMarks::ReadIndex(const char *Directory, bool isTS, int FrameNumber, int R
return true;
}
-void clMarks::WriteIndex(const char *Directory, bool isTS, uint64_t Offset,
- int FrameType, int Number)
+void clMarks::WriteIndex(bool isTS, uint64_t Offset, int FrameType, int Number)
{
- if (indexfd==-1)
- {
- char *ipath=NULL;
- if (asprintf(&ipath,"%s/index%s.generated",Directory,isTS ? "" : ".vdr")==-1) return;
- indexfd=open(ipath,O_WRONLY|O_CREAT|O_TRUNC,0644);
- free(ipath);
- if (indexfd==-1) return;
- Offset=0;
- FrameType=1;
- }
+ if (indexfd==-1) return;
if (isTS)
{
struct tIndexTS IndexTS;
@@ -483,6 +473,21 @@ void clMarks::WriteIndex(const char *Directory, bool isTS, uint64_t Offset,
IndexVDR.reserved=0;
if (write(indexfd,&IndexVDR,sizeof(IndexVDR))!=sizeof(IndexVDR)) return;
}
+}
+
+void clMarks::WriteIndex(const char *Directory, bool isTS, uint64_t Offset,
+ int FrameType, int Number)
+{
+ if (indexfd==-1)
+ {
+ char *ipath=NULL;
+ if (asprintf(&ipath,"%s/index%s.generated",Directory,isTS ? "" : ".vdr")==-1) return;
+ indexfd=open(ipath,O_WRONLY|O_CREAT|O_TRUNC,0644);
+ free(ipath);
+ if (indexfd==-1) return;
+ if (Offset>376) WriteIndex(isTS,0,1,Number);
+ }
+ WriteIndex(isTS,Offset,FrameType,Number);
return;
}