Author: sayer
Date: 2009-10-22 17:26:58 +0200 (Thu, 22 Oct 2009)
New Revision: 1557
Modified:
trunk/apps/precoded_announce/wav/test.predef
trunk/core/AmPrecodedFile.cpp
Log:
fixed frame samples length for precoded files. Patch by Andrey Samusenko
Modified: trunk/apps/precoded_announce/wav/test.predef
===================================================================
--- trunk/apps/precoded_announce/wav/test.predef 2009-10-22 15:06:01 UTC
(rev 1556)
+++ trunk/apps/precoded_announce/wav/test.predef 2009-10-22 15:26:58 UTC
(rev 1557)
@@ -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;
Modified: trunk/core/AmPrecodedFile.cpp
===================================================================
--- trunk/core/AmPrecodedFile.cpp 2009-10-22 15:06:01 UTC (rev 1556)
+++ trunk/core/AmPrecodedFile.cpp 2009-10-22 15:26:58 UTC (rev 1557)
@@ -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 @@
// 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 @@
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() {
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev