Fixed cutting a recording if there is only a single editing mark

This commit is contained in:
Klaus Schmidinger 2003-05-24 12:01:52 +02:00
parent 743a3ec123
commit 7a5ef9e999
3 changed files with 10 additions and 5 deletions

View File

@ -678,3 +678,6 @@ Lars Bl
Niko Tarnanen <niko.tarnanen@hut.fi> and Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for translating OSD texts to the Finnish language
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark

View File

@ -2184,3 +2184,5 @@ Video Disk Recorder Revision History
to Oliver Endriss).
- Fixed resume file handling in case the resume.vdr file can't be written
(thanks to Gerhard Steiner).
- Fixed cutting a recording if there is only a single editing mark (thanks to
Ralf Klueber for reporting this one).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: cutter.c 1.3 2003/04/26 15:11:17 kls Exp $
* $Id: cutter.c 1.4 2003/05/24 11:59:33 kls Exp $
*/
#include "cutter.h"
@ -77,6 +77,7 @@ void cCuttingThread::Action(void)
toMarks.Add(0);
toMarks.Save();
uchar buffer[MAXFRAMESIZE];
bool LastMark = false;
bool cutIn = true;
while (active) {
uchar FileNumber;
@ -116,7 +117,7 @@ void cCuttingThread::Action(void)
// Write one frame:
if (PictureType == I_FRAME) { // every file shall start with an I_FRAME
if (!Mark) // edited version shall end before next I-frame
if (LastMark) // edited version shall end before next I-frame
break;
if (FileSize > MEGABYTE(Setup.MaxVideoFileSize)) {
toFile = toFileName->NextFile();
@ -167,9 +168,8 @@ void cCuttingThread::Action(void)
FileSize = 0;
}
}
// the 'else' case (i.e. 'final end mark reached') is handled above
// in 'Write one frame', so that the edited version will end right
// before the next I-frame.
else
LastMark = true;
}
}
}