1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

The length (as number of frames) of a recording's index file can now be determined by a call to cIndexFile::GetLength()

This commit is contained in:
Klaus Schmidinger 2011-08-13 12:45:42 +02:00
parent ef611229f3
commit 3000906715
4 changed files with 18 additions and 2 deletions

View File

@ -2228,6 +2228,8 @@ Christoph Haubrich <christoph1.haubrich@arcor.de>
the same PID the same PID
for adding HD stream content identifiers to vdr.5 for adding HD stream content identifiers to vdr.5
for reporting that Setup.InitialChannel was dereferenced without checking for NULL for reporting that Setup.InitialChannel was dereferenced without checking for NULL
for suggesting to implement a function to determine the length of a recording's
index file
Pekka Mauno <pekka.mauno@iki.fi> Pekka Mauno <pekka.mauno@iki.fi>
for fixing cSchedule::GetFollowingEvent() in case there is currently no present for fixing cSchedule::GetFollowingEvent() in case there is currently no present

View File

@ -6679,3 +6679,5 @@ Video Disk Recorder Revision History
- Now scanning new transponders before old ones, to make sure transponder changes - Now scanning new transponders before old ones, to make sure transponder changes
are recognized (thanks to Reinhard Nissl). are recognized (thanks to Reinhard Nissl).
- Implemented static cIndexFile::IndexFileName(). - Implemented static cIndexFile::IndexFileName().
- The length (as number of frames) of a recording's index file can now be determined
by a call to cIndexFile::GetLength() (suggested by Christoph Haubrich).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 2.32 2011/08/13 10:59:32 kls Exp $ * $Id: recording.c 2.33 2011/08/13 12:37:25 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -1816,6 +1816,15 @@ void cIndexFile::Delete(void)
} }
} }
int cIndexFile::GetLength(const char *FileName, bool IsPesRecording)
{
struct stat buf;
cString s = IndexFileName(FileName, IsPesRecording);
if (*s && stat(s, &buf) == 0)
return buf.st_size / (IsPesRecording ? sizeof(tIndexTs) : sizeof(tIndexPes));
return -1;
}
bool GenerateIndex(const char *FileName) bool GenerateIndex(const char *FileName)
{ {
if (DirectoryOk(FileName)) { if (DirectoryOk(FileName)) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.h 2.20 2011/08/13 09:52:25 kls Exp $ * $Id: recording.h 2.21 2011/08/13 12:36:54 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -260,6 +260,9 @@ public:
bool StoreResume(int Index) { return resumeFile.Save(Index); } bool StoreResume(int Index) { return resumeFile.Save(Index); }
bool IsStillRecording(void); bool IsStillRecording(void);
void Delete(void); void Delete(void);
static int GetLength(const char *FileName, bool IsPesRecording = false);
///< Calculates the recording length (numer of frames) without actually reading the index file.
///< Returns -1 in case of error.
}; };
class cFileName { class cFileName {