mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd()
This commit is contained in:
parent
f60d90aeb6
commit
ad45f801d5
4
HISTORY
4
HISTORY
@ -8502,3 +8502,7 @@ Video Disk Recorder Revision History
|
|||||||
on a suggestion by Thomas Reufer).
|
on a suggestion by Thomas Reufer).
|
||||||
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
|
- Updated sources.conf to reflect the fact that Astra 4A and SES5 are actually in
|
||||||
two separate positions (thanks to Arthur Konovalov).
|
two separate positions (thanks to Arthur Konovalov).
|
||||||
|
- Fixed cMarks::GetNextBegin() and cMarks::GetNextEnd(). The behavior of these two
|
||||||
|
functions is now exacly as described in the header file. Editing marks that are
|
||||||
|
placed at exactly the same offset in a recording are now preserved in the cutting
|
||||||
|
process.
|
||||||
|
@ -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 3.24 2015/01/25 15:39:24 kls Exp $
|
* $Id: recording.c 3.25 2015/02/05 13:50:39 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "recording.h"
|
#include "recording.h"
|
||||||
@ -2169,7 +2169,7 @@ cMark *cMarks::GetNext(int Position)
|
|||||||
cMark *cMarks::GetNextBegin(cMark *EndMark)
|
cMark *cMarks::GetNextBegin(cMark *EndMark)
|
||||||
{
|
{
|
||||||
cMark *BeginMark = EndMark ? Next(EndMark) : First();
|
cMark *BeginMark = EndMark ? Next(EndMark) : First();
|
||||||
if (BeginMark) {
|
if (BeginMark && EndMark && BeginMark->Position() == EndMark->Position()) {
|
||||||
while (cMark *NextMark = Next(BeginMark)) {
|
while (cMark *NextMark = Next(BeginMark)) {
|
||||||
if (BeginMark->Position() == NextMark->Position()) { // skip Begin/End at the same position
|
if (BeginMark->Position() == NextMark->Position()) { // skip Begin/End at the same position
|
||||||
if (!(BeginMark = Next(NextMark)))
|
if (!(BeginMark = Next(NextMark)))
|
||||||
@ -2187,7 +2187,7 @@ cMark *cMarks::GetNextEnd(cMark *BeginMark)
|
|||||||
if (!BeginMark)
|
if (!BeginMark)
|
||||||
return NULL;
|
return NULL;
|
||||||
cMark *EndMark = Next(BeginMark);
|
cMark *EndMark = Next(BeginMark);
|
||||||
if (EndMark) {
|
if (EndMark && BeginMark && BeginMark->Position() == EndMark->Position()) {
|
||||||
while (cMark *NextMark = Next(EndMark)) {
|
while (cMark *NextMark = Next(EndMark)) {
|
||||||
if (EndMark->Position() == NextMark->Position()) { // skip End/Begin at the same position
|
if (EndMark->Position() == NextMark->Position()) { // skip End/Begin at the same position
|
||||||
if (!(EndMark = Next(NextMark)))
|
if (!(EndMark = Next(NextMark)))
|
||||||
|
Loading…
Reference in New Issue
Block a user