38 "key",
"MultiChannelAudioFileWriter",
39 "category",
"Audio File I/O",
40 "description",
"MultiChannelAudioFileWriter",
43 static FactoryRegistrator<ProcessingFactory, MultiChannelAudioFileWriter>
reg =
metadata;
48 : mNativeStream(
NULL )
54 : mNativeStream(
NULL )
73 return "MultiChannelAudioFileWriter";
88 typedef std::vector<Audio> InputVec;
94 bool allInputsSameSize =
true;
97 inputsSize = inputs[0].GetSize();
99 for ( InputVec::iterator i = inputs.begin();
100 i!= inputs.end() && allInputsSameSize;
103 allInputsSameSize = ( inputsSize == (*i).GetSize() );
107 CLAM_ASSERT( allInputsSameSize,
"Input sizes differ!" );
113 for( InputVec::iterator i = inputs.begin();
114 i != inputs.end(); i++ )
130 bool allInputsSameSize =
true;
131 TSize inputsSize = 0;
135 for ( VectorOfInputs::iterator i =
mInputs.begin();
138 inputsRef.push_back( &((*i)->GetAudio()) );
141 inputsSize = inputsRef[0]->GetSize();
143 for ( InputsRefVector::iterator i = inputsRef.begin();
144 i!= inputsRef.end() && allInputsSameSize;
147 allInputsSameSize = ( inputsSize == (*i)->GetSize() );
151 CLAM_ASSERT( allInputsSameSize,
"Input sizes differ!" );
157 for( InputsRefVector::iterator i = inputsRef.begin();
158 i != inputsRef.end(); i++ )
164 for( VectorOfInputs::iterator i =
mInputs.begin();
186 unsigned nChannels =
mConfig.HasNChannels()?
mConfig.GetNChannels() : 1;
199 return AddConfigErrorMessage(
"The format does not support such number of channels, endiannes or sampling rate.");
222 for (
unsigned i = 0; i < nChannels; i++ )
226 std::stringstream sstr;
230 new AudioInPort(
"Channel #" + sstr.str(),
this) );
263 for ( VectorOfInputs::iterator i =
mInputs.begin();