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

Revoked 'Fixed numbering frames' to not break compatibility within the stable 2.0.x

This commit is contained in:
Klaus Schmidinger 2014-02-08 10:57:26 +01:00
parent fb66c3ec6b
commit 1ae32cdd6f
2 changed files with 4 additions and 9 deletions

View File

@ -7889,9 +7889,4 @@ Video Disk Recorder Revision History
directories" is set to "no". directories" is set to "no".
- Fixed clearing non-editable members in the channel editor (thanks to Rolf Ahrenberg). - Fixed clearing non-editable members in the channel editor (thanks to Rolf Ahrenberg).
- Fixed flickering if subtitles are active while the OSD demo is running. - Fixed flickering if subtitles are active while the OSD demo is running.
- Fixed numbering frames. Previously they were numbered starting from 1, while it
is apparently standard to number them from 0. Any existing recordings with editing
marks (which will now be off by one) can still be cut with all VDR versions from
1.7.32, because these will automatically adjust editing marks to I-frames.
Users of stable releases shouldn't notice any problems.
- Fixed a possible crash in the OSD demo (reported by Christopher Reimer). - Fixed a possible crash in the OSD demo (reported by Christopher Reimer).

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.91.1.5 2014/02/06 11:04:03 kls Exp $ * $Id: recording.c 2.91.1.6 2014/02/08 10:57:26 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -2394,7 +2394,7 @@ cString IndexToHMSF(int Index, bool WithFrame, double FramesPerSecond)
Sign = "-"; Sign = "-";
} }
double Seconds; double Seconds;
int f = int(modf((Index + 0.5) / FramesPerSecond, &Seconds) * FramesPerSecond); int f = int(modf((Index + 0.5) / FramesPerSecond, &Seconds) * FramesPerSecond + 1);
int s = int(Seconds); int s = int(Seconds);
int m = s / 60 % 60; int m = s / 60 % 60;
int h = s / 3600; int h = s / 3600;
@ -2407,9 +2407,9 @@ int HMSFToIndex(const char *HMSF, double FramesPerSecond)
int h, m, s, f = 1; int h, m, s, f = 1;
int n = sscanf(HMSF, "%d:%d:%d.%d", &h, &m, &s, &f); int n = sscanf(HMSF, "%d:%d:%d.%d", &h, &m, &s, &f);
if (n == 1) if (n == 1)
return h; // plain frame number return h - 1; // plain frame number
if (n >= 3) if (n >= 3)
return int(round((h * 3600 + m * 60 + s) * FramesPerSecond)) + f; return int(round((h * 3600 + m * 60 + s) * FramesPerSecond)) + f - 1;
return 0; return 0;
} }