Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-8179

mod_opus: improvement on new JB buffer debugging (debug lookahead FEC)

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.6.2
    • Component/s: mod_opus
    • Labels:
      None
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 8 jessie
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      944bad6708f5b168dbda0dea8b809fd1834b3b29
    • GIT Master Revision hash::
      944bad6708f5b168dbda0dea8b809fd1834b3b29
    • Target Version:
      1.6

      Description

      Introducing function switch_opus_has_fec() which returns TRUE if FEC
      information is present in Opus packets and tie it with "opus_debug" on the decoder part.

      There is a bug in the new JB / Opus decode code which is easy to see with this new function :
      it looks like switch_jb_peek_frame() is returning true everytime .

      015-09-17 11:37:59.994289 [DEBUG] mod_opus.c:371 encode: frames [1] samples [160] audio bandwidth [NARROWBAND] bytes [33] FEC[no]
      2015-09-17 11:37:59.994289 [ERR] mod_opus.c:306 corrupted packet
      2015-09-17 11:37:59.994289 [DEBUG] mod_opus.c:680 NO FEC info in this packet with SEQ[719] encoded_data_len: 0
      2015-09-17 11:37:59.994289 [DEBUG] mod_opus.c:701 MISSING FRAME: Look-ahead FEC
      2015-09-17 11:37:59.994289 [DEBUG] mod_opus.c:371 decode: frames [-1] samples [-80] audio bandwidth [NARROWBAND] bytes [0] FEC[no]
      2015-09-17 11:38:00.014273 [DEBUG] mod_opus.c:371 encode: frames [1] samples [160] audio bandwidth [NARROWBAND] bytes [33] FEC[no]
      2015-09-17 11:38:00.014273 [ERR] mod_opus.c:306 corrupted packet
      2015-09-17 11:38:00.014273 [DEBUG] mod_opus.c:680 NO FEC info in this packet with SEQ[720] encoded_data_len: 0
      2015-09-17 11:38:00.014273 [DEBUG] mod_opus.c:701 MISSING FRAME: Look-ahead FEC
      2015-09-17 11:38:00.014273 [DEBUG] mod_opus.c:371 decode: frames [-1] samples [-80] audio bandwidth [NARROWBAND] bytes [0] FEC[no]
      2015-09-17 11:38:00.034273 [DEBUG] mod_opus.c:371 encode: frames [1] samples [160] audio bandwidth [NARROWBAND] bytes [35] FEC[no]
      2015-09-17 11:38:00.034273 [ERR] mod_opus.c:306 corrupted packet
      2015-09-17 11:38:00.034273 [DEBUG] mod_opus.c:680 NO FEC info in this packet with SEQ[720] encoded_data_len: 0
      2015-09-17 11:38:00.034273 [DEBUG] mod_opus.c:701 MISSING FRAME: Look-ahead FEC
      2015-09-17 11:38:00.034273 [DEBUG] mod_opus.c:371 decode: frames [-1] samples [-80] audio bandwidth [NARROWBAND] bytes [0] FEC[no]
      2015-09-17 11:38:00.054272 [DEBUG] mod_opus.c:371 encode: frames [1] samples [160] audio bandwidth [NARROWBAND] bytes [32] FEC[no]

      It prints "corrupted packet" because actually is called on something given by JB which is not an Opus packet. (see also: frames [-1] samples [-80] for this ).

        Attachments

          Activity

            People

            • Assignee:
              brian@freeswitch.org Brian West
              Reporter:
              dragos_oancea Dragos Oancea
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: