Merge branch 'deltecent-rdaudioconvert'

This commit is contained in:
Fred Gleason 2019-01-14 21:45:23 -05:00
commit 09acd2789e
2 changed files with 22 additions and 7 deletions

View File

@ -18376,3 +18376,5 @@
2019-01-14 Patrick Linstruth <patrick@deltecent.com> 2019-01-14 Patrick Linstruth <patrick@deltecent.com>
* Fixed a bug in RDLogManager that allowed cloned clock lines to pass * Fixed a bug in RDLogManager that allowed cloned clock lines to pass
hour mark. hour mark.
2019-01-14 Patrick Linstruth <patrick@deltecent.com>
* Add error logging to RDAudioConvert class.

View File

@ -177,6 +177,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::convert()
QString err_msg; QString err_msg;
if(!temp_dir->create(&err_msg)) { if(!temp_dir->create(&err_msg)) {
delete temp_dir; delete temp_dir;
rda->log(RDConfig::LogWarning,QString("Could not create "+err_msg));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
tmpfile1=QString(temp_dir->path())+"/signed32_1.wav"; tmpfile1=QString(temp_dir->path())+"/signed32_1.wav";
@ -824,6 +825,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage1M4A(const QString &dstfile,
UpdatePeak((const float*)sample_buffer, frameInfo.samples); UpdatePeak((const float*)sample_buffer, frameInfo.samples);
if(sf_write_float(sf_dst, (const float*)sample_buffer, frameInfo.samples) != (sf_count_t)frameInfo.samples) { if(sf_write_float(sf_dst, (const float*)sample_buffer, frameInfo.samples) != (sf_count_t)frameInfo.samples) {
rda->log(RDConfig::LogWarning,QString().sprintf("%s",sf_strerror(sf_dst)));
ret = RDAudioConvert::ErrorInternal; ret = RDAudioConvert::ErrorInternal;
break; break;
} }
@ -920,6 +922,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
// //
memset(&src_info,0,sizeof(src_info)); memset(&src_info,0,sizeof(src_info));
if((src_sf=sf_open(srcfile,SFM_READ,&src_info))==NULL) { if((src_sf=sf_open(srcfile,SFM_READ,&src_info))==NULL) {
rda->log(RDConfig::LogWarning,QString().sprintf("Could not open %s",(const char *)srcfile));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
sf_command(src_sf,SFC_SET_NORM_FLOAT,NULL,SF_FALSE); sf_command(src_sf,SFC_SET_NORM_FLOAT,NULL,SF_FALSE);
@ -930,6 +933,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
dst_info.samplerate=conv_settings->sampleRate(); dst_info.samplerate=conv_settings->sampleRate();
if((dst_sf=sf_open(dstfile,SFM_WRITE,&dst_info))==NULL) { if((dst_sf=sf_open(dstfile,SFM_WRITE,&dst_info))==NULL) {
sf_close(src_sf); sf_close(src_sf);
rda->log(RDConfig::LogWarning,QString().sprintf("Could not open %s",(const char *)dstfile));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
@ -968,6 +972,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
if((src_state=src_new(conv_src_converter,src_info.channels,&err))==NULL) { if((src_state=src_new(conv_src_converter,src_info.channels,&err))==NULL) {
sf_close(src_sf); sf_close(src_sf);
sf_close(dst_sf); sf_close(dst_sf);
rda->log(RDConfig::LogWarning,QString().sprintf("%s",src_strerror(err)));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
memset(&src_data,0,sizeof(src_data)); memset(&src_data,0,sizeof(src_data));
@ -1018,6 +1023,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
src_data.input_frames=n; src_data.input_frames=n;
if((err=src_process(src_state,&src_data))!=0) { if((err=src_process(src_state,&src_data))!=0) {
fprintf(stderr,"SRC Error: %s\n",src_strerror(err)); fprintf(stderr,"SRC Error: %s\n",src_strerror(err));
rda->log(RDConfig::LogWarning,QString().sprintf("%s",src_strerror(err)));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
n=src_data.output_frames_gen; n=src_data.output_frames_gen;
@ -1137,6 +1143,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Convert(const QString &srcfile,
// Open Source File // Open Source File
// //
if((src_sf=sf_open(srcfile,SFM_READ,&src_sf_info))==NULL) { if((src_sf=sf_open(srcfile,SFM_READ,&src_sf_info))==NULL) {
rda->log(RDConfig::LogWarning,QString().sprintf("%s",sf_strerror(NULL)));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
@ -1207,6 +1214,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Flac(SNDFILE *src_sf,
default: default:
delete flac; delete flac;
rda->log(RDConfig::LogWarning,QString("flac->init() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
*/ */
@ -1232,6 +1240,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Flac(SNDFILE *src_sf,
case FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA: case FLAC__STREAM_ENCODER_INIT_STATUS_INVALID_METADATA:
default: default:
delete flac; delete flac;
rda->log(RDConfig::LogWarning,QString("flac->init() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
@ -1299,6 +1308,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Vorbis(SNDFILE *src_sf,
conv_settings->quality())) { conv_settings->quality())) {
case OV_EFAULT: case OV_EFAULT:
default: default:
rda->log(RDConfig::LogWarning,QString("vorbis_encode_init_vbr() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
case OV_EINVAL: case OV_EINVAL:
@ -1490,6 +1500,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer3(SNDFILE *src_sf,
if((lameopts=lame_init())==NULL) { if((lameopts=lame_init())==NULL) {
lame_close(lameopts); lame_close(lameopts);
::close(dst_fd); ::close(dst_fd);
rda->log(RDConfig::LogWarning,QString("lame_init() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
lame_set_mode(lameopts,mpeg_mode); lame_set_mode(lameopts,mpeg_mode);
@ -1628,6 +1639,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2Wav(SNDFILE *src_sf,
// //
if((lameopts=twolame_init())==NULL) { if((lameopts=twolame_init())==NULL) {
wave->closeWave(); wave->closeWave();
rda->log(RDConfig::LogWarning,QString("twolame_init() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
twolame_set_mode(lameopts,mpeg_mode); twolame_set_mode(lameopts,mpeg_mode);
@ -1732,6 +1744,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2(SNDFILE *src_sf,
// //
if((lameopts=twolame_init())==NULL) { if((lameopts=twolame_init())==NULL) {
::close(dst_fd); ::close(dst_fd);
rda->log(RDConfig::LogWarning,QString("twolame_init() failure"));
return RDAudioConvert::ErrorInternal; return RDAudioConvert::ErrorInternal;
} }
twolame_set_mode(lameopts,mpeg_mode); twolame_set_mode(lameopts,mpeg_mode);