mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-27 22:22:36 +02:00
2017-09-19 Fred Gleason <fredg@paravelsystems.com>
* Removed redundant 'int chans' parameter from the 'RDRenderer::renderTo*()' methods in 'lib/rdrenderer.cpp' and 'lib/rdrenderer.h'. * Fixed a bug in 'lib/rdrenderer.cpp' and 'lib/rdrenerer.h' that caused logs rendered to cart/cut in stereo regardless of the number of channels specified.
This commit is contained in:
parent
78fa7dbe17
commit
50447fa6f7
@ -16032,3 +16032,10 @@
|
||||
in rdlogedit(1).
|
||||
* Added a length check when rendering to cart/cut in
|
||||
'lib/rdrenderer.cpp'.
|
||||
2017-09-19 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Removed redundant 'int chans' parameter from the
|
||||
'RDRenderer::renderTo*()' methods in 'lib/rdrenderer.cpp' and
|
||||
'lib/rdrenderer.h'.
|
||||
* Fixed a bug in 'lib/rdrenderer.cpp' and 'lib/rdrenerer.h' that
|
||||
caused logs rendered to cart/cut in stereo regardless of the number
|
||||
of channels specified.
|
||||
|
@ -249,9 +249,9 @@ RDRenderer::~RDRenderer()
|
||||
|
||||
|
||||
bool RDRenderer::renderToFile(const QString &outfile,RDLogEvent *log,
|
||||
unsigned chans,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
RDSettings *s,const QTime &start_time,
|
||||
bool ignore_stops,QString *err_msg,
|
||||
int first_line,int last_line,
|
||||
const QTime &first_time,const QTime &last_time)
|
||||
{
|
||||
QString temp_output_filename;
|
||||
@ -284,7 +284,7 @@ bool RDRenderer::renderToFile(const QString &outfile,RDLogEvent *log,
|
||||
//
|
||||
// Render It
|
||||
//
|
||||
if(!Render(temp_output_filename,log,chans,s,start_time,ignore_stops,err_msg,
|
||||
if(!Render(temp_output_filename,log,s,start_time,ignore_stops,err_msg,
|
||||
first_line,last_line,first_time,last_time)) {
|
||||
return false;
|
||||
}
|
||||
@ -305,7 +305,7 @@ bool RDRenderer::renderToFile(const QString &outfile,RDLogEvent *log,
|
||||
ProgressMessage(tr("Pass 1 of 1"));
|
||||
render_total_passes=1;
|
||||
|
||||
ret=Render(outfile,log,chans,s,start_time,ignore_stops,err_msg,
|
||||
ret=Render(outfile,log,s,start_time,ignore_stops,err_msg,
|
||||
first_line,last_line,first_time,last_time);
|
||||
emit lineStarted(log->size(),log->size());
|
||||
return ret;
|
||||
@ -315,9 +315,9 @@ bool RDRenderer::renderToFile(const QString &outfile,RDLogEvent *log,
|
||||
|
||||
|
||||
bool RDRenderer::renderToCart(unsigned cartnum,int cutnum,RDLogEvent *log,
|
||||
unsigned chans,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
RDSettings *s,const QTime &start_time,
|
||||
bool ignore_stops,QString *err_msg,
|
||||
int first_line,int last_line,
|
||||
const QTime &first_time,const QTime &last_time)
|
||||
{
|
||||
QString temp_output_filename;
|
||||
@ -366,7 +366,7 @@ bool RDRenderer::renderToCart(unsigned cartnum,int cutnum,RDLogEvent *log,
|
||||
//
|
||||
// Render It
|
||||
//
|
||||
if(!Render(temp_output_filename,log,chans,s,start_time,ignore_stops,err_msg,
|
||||
if(!Render(temp_output_filename,log,s,start_time,ignore_stops,err_msg,
|
||||
first_line,last_line,first_time,last_time)) {
|
||||
return false;
|
||||
}
|
||||
@ -376,7 +376,7 @@ bool RDRenderer::renderToCart(unsigned cartnum,int cutnum,RDLogEvent *log,
|
||||
//
|
||||
ProgressMessage(tr("Pass 2 of 2"));
|
||||
ProgressMessage(tr("Importing cart"));
|
||||
ok=ImportCart(temp_output_filename,cartnum,cutnum,err_msg);
|
||||
ok=ImportCart(temp_output_filename,cartnum,cutnum,s->channels(),err_msg);
|
||||
DeleteTempFile(temp_output_filename);
|
||||
emit lineStarted(log->size()+1,log->size()+1);
|
||||
if(!ok) {
|
||||
@ -399,8 +399,8 @@ void RDRenderer::abort()
|
||||
}
|
||||
|
||||
|
||||
bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
RDSettings *s,const QTime &start_time,bool ignore_stops,
|
||||
bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
const QTime &first_time,const QTime &last_time)
|
||||
{
|
||||
@ -419,7 +419,7 @@ bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
|
||||
memset(&sf_info,0,sizeof(sf_info));
|
||||
sf_info.samplerate=render_system->sampleRate();
|
||||
sf_info.channels=chans;
|
||||
sf_info.channels=s->channels();
|
||||
if(s->format()==RDSettings::Pcm16) {
|
||||
sf_info.format=SF_FORMAT_WAV|SF_FORMAT_PCM_16;
|
||||
}
|
||||
@ -440,7 +440,7 @@ bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
for(int i=0;i<log->size();i++) {
|
||||
lls.push_back(new __RDRenderLogLine(log->logLine(i),render_user,
|
||||
render_station,render_system,
|
||||
render_config,chans));
|
||||
render_config,s->channels()));
|
||||
if(ignore_stops&&(lls.back()->transType()==RDLogLine::Stop)) {
|
||||
lls.back()->setTransType(RDLogLine::Play);
|
||||
}
|
||||
@ -471,7 +471,7 @@ bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
}
|
||||
lls.push_back(new __RDRenderLogLine(new RDLogLine(),render_user,
|
||||
render_station,render_system,
|
||||
render_config,chans));
|
||||
render_config,s->channels()));
|
||||
lls.back()->setTransType(RDLogLine::Play);
|
||||
if((!first_time.isNull())&&(first_line==-1)) {
|
||||
first_line=log->size();
|
||||
@ -518,13 +518,13 @@ bool RDRenderer::Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
current_time=current_time.addMSecs(lls.at(i)->cut()->endPoint()-
|
||||
lls.at(i)->cut()->startPoint());
|
||||
}
|
||||
pcm=new float[frames*chans];
|
||||
memset(pcm,0,frames*chans);
|
||||
pcm=new float[frames*s->channels()];
|
||||
memset(pcm,0,frames*s->channels());
|
||||
|
||||
for(unsigned j=0;j<i;j++) {
|
||||
Sum(pcm,lls.at(j),frames,chans);
|
||||
Sum(pcm,lls.at(j),frames,s->channels());
|
||||
}
|
||||
Sum(pcm,lls.at(i),frames,chans);
|
||||
Sum(pcm,lls.at(i),frames,s->channels());
|
||||
sf_writef_float(sf_out,pcm,frames);
|
||||
delete pcm;
|
||||
pcm=NULL;
|
||||
@ -598,12 +598,13 @@ bool RDRenderer::ConvertAudio(const QString &srcfile,const QString &dstfile,
|
||||
|
||||
|
||||
bool RDRenderer::ImportCart(const QString &srcfile,unsigned cartnum,int cutnum,
|
||||
QString *err_msg)
|
||||
unsigned chans,QString *err_msg)
|
||||
{
|
||||
RDAudioImport::ErrorCode err_import_code;
|
||||
RDAudioConvert::ErrorCode err_conv_code;
|
||||
RDSettings settings;
|
||||
|
||||
settings.setChannels(chans);
|
||||
settings.setNormalizationLevel(0);
|
||||
|
||||
RDAudioImport *conv=new RDAudioImport(render_station,render_config,this);
|
||||
|
@ -80,13 +80,13 @@ class RDRenderer : public QObject
|
||||
RDRenderer(RDUser *user,RDStation *station,RDSystem *system,RDConfig *config,
|
||||
QObject *parent=0);
|
||||
~RDRenderer();
|
||||
bool renderToFile(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
RDSettings *s,const QTime &start_time,bool ignore_stops,
|
||||
bool renderToFile(const QString &outfile,RDLogEvent *log,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
const QTime &first_time=QTime(),
|
||||
const QTime &last_time=QTime());
|
||||
bool renderToCart(unsigned cartnum,int cutnum,RDLogEvent *log,unsigned chans,
|
||||
RDSettings *s,const QTime &start_time,bool ignore_stops,
|
||||
bool renderToCart(unsigned cartnum,int cutnum,RDLogEvent *log,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
const QTime &first_time=QTime(),
|
||||
const QTime &last_time=QTime());
|
||||
@ -100,8 +100,8 @@ class RDRenderer : public QObject
|
||||
void lineStarted(int linno,int totallines);
|
||||
|
||||
private:
|
||||
bool Render(const QString &outfile,RDLogEvent *log,unsigned chans,
|
||||
RDSettings *s,const QTime &start_time,bool ignore_stops,
|
||||
bool Render(const QString &outfile,RDLogEvent *log,RDSettings *s,
|
||||
const QTime &start_time,bool ignore_stops,
|
||||
QString *err_msg,int first_line,int last_line,
|
||||
const QTime &first_time,const QTime &last_time);
|
||||
void Sum(float *pcm_out,__RDRenderLogLine *ll,sf_count_t frames,
|
||||
@ -109,7 +109,7 @@ class RDRenderer : public QObject
|
||||
bool ConvertAudio(const QString &srcfile,const QString &dstfile,
|
||||
RDSettings *s,QString *err_msg);
|
||||
bool ImportCart(const QString &srcfile,unsigned cartnum,int cutnum,
|
||||
QString *err_msg);
|
||||
unsigned chans,QString *err_msg);
|
||||
uint64_t FramesFromMsec(uint64_t msec) const;
|
||||
void DeleteTempFile(const QString &filename) const;
|
||||
void ProgressMessage(const QString &msg);
|
||||
|
@ -287,13 +287,13 @@ void RenderDialog::renderData()
|
||||
connect(render_progress_dialog,SIGNAL(cancelled()),r,SLOT(abort()));
|
||||
if(render_to_box->currentItem()) {
|
||||
result=
|
||||
r->renderToFile(render_filename_edit->text(),render_log,2,render_settings,
|
||||
r->renderToFile(render_filename_edit->text(),render_log,render_settings,
|
||||
start_time,render_ignorestop_box->currentItem(),
|
||||
&err_msg,first_line,last_line);
|
||||
}
|
||||
else {
|
||||
result=
|
||||
r->renderToCart(render_to_cartnum,render_to_cutnum,render_log,2,
|
||||
r->renderToCart(render_to_cartnum,render_to_cutnum,render_log,
|
||||
render_settings,start_time,
|
||||
render_ignorestop_box->currentItem(),
|
||||
&err_msg,first_line,last_line);
|
||||
|
@ -330,7 +330,7 @@ void MainObject::userData()
|
||||
this,SLOT(printProgressMessage(const QString &)));
|
||||
if(render_to_file.isEmpty()) {
|
||||
if(!r->renderToCart(render_cart_number,render_cut_number,log_event,
|
||||
render_channels,&render_settings,render_start_time,
|
||||
&render_settings,render_start_time,
|
||||
render_ignore_stops,&err_msg,render_first_line,
|
||||
render_last_line,render_first_time,render_last_time)) {
|
||||
fprintf(stderr,"rdrender: %s\n",(const char *)err_msg);
|
||||
@ -338,8 +338,8 @@ void MainObject::userData()
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!r->renderToFile(render_to_file,log_event,render_channels,
|
||||
&render_settings,render_start_time,render_ignore_stops,
|
||||
if(!r->renderToFile(render_to_file,log_event,&render_settings,
|
||||
render_start_time,render_ignore_stops,
|
||||
&err_msg,render_first_line,render_last_line,
|
||||
render_first_time,render_last_time)) {
|
||||
fprintf(stderr,"rdrender: %s\n",(const char *)err_msg);
|
||||
|
Loading…
x
Reference in New Issue
Block a user