From fb9c23483f41f864b9757a287b11e80a13668366 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 26 Feb 2020 15:08:04 -0500 Subject: [PATCH] 2020-02-26 Fred Gleason * Added sanity check code to 'RDRender'. --- ChangeLog | 2 ++ lib/rdrenderer.cpp | 26 ++++++++++++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 05198def..9fd69bbd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -19719,3 +19719,5 @@ * Removed the 'Q3ProgressBar' dependency from rdairplay(1). 2020-02-26 Fred Gleason * Removed the 'Q3ProgressBar' dependency from rdcartslots(1). +2020-02-26 Fred Gleason + * Added sanity check code to 'RDRender'. diff --git a/lib/rdrenderer.cpp b/lib/rdrenderer.cpp index 80ad0b9e..0c83462f 100644 --- a/lib/rdrenderer.cpp +++ b/lib/rdrenderer.cpp @@ -496,17 +496,27 @@ bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,RDSettings *s, sf_count_t frames=0; if((lls.at(i+1)->transType()==RDLogLine::Segue)&& (lls.at(i)->segueStartPoint()>=0)) { - frames=FramesFromMsec(lls.at(i)->segueStartPoint()- - lls.at(i)->startPoint()); - current_time= - current_time.addMSecs(lls.at(i)->segueStartPoint()- + if(lls.at(i)->segueStartPoint()>lls.at(i)->startPoint()) { + frames=FramesFromMsec(lls.at(i)->segueStartPoint()- lls.at(i)->startPoint()); + current_time= + current_time.addMSecs(lls.at(i)->segueStartPoint()- + lls.at(i)->startPoint()); + } + else { + frames=0; + } } else { - frames=FramesFromMsec(lls.at(i)->endPoint()- - lls.at(i)->startPoint()); - current_time=current_time.addMSecs(lls.at(i)->endPoint()- - lls.at(i)->startPoint()); + if(lls.at(i)->endPoint()>lls.at(i)->startPoint()) { + frames=FramesFromMsec(lls.at(i)->endPoint()- + lls.at(i)->startPoint()); + current_time=current_time.addMSecs(lls.at(i)->endPoint()- + lls.at(i)->startPoint()); + } + else { + frames=0; + } } pcm=new float[frames*s->channels()]; memset(pcm,0,frames*s->channels()*sizeof(float));