<div dir="ltr"><div><div>Indeed. If mod_amrwb is compiled in paththrough mode it sets encoded_bytes_per_packet to 0 and mod_native_file skips this codec.<br></div>But if mod_amrwb is compiled with transcoding support it sets encoded_bytes_per_packet to SWITCH_AMRWB_OUT_MAX_SIZE constant (61) and mod_native_file registers AMR-WB extension. That was the case for my installation.<br></div><div><br></div><div>So my theory was that native playback fails because of incorrect packet size.</div>According to module source AMR-WB has 9 bitrate modes with corresponding voice frame sizes (in bytes):<br>0 - 17<br>1 - 23<br>2 - 32<br>3 - 36<br>4 - 40<br>5 - 46<br>6 - 50<br>7 - 58<br>8 - 60<br><div><div><div><div><div></div><div><br></div><div>I recorded test RAW file with FS and record application at max bitrate and resulting file was indeed stream of 62 bytes RTP payloads. 2 bytes AMR-WB header + 60 bytes of voice data. <br></div><div>I recompiled mod_amrwb with encoded_bytes_per_packet set to 62 and was able to successfully play RAW file! <br></div><div>There was warning "switch_core_file.c:358 File /tmp/recording.AMR-WB sample rate 8000 doesn't match requested rate 16000" but it sounded fine nevertheless.<br></div><div><br></div><div>I think this will work with passthrough mode too (change encoded_bytes_per_packet param from 0 to 62), but I don't have time to test it yet.</div><div><br></div><div></div><div>Of course I don't know if this change will not break other FS functions, any ideas?</div><div><br></div><div>And second problem is that caller may request lower bitrate with frame size 40 for example and RAW file will be sliced incorrectly.</div><div>Thats the real deal breaker. Any tips how to make native playback honor negotiated codec and set proper encoded_bytes_per_packet value?<br></div><div><br></div><div><br><div><div><div><div><div><div class="gmail_extra"><div class="gmail_quote">2017-08-23 15:57 GMT+03:00 Michael Jerris <span dir="ltr"><<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">That was actually fixed recently.  In current master code it won’t register them.<div><div class="gmail-m_-5649738453835469040h5"><div><br><div><blockquote type="cite"><div>On Aug 22, 2017, at 6:50 PM, ha.ppy.neko <<a href="mailto:ha.ppy.neko@gmail.com" target="_blank">ha.ppy.neko@gmail.com</a>> wrote:</div><br class="gmail-m_-5649738453835469040m_2516074307812441061Apple-interchange-newline"><div><div dir="ltr"><div>I am not sure, but it looks like for given mode AMR and AMR-WB files have fixed frame size.</div><div>"The length of the speech frame is implicitly defined by the mode indicated in the FT field": <br></div><div><br></div><div><a href="https://tools.ietf.org/html/rfc4867#page-35" target="_blank">https://tools.ietf.org/html/rf<wbr>c4867#page-35</a><br><br></div>Anyway, it is strange that mod_native_file registers AMR and AMR-WB formats if it could not support them.<br><div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2017-08-23 0:21 GMT+03:00 Anthony Minessale <span dir="ltr"><<a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">The question was answered by the log line you supplied.<div><br></div><div><span style="font-size:12.8px">-- "cannot play or record native files with variable length data".</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">VBR codecs are not a predictable size so you cannot make a raw file of it because you don't have any idea how big each packet is.</span></div><div><span style="font-size:12.8px"><br></span></div></div></blockquote></div></div></div></div></div></div></div></blockquote></div></div></div></div></div></blockquote></div></div></div></div></div></div></div></div></div></div></div></div></div>