/*.ianacode */ 10,
/*.iananame */ "L16",
/*.samples_per_second */ 8000,
- /*.bits_per_second */ 256000,
- /*.microseconds_per_frame */ 60000,
- /*.samples_per_frame */ 480,
- /*.bytes_per_frame */ 960,
- /*.encoded_bytes_per_frame */ 960,
+ /*.bits_per_second */ 128000,
+ /*.microseconds_per_frame */ 22500,
+ /*.samples_per_frame */ 180,
+ /*.bytes_per_frame */ 360,
+ /*.encoded_bytes_per_frame */ 360,
/*.number_of_channels */ 1,
/*.pref_frames_per_packet */ 1,
/*.max_frames_per_packet */ 1,
/*.next */ &raw_8k_60ms_implementation
};
-
static const switch_codec_interface_t raw_codec_interface = {
/*.interface_name */ "raw signed linear (16 bit)",
/*.implementations */ &raw_8k_120ms_implementation
if (tech_pvt->read_frame.datalen > 0) {
tech_pvt->last_read = switch_time_now();
- bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
- frames = (tech_pvt->read_frame.datalen / bytes);
+
+ if (tech_pvt->read_codec.implementation->encoded_bytes_per_frame) {
+ bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
+ frames = (tech_pvt->read_frame.datalen / bytes);
+ } else
+ frames = 1;
+
samples = frames * tech_pvt->read_codec.implementation->samples_per_frame;
ms = frames * tech_pvt->read_codec.implementation->microseconds_per_frame;
tech_pvt->timestamp_recv += (int32_t) samples;
switch_set_flag_locked(tech_pvt, TFLAG_WRITING);
- bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
- frames = ((int) frame->datalen / bytes);
+ if (tech_pvt->read_codec.implementation->encoded_bytes_per_frame) {
+ bytes = tech_pvt->read_codec.implementation->encoded_bytes_per_frame;
+ frames = ((int) frame->datalen / bytes);
+ } else
+ frames = 1;
+
samples = frames * tech_pvt->read_codec.implementation->samples_per_frame;
#if 0