<div dir="ltr"><div><div>Hi <br>Mike, I did the PR, please see  <a class="gmail-pr-title-jira-issues-trigger" href="https://freeswitch.org/stash/plugins/servlet/jira-integration/issues/FS-10642">FS-10642 .</a><br></div><br>Ivan, I think that trick would not work when trying to record when in BE mode: <a href="https://tools.ietf.org/html/rfc4867#section-5">https://tools.ietf.org/html/rfc4867#section-5</a> .<br></div><div>And yes, it will not work when the mode is changed during the call, but I guess the mode change is uncommon, even if  AMR means actually "Adaptive Multi-Rate" :) .<br></div><div><br></div><div>Cheers,<br></div>Dragos  <br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 23, 2017 at 11:25 PM, Michael Jerris <span dir="ltr"><<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Thats a bug.  AMR-WB is not fixed rate so it should be setting that value to 0.  That change will make mod_native_file not load it.  Toss me a pull request to fix and I’ll merge it.<div><div class="h5"><div><br><div><br><div><blockquote type="cite"><div>On Aug 23, 2017, at 6:06 PM, ha.ppy.neko <<a href="mailto:ha.ppy.neko@gmail.com" target="_blank">ha.ppy.neko@gmail.com</a>> wrote:</div><br class="m_-4899524146205604072Apple-interchange-newline"><div><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>That was actually fixed recently.  In current master code it won’t register them.<div><div class="m_-4899524146205604072gmail-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="m_-4899524146205604072gmail-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></div></blockquote></div><br></div></div></div></div></div><br>______________________________<wbr>______________________________<wbr>_____________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.<wbr>freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.<wbr>org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.<wbr>freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/<wbr>mailman/listinfo/freeswitch-<wbr>users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.<wbr>freeswitch.org/mailman/<wbr>options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>