fixed frame samples length for precoded files. Patch by Andrey Samusenko

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1557 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 17 years ago
parent 7f30a69973
commit 5b868ae4bb

@ -1,11 +1,12 @@
# format:
# codec id;payload name;samplerate;channels;format parameters;frame milliseconds;frame bytes;filename (full path)
#
# to create e.g. .gsm file:
# sox test.wav -r 8000 -c 1 -g test8k.gsm
#
0;PCMU;8000;1;<none>;20;160;test8k.pcmu;
8;PCMA;8000;1;<none>;20;160;test8k.pcma;
96;iLBC;8000;1;<none>;30;50;test8k.ilbc30;
97;iLBC;8000;1;mode=30;30;50;test8k.ilbc30;
98;iLBC;8000;1;mode=20;20;33;test8k.ilbc20;
3;GSM;8000;1;<none>;20;33;test8k.gsm;

@ -31,11 +31,11 @@
#include <fstream>
unsigned int precoded_bytes2samples(long h_codec, unsigned int num_bytes) {
return num_bytes;
return ((AmAudioFormat*)h_codec)->frame_size;
}
unsigned int precoded_samples2bytes(long h_codec, unsigned int num_samples) {
return num_samples;
return ((AmAudioFormat*)h_codec)->frame_encoded_size;
}
amci_codec_t _codec_precoded = {
@ -65,6 +65,7 @@ AmPrecodedRtpFormat::AmPrecodedRtpFormat(precoded_payload_t& precoded_payload,
// fill unused stuff
frame_length = precoded_payload.frame_ms;
frame_encoded_size = precoded_payload.frame_bytes;
h_codec = (long)this;
}
AmPrecodedRtpFormat::~AmPrecodedRtpFormat() {
@ -86,6 +87,11 @@ AmPrecodedFileFormat::AmPrecodedFileFormat(precoded_payload_t& precoded_payload)
channels = precoded_payload.channels;
rate = precoded_payload.sample_rate;
codec = getCodec();
// used in precoded_bytes2samples()/precoded_samples2bytes()
frame_size = precoded_payload.frame_ms * precoded_payload.sample_rate / 1000;
frame_encoded_size = precoded_payload.frame_bytes;
h_codec = (long)this;
}
AmPrecodedFileFormat::~AmPrecodedFileFormat() {

Loading…
Cancel
Save