diff options
author | Jochen Dolze <vdr@dolze.de> | 2010-11-07 23:20:08 +0100 |
---|---|---|
committer | Jochen Dolze <vdr@dolze.de> | 2010-11-07 23:20:08 +0100 |
commit | d48a56868074ae2cb71bb6be45fa62aa9f5c2076 (patch) | |
tree | 9fedf03b2ef838573414eaf7e5de973dc3fd5156 /command/marks.cpp | |
parent | a6fb12c83bb712faa270b3cba7ff3d2b17b0209e (diff) | |
download | vdr-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.cpp | 29 |
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; } |