mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-27 06:08:01 +02:00
2018-08-28 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression that caused the RDXport service to throw a segfault when importing audio.
This commit is contained in:
parent
c3adee3c07
commit
9b25471da1
@ -17533,3 +17533,6 @@
|
|||||||
2018-08-28 Fred Gleason <fredg@paravelsystems.com>
|
2018-08-28 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Added an optional third argument to the 'Add Next' ['PX'] RML
|
* Added an optional third argument to the 'Add Next' ['PX'] RML
|
||||||
to allow specication of the transition type.
|
to allow specication of the transition type.
|
||||||
|
2018-08-28 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Fixed a regression that caused the RDXport service to throw
|
||||||
|
a segfault when importing audio.
|
||||||
|
@ -69,6 +69,7 @@ RDAudioConvert::RDAudioConvert(QObject *parent)
|
|||||||
conv_src_wavedata=new RDWaveData();
|
conv_src_wavedata=new RDWaveData();
|
||||||
conv_dst_wavedata=NULL;
|
conv_dst_wavedata=NULL;
|
||||||
conv_src_converter=rda->libraryConf()->srcConverter();
|
conv_src_converter=rda->libraryConf()->srcConverter();
|
||||||
|
conv_transcoding_delay=rda->config()->transcodingDelay();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Load MPEG Libraries
|
// Load MPEG Libraries
|
||||||
@ -656,7 +657,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage1Mpeg(const QString &dstfile,
|
|||||||
return RDAudioConvert::ErrorFormatError;
|
return RDAudioConvert::ErrorFormatError;
|
||||||
}
|
}
|
||||||
memmove(buffer,mad_stream.next_frame,left_over);
|
memmove(buffer,mad_stream.next_frame,left_over);
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
memset(buffer+left_over,0,MAD_BUFFER_GUARD);
|
memset(buffer+left_over,0,MAD_BUFFER_GUARD);
|
||||||
mad_stream_buffer(&mad_stream,buffer,MAD_BUFFER_GUARD+left_over);
|
mad_stream_buffer(&mad_stream,buffer,MAD_BUFFER_GUARD+left_over);
|
||||||
@ -886,7 +887,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage1SndFile(const QString &dstfile,
|
|||||||
if((end-start)<buffer_size) {
|
if((end-start)<buffer_size) {
|
||||||
buffer_size=end-start;
|
buffer_size=end-start;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
delete buffer;
|
delete buffer;
|
||||||
sf_close(sf_dst);
|
sf_close(sf_dst);
|
||||||
@ -1075,7 +1076,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
|
|||||||
sf_close(dst_sf);
|
sf_close(dst_sf);
|
||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1099,7 +1100,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage2Convert(const QString &srcfile,
|
|||||||
sf_close(dst_sf);
|
sf_close(dst_sf);
|
||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
delete st_conv;
|
delete st_conv;
|
||||||
}
|
}
|
||||||
@ -1512,7 +1513,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer3(SNDFILE *src_sf,
|
|||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1523,7 +1524,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer3(SNDFILE *src_sf,
|
|||||||
::close(dst_fd);
|
::close(dst_fd);
|
||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1653,7 +1654,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2Wav(SNDFILE *src_sf,
|
|||||||
else {
|
else {
|
||||||
fprintf(stderr,"TwoLAME encode error\n");
|
fprintf(stderr,"TwoLAME encode error\n");
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
if((s=twolame_encode_flush(lameopts,mpeg,2048))>=0) {
|
if((s=twolame_encode_flush(lameopts,mpeg,2048))>=0) {
|
||||||
if(wave->writeWave(mpeg,s)!=s) {
|
if(wave->writeWave(mpeg,s)!=s) {
|
||||||
@ -1756,7 +1757,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Layer2(SNDFILE *src_sf,
|
|||||||
else {
|
else {
|
||||||
fprintf(stderr,"TwoLAME encode error\n");
|
fprintf(stderr,"TwoLAME encode error\n");
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
if((s=twolame_encode_flush(lameopts,mpeg,2048))>=0) {
|
if((s=twolame_encode_flush(lameopts,mpeg,2048))>=0) {
|
||||||
if(write(dst_fd,mpeg,s)!=s) {
|
if(write(dst_fd,mpeg,s)!=s) {
|
||||||
@ -1823,7 +1824,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Pcm16(SNDFILE *src_sf,
|
|||||||
delete wave;
|
delete wave;
|
||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
delete sf_buffer;
|
delete sf_buffer;
|
||||||
wave->closeWave();
|
wave->closeWave();
|
||||||
@ -1873,7 +1874,7 @@ RDAudioConvert::ErrorCode RDAudioConvert::Stage3Pcm24(SNDFILE *src_sf,
|
|||||||
delete wave;
|
delete wave;
|
||||||
return RDAudioConvert::ErrorNoSpace;
|
return RDAudioConvert::ErrorNoSpace;
|
||||||
}
|
}
|
||||||
usleep(conv_config->transcodingDelay());
|
usleep(conv_transcoding_delay);
|
||||||
}
|
}
|
||||||
delete sf_buffer;
|
delete sf_buffer;
|
||||||
delete pcm24;
|
delete pcm24;
|
||||||
|
@ -108,6 +108,7 @@ class RDAudioConvert : public QObject
|
|||||||
int conv_start_point;
|
int conv_start_point;
|
||||||
int conv_end_point;
|
int conv_end_point;
|
||||||
float conv_speed_ratio;
|
float conv_speed_ratio;
|
||||||
|
int conv_transcoding_delay;
|
||||||
RDSettings *conv_settings;
|
RDSettings *conv_settings;
|
||||||
RDWaveData *conv_src_wavedata;
|
RDWaveData *conv_src_wavedata;
|
||||||
RDWaveData *conv_dst_wavedata;
|
RDWaveData *conv_dst_wavedata;
|
||||||
@ -118,7 +119,6 @@ class RDAudioConvert : public QObject
|
|||||||
void *conv_mad_handle;
|
void *conv_mad_handle;
|
||||||
void *conv_lame_handle;
|
void *conv_lame_handle;
|
||||||
void *conv_twolame_handle;
|
void *conv_twolame_handle;
|
||||||
RDConfig *conv_config;
|
|
||||||
#ifdef HAVE_MAD
|
#ifdef HAVE_MAD
|
||||||
void (*mad_stream_init)(struct mad_stream *);
|
void (*mad_stream_init)(struct mad_stream *);
|
||||||
void (*mad_frame_init)(struct mad_frame *);
|
void (*mad_frame_init)(struct mad_frame *);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user