<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile doxygen_version="1.9.4">
  <compound kind="file">
    <name>codec.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/codec/</path>
    <filename>codec_8h.html</filename>
    <member kind="function">
      <type>struct gmr1_codec *</type>
      <name>gmr1_codec_alloc</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga34e0de595c6498ae39695d5909bec094</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_codec_release</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>gad1c2b9c16672bcd48076af0b0f162557</anchor>
      <arglist>(struct gmr1_codec *codec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_frame</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga81d71b9b1e226a344a896d926ad4537a</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_dtx</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga23fe43b3790482c7f99d3aa33940f54f</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>gsmtap.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/</path>
    <filename>gsmtap_8h.html</filename>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gmr1_gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaade0b34d5438103fb3376d6061b0193d</anchor>
      <arglist>(uint8_t chan_type, uint32_t fn, uint8_t tn, const uint8_t *l2, int len)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>a5.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>a5_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gaddb4e3e6e4a5b5f91fe9308250a70375</anchor>
      <arglist>(int n, uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5_1</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gad385682d03d182ea6e3d0e99fa4ca04e</anchor>
      <arglist>(uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bcch.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>bcch_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_bcch_encode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga7a8f900d4c5b81ad9a903ee9b7d6b9e7</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_bcch_decode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga73717708a391d84da44845fbaf2e73a4</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ccch.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>ccch_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_ccch_encode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>gaf77ce531802993a1d64bd773215b5d7d</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_ccch_decode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>ga2773482e1dd8ea377c2191771f85db11</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>conv_8h.html</filename>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad9e7ba139d8b88117361ce2c069b3ac1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gae46510aefce08ef3158790186b00a404</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad0dab5050f72518f948d10b78ee21b2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_15</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga70b8d0dc1e500ff3a1986315e6551a27</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k6_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga6e7732168c9ecb6ad0b14ed8001c4588</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa9043b27694a4c4438b18f7cd60950cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga647389b5ecf36c9770b4ecfd57c11fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga0aaad5b737b08f90b906fbd369df8ccc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_tch3</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga622aa845f1ef3258a750b0da2df27d13</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>crc_8h.html</filename>
    <member kind="variable">
      <type>const struct osmo_crc8gen_code</type>
      <name>gmr1_crc8</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga475488b3214308419d2d8ced50df5257</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc12</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga39976cbbb95bf2ee17510e23e66e9662</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4c203dc885ad2c23dbc5e26457d2b52e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>facch3.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>facch3_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch3_encode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>gae7fb89197eae0f343d38c3c70b2d6ada</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_s, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch3_decode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>ga8f2a10c4a2203e69460dbf7f8345cd26</anchor>
      <arglist>(uint8_t *l2, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>facch9.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>facch9_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch9_encode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga8956be2f31fd48853350bc092fd1797f</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch9_decode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga42d1d80d7a1bfab7d92ad0d28d8f87c6</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>interleave.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>interleave_8h.html</filename>
    <class kind="struct">gmr1_interleaver</class>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaf54dd588068ba4225f190c091352bbc9</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga101a51679fedd2c835225608f77ae3d8</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_interleaver_init</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga78f48b3938dcda4c06b4d2da3eaedcaf</anchor>
      <arglist>(struct gmr1_interleaver *il, int N, int K)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleaver_fini</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaaa98a1ab608c6146e9c8974687c75ed7</anchor>
      <arglist>(struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gac392346badff10ae6a2abfe8b1e96e32</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_epp, void *bits_ep)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga342cfe4226b3a193e5944e6a8322d491</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_ep, void *bits_epp)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>punct.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>punct_8h.html</filename>
    <class kind="struct">gmr1_puncturer</class>
    <member kind="function">
      <type>int</type>
      <name>gmr1_puncturer_generate</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga95a97b9c89435bf6826fdeb21d881ff2</anchor>
      <arglist>(struct osmo_conv_code *code, const struct gmr1_puncturer *punct_pre, const struct gmr1_puncturer *punct_main, const struct gmr1_puncturer *punct_post, int repeat)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa03eb3f46b3027767323ccc546414c5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gabea6708a946be5c940ac734ef6a0238f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaecda3c501174763dac7c5c646ea44690</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P311</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga77ed0b501d05b89717919e77cb66f55c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gae61e6323084580be44337702851f0560</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga134d1e54bfe1d47a0841e6dbe9b27cd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa8bce8b6ca73fc45c3c0c596037c1849</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf6f62025e6ad2089904f214fea702a49</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_A</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6b3c25e254784f342165a138f7b000a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_B</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5fba7e4ebdfdf45715b68bc77ad55b56</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_C</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3d7fe225e1e537f88f58220d8dd68076</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_D</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad04e1754667748acd42c3fb6867dc09d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_E</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga94c4d51e0dfe595be3d2505f64c3ea5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P38</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadd9a431fb84f6c100472f428642cece3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac052cb5f0bd3f9f828b1c23d03ea4f22</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P37</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga04fe577ed7854a24812ccc020b7777cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P16</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6288534135f6da5447232a7b5337448f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9118d1c2fa81fdaf5f15ffc633e66a88</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga8f444be2364421750572d3b2b3e4d442</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_Ps15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4d4874e4d1a51d70b1d67113f0bfeb2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P78</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4798a84b9662a863f7cfeaa6206aba5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9d6d7b1b48148bb4cc4678790a68b5ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0c42fa663dd288c81566d1616420e3fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_Ps53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga589d0f7c6ab25753c32664969414f1fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga97a416384feb6b6e73215576b377faa5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P410</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2db6a1bba45111d8398a77a8ea8dc72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P512</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga069c9fc93f97ac8f81874ad3486d8e2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P116</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac001aebb5c9026aa629a95146427736a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad360cd4e2a33eedc63954a5a8731d1ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P184</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga642a5293a4366ad2c0eddadc92cac23b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P1152</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gafecfb0fbfb4f49c8a370362b98bb5aff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0eb3ce9d40905c17c808223aac3a5543</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P245</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6ec3a6b25235d2e5bac464c1f7a1fe85</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P13</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6de89b61b5d5cd075a2edfa5da3acb8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P47</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga4aefdbb9d3ed87e0e57bff3289700de1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P34</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf7fd0ce78be41fd48a1509a477ff7c0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P17</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga793c265d459c6c7d263edfd9fa5d82c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P19</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2864cbf423bbdf1aa723b865aa5670cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaca082b213957ed2b9f2ea17c74ff76c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P110</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa7ef8a86ffc3fe190ba8e501cc161208</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P14</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga78cb3a5553a7c084c637e1845049c2a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaac0e2e21cdb173c9f7b8ce64b4fcad3a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P234</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2d84992ac096d9b4fe041d0a9aaf33df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k6_14_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga780e4af9db89c4bb51808bd2a35fa593</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadf567a87a9c00c73dbb132863871c24c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga767c7a63fdd42bcf8e9e3b8da7e8dbe7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3221eef995a6154b1a5976b64e17f269</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P1213</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga868634869b605e0b4ab7694d11f816da</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P44</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga073c0a4550a5f828a5eac48b9e3ca06c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P33</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5cc77e83e90a1186a931981b40aa9f1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa9d92cbd0a8bbeedb9cd7860e3422f17</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>rach.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>rach_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_rach_encode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>gaa55acd1e1d248c2b34a97af389c69e90</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *rach, uint8_t sb_mask)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_rach_decode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>ga4e3f0c261d715b618e188dd5d2a14391</anchor>
      <arglist>(uint8_t *rach, const sbit_t *bits_e, uint8_t sb_mask, int *conv_rv, int *crc_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>scramb.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>scramb_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_sbit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>gab5ef50c3520bc0213858a6894d989e1e</anchor>
      <arglist>(sbit_t *out, const sbit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_ubit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>ga2243e4f721439956fe9b81ec7e40490c</anchor>
      <arglist>(ubit_t *out, const ubit_t *in, int len)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tch3.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>tch3_8h.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_encode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>ga3c7e3f769459eff23c1308eefb565ab9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *frame0, const uint8_t *frame1, const ubit_t *bits_s, const ubit_t *ciph, int m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_decode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>gaab4229c82b06539cdad3d91d1bd05c32</anchor>
      <arglist>(uint8_t *frame0, uint8_t *frame1, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int m, int *conv0_rv, int *conv1_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tch9.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>tch9_8h.html</filename>
    <member kind="enumeration">
      <type></type>
      <name>gmr1_tch9_mode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga744d45ed21afcffb14ab1dada9843d45</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_2k4</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a762585e2143ebf69e4d98938fa20e648</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_4k8</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a31ed2ba33bf118dc2d973f7c1db264a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_9k6</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a47478138efd91b1307e767a674836a18</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_MAX</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45aada4ebb2664386d79975327200434f3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_encode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga7a8227b3a47497d84316568637b9d732</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_decode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga1dc40fc5c18b5f082de485e701db9af4</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>xch_dc12.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>xch__dc12_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_encode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga65507f2a3c6d9b8e681a082ffba157a9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_decode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga581b9670f04f4a6bf6be69dc78ad2389</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>defs.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/l1/</path>
    <filename>l1_2defs_8h.html</filename>
  </compound>
  <compound kind="file">
    <name>defs.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/sdr/</path>
    <filename>sdr_2defs_8h.html</filename>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_SYM_RATE</name>
      <anchorfile>group__sdr.html</anchorfile>
      <anchor>ga6e119ab6400ff7407cdd2d9cb87360eb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>dkab.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/sdr/</path>
    <filename>dkab_8h.html</filename>
    <member kind="function">
      <type>int</type>
      <name>gmr1_dkab_demod</name>
      <anchorfile>group__dkab.html</anchorfile>
      <anchor>ga889c2d34cc3eee7b12b8d88023504e0f</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift, int p, sbit_t *ebits, float *toa_p)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>fcch.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/sdr/</path>
    <filename>fcch_8h.html</filename>
    <class kind="struct">gmr1_fcch_burst</class>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga14e6b77fe05bf2ef7600204ba6818a47</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *toa)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough_multi</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga822f719832670df978c08008c2e7a3df</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *peaks_toa, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_fine</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga2b1c8329ac1c8cae7414d2ca4619f17f</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *toa, float *freq_error)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_snr</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga614cf46fe5e868c8b573491736487fba</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, float *snr)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga09ca32ce9f0bbe6d6d5b7977aae2758f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_lband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga6598bb31a09a997eaa079838babc2f25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_sband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga20cea569bd20f7c7a3b14420c9301b1b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>nb.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/sdr/</path>
    <filename>nb_8h.html</filename>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_bcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gadb3e07f31ce31edf73ee29cb97ecb27c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc2_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gab4f338ae4b7c91d61f4a1fbd5ddb22db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gabcff92c63441c414f2b700abed3ff5e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc12_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga4dfb2061d86695f527d93c228f7e80cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_speech_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga5b7005d048a228c2fb1689772ec2a02b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_facch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gad65ff6135513219615583bf2652905a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga0f6b872aea487079770276792b11f024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt9_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gace85abbda202a99f17800dfe3a449ad8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_rach_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga6efdbfdc0a900c0da7e1ae35157d9d75</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_sdcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga8e081ca45a3c928dc97cc56ceb445542</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>pi4cxpsk.h</name>
    <path>/build/_osmocom_api/osmo-gmr/include/osmocom/gmr1/sdr/</path>
    <filename>pi4cxpsk_8h.html</filename>
    <class kind="struct">gmr1_pi4cxpsk_symbol</class>
    <class kind="struct">gmr1_pi4cxpsk_modulation</class>
    <class kind="struct">gmr1_pi4cxpsk_sync</class>
    <class kind="struct">gmr1_pi4cxpsk_data</class>
    <class kind="struct">gmr1_pi4cxpsk_burst</class>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYM_EBITS</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga3a551a9ff371809aa32f6bbeaf48fc62</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYNC</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga7078b941f0b0a04ff9ddf290452b93a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYNC_SYMS</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gad1c5069c814820ccbc9abcc700fb6193</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_demod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga39685a0ee6daeb04f7ca70bbd6d1fe29</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_detect</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga1490fd560c08a9468c40ff69f2cae2bb</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod_order</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga82887564b076046745f705f7c27c930e</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga554b1c56cd86f4e9c9cbdcc455212770</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out)</arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi2cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga37214979bb79f5d23784ba1eda5fa384</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gaeae7cf33a9694b1911deefb535f5c1b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cqpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga652dcdb5ad05ce39ebef8a5b97f6d516</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ambe.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>ambe_8c.html</filename>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaac2c306e18df0fb45f2487e83ba4f9e9</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_fini</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a426acea7ced6d46716695e243462dd</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_frame</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga96427955e6f3174ea846064627843bc3</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_dtx</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8f0cf32d32bde050a40a3e7087185aad</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>codec.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>codec_8c.html</filename>
    <includes id="codec_8h" name="codec.h" local="no" imported="no">osmocom/gmr1/codec/codec.h</includes>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <class kind="struct">gmr1_codec</class>
    <member kind="function">
      <type>struct gmr1_codec *</type>
      <name>gmr1_codec_alloc</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga34e0de595c6498ae39695d5909bec094</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_codec_release</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>gad1c2b9c16672bcd48076af0b0f162557</anchor>
      <arglist>(struct gmr1_codec *codec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_frame</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga81d71b9b1e226a344a896d926ad4537a</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_dtx</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga23fe43b3790482c7f99d3aa33940f54f</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>frame.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>frame_8c.html</filename>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_unpack_raw</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a4e007b142973be5b44ef1637c9bfee</anchor>
      <arglist>(struct ambe_raw_params *rp, const uint8_t *frame)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_decode_params</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga55a71c63c53e21c1d6fc9c91ddf519cd</anchor>
      <arglist>(struct ambe_subframe *sf, struct ambe_subframe *sf_prev, struct ambe_raw_params *rp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_subframe_expand</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga2d3ff962344089d1a44fd0d659c55df8</anchor>
      <arglist>(struct ambe_subframe *sf)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>math.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>math_8c.html</filename>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <member kind="function">
      <type>float</type>
      <name>cosf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga62bc434f8483f0198f86b388ab30ced6</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>sinf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gade8a6e65fb5db286835ffd82b0f61dd1</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga83063f9ee0607fe61bacc11bd42d059f</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga0d2a102900214d2ebdab56bf85024cf2</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdft_fc</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga9d9e8b11e46bf3ccf14d22be87f1c719</anchor>
      <arglist>(float *out_i, float *out_q, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idft_cf</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gadbfdcbf5186cc1c567112e4edc29a1a1</anchor>
      <arglist>(float *out, float *in_i, float *in_q, int N, int M)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>private.h</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>private_8h.html</filename>
    <class kind="struct">ambe_raw_params</class>
    <class kind="struct">ambe_subframe</class>
    <class kind="struct">ambe_synth</class>
    <class kind="struct">ambe_decoder</class>
    <member kind="define">
      <type>#define</type>
      <name>AMBE_RATE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac1723f2fb63e31519d15815b05cc2a67</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>M_PIf</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gacbb42dc053fedc161079f0a4d20a64e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>ambe_frame_type</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109f07fd3782470868b1d1d2ec099eb6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_SPEECH</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a14419c7969d8bb6cf9b2d8b71f30f33b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_SILENCE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a719fb04a91460753423334efdad424b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_TONE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a3ed83bce1686c0614c9377ff191cc8d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaac2c306e18df0fb45f2487e83ba4f9e9</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_fini</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a426acea7ced6d46716695e243462dd</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_frame</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga96427955e6f3174ea846064627843bc3</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_dtx</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8f0cf32d32bde050a40a3e7087185aad</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_unpack_raw</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a4e007b142973be5b44ef1637c9bfee</anchor>
      <arglist>(struct ambe_raw_params *rp, const uint8_t *frame)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_decode_params</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga55a71c63c53e21c1d6fc9c91ddf519cd</anchor>
      <arglist>(struct ambe_subframe *sf, struct ambe_subframe *sf_prev, struct ambe_raw_params *rp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_subframe_expand</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga2d3ff962344089d1a44fd0d659c55df8</anchor>
      <arglist>(struct ambe_subframe *sf)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>cosf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga62bc434f8483f0198f86b388ab30ced6</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>sinf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gade8a6e65fb5db286835ffd82b0f61dd1</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga83063f9ee0607fe61bacc11bd42d059f</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga0d2a102900214d2ebdab56bf85024cf2</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdft_fc</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga9d9e8b11e46bf3ccf14d22be87f1c719</anchor>
      <arglist>(float *out_i, float *out_q, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idft_cf</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gadbfdcbf5186cc1c567112e4edc29a1a1</anchor>
      <arglist>(float *out, float *in_i, float *in_q, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga31252750e130d6bf531c483df2ec8a49</anchor>
      <arglist>(struct ambe_synth *synth)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_enhance</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga5fdca2bf0b039f3bb0dd97b0f601fe62</anchor>
      <arglist>(struct ambe_synth *synth, struct ambe_subframe *sf)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_audio</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga7ca25dc5919fcff4c7494eb02d25fda2</anchor>
      <arglist>(struct ambe_synth *synth, int16_t *audio, struct ambe_subframe *sf, struct ambe_subframe *sf_prev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_tone</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaf5856df7a0f19188013d6c610a2b7f60</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame)</arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t</type>
      <name>ambe_hpg_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gafaaf0c3cc5a7cd0f44133e1f5922a52d</anchor>
      <arglist>[48][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_gain_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8782e94d4fc86ce45ea714a7316eecd4</anchor>
      <arglist>[256][2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint16_t</type>
      <name>ambe_v_uv_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga735cc90f20631506f7a5fc4827f4e8d5</anchor>
      <arglist>[64]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba12_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gae5a94c3201e655989c87379268c30623</anchor>
      <arglist>[128][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba34_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaadea447d12d8536738479b549eb42fdf</anchor>
      <arglist>[64][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba57_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga35df9825da65a2015f7576c83c9843f4</anchor>
      <arglist>[128][3]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc0_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac6bf71952dbf30ef32fb5cc91681d8d6</anchor>
      <arglist>[128][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc1_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga934c67cf74ce3f2944594eab3958139c</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc2_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8992a95357c191374ac100f76f8b42fe</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc3_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga616fdb311356f3430ade8e24d45479b4</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_interp_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gab7a7b1219368c43c898cfb24ff3cb5cd</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr14_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga42a2421d73b8b9021b2b88698057b53b</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr58_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109dca33b432f87d6d6a14a4a0787e06</anchor>
      <arglist>[32][4]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>synth.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>synth_8c.html</filename>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga31252750e130d6bf531c483df2ec8a49</anchor>
      <arglist>(struct ambe_synth *synth)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_enhance</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga5fdca2bf0b039f3bb0dd97b0f601fe62</anchor>
      <arglist>(struct ambe_synth *synth, struct ambe_subframe *sf)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_audio</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga7ca25dc5919fcff4c7494eb02d25fda2</anchor>
      <arglist>(struct ambe_synth *synth, int16_t *audio, struct ambe_subframe *sf, struct ambe_subframe *sf_prev)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tables.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>tables_8c.html</filename>
    <member kind="variable">
      <type>const uint8_t</type>
      <name>ambe_hpg_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gafaaf0c3cc5a7cd0f44133e1f5922a52d</anchor>
      <arglist>[48][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_gain_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8782e94d4fc86ce45ea714a7316eecd4</anchor>
      <arglist>[256][2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint16_t</type>
      <name>ambe_v_uv_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga735cc90f20631506f7a5fc4827f4e8d5</anchor>
      <arglist>[64]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba12_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gae5a94c3201e655989c87379268c30623</anchor>
      <arglist>[128][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba34_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaadea447d12d8536738479b549eb42fdf</anchor>
      <arglist>[64][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba57_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga35df9825da65a2015f7576c83c9843f4</anchor>
      <arglist>[128][3]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc0_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac6bf71952dbf30ef32fb5cc91681d8d6</anchor>
      <arglist>[128][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc1_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga934c67cf74ce3f2944594eab3958139c</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc2_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8992a95357c191374ac100f76f8b42fe</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc3_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga616fdb311356f3430ade8e24d45479b4</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_interp_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gab7a7b1219368c43c898cfb24ff3cb5cd</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr14_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga42a2421d73b8b9021b2b88698057b53b</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr58_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109dca33b432f87d6d6a14a4a0787e06</anchor>
      <arglist>[32][4]</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tone.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/codec/</path>
    <filename>tone_8c.html</filename>
    <includes id="private_8h" name="private.h" local="yes" imported="no">private.h</includes>
    <class kind="struct">tone_desc</class>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_tone</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaf5856df7a0f19188013d6c610a2b7f60</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>gsmtap.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/</path>
    <filename>gsmtap_8c.html</filename>
    <includes id="gsmtap_8h" name="gsmtap.h" local="no" imported="no">osmocom/gmr1/gsmtap.h</includes>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gmr1_gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaade0b34d5438103fb3376d6061b0193d</anchor>
      <arglist>(uint8_t chan_type, uint32_t fn, uint8_t tn, const uint8_t *l2, int len)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>a5.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>a5_8c.html</filename>
    <includes id="a5_8h" name="a5.h" local="no" imported="no">osmocom/gmr1/l1/a5.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gaddb4e3e6e4a5b5f91fe9308250a70375</anchor>
      <arglist>(int n, uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5_1</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gad385682d03d182ea6e3d0e99fa4ca04e</anchor>
      <arglist>(uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>bcch.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>bcch_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_bcch_encode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga7a8f900d4c5b81ad9a903ee9b7d6b9e7</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_bcch_decode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga73717708a391d84da44845fbaf2e73a4</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>ccch.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>ccch_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_ccch_encode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>gaf77ce531802993a1d64bd773215b5d7d</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_ccch_decode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>ga2773482e1dd8ea377c2191771f85db11</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>conv.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>conv_8c.html</filename>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad9e7ba139d8b88117361ce2c069b3ac1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gae46510aefce08ef3158790186b00a404</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad0dab5050f72518f948d10b78ee21b2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_15</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga70b8d0dc1e500ff3a1986315e6551a27</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k6_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga6e7732168c9ecb6ad0b14ed8001c4588</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa9043b27694a4c4438b18f7cd60950cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga647389b5ecf36c9770b4ecfd57c11fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga0aaad5b737b08f90b906fbd369df8ccc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_tch3</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga622aa845f1ef3258a750b0da2df27d13</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>crc.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>crc_8c.html</filename>
    <member kind="variable">
      <type>const struct osmo_crc8gen_code</type>
      <name>gmr1_crc8</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga475488b3214308419d2d8ced50df5257</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc12</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga39976cbbb95bf2ee17510e23e66e9662</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4c203dc885ad2c23dbc5e26457d2b52e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>facch3.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>facch3_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch3_encode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>gae7fb89197eae0f343d38c3c70b2d6ada</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_s, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch3_decode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>ga8f2a10c4a2203e69460dbf7f8345cd26</anchor>
      <arglist>(uint8_t *l2, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>facch9.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>facch9_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch9_encode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga8956be2f31fd48853350bc092fd1797f</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch9_decode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga42d1d80d7a1bfab7d92ad0d28d8f87c6</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>interleave.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>interleave_8c.html</filename>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaf54dd588068ba4225f190c091352bbc9</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga101a51679fedd2c835225608f77ae3d8</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_interleaver_init</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga78f48b3938dcda4c06b4d2da3eaedcaf</anchor>
      <arglist>(struct gmr1_interleaver *il, int N, int K)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleaver_fini</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaaa98a1ab608c6146e9c8974687c75ed7</anchor>
      <arglist>(struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gac392346badff10ae6a2abfe8b1e96e32</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_epp, void *bits_ep)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga342cfe4226b3a193e5944e6a8322d491</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_ep, void *bits_epp)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>punct.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>punct_8c.html</filename>
    <includes id="punct_8h" name="punct.h" local="no" imported="no">osmocom/gmr1/l1/punct.h</includes>
    <member kind="function">
      <type>int</type>
      <name>gmr1_puncturer_generate</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga95a97b9c89435bf6826fdeb21d881ff2</anchor>
      <arglist>(struct osmo_conv_code *code, const struct gmr1_puncturer *punct_pre, const struct gmr1_puncturer *punct_main, const struct gmr1_puncturer *punct_post, int repeat)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa03eb3f46b3027767323ccc546414c5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gabea6708a946be5c940ac734ef6a0238f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaecda3c501174763dac7c5c646ea44690</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P311</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga77ed0b501d05b89717919e77cb66f55c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gae61e6323084580be44337702851f0560</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga134d1e54bfe1d47a0841e6dbe9b27cd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa8bce8b6ca73fc45c3c0c596037c1849</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf6f62025e6ad2089904f214fea702a49</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_A</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6b3c25e254784f342165a138f7b000a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_B</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5fba7e4ebdfdf45715b68bc77ad55b56</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_C</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3d7fe225e1e537f88f58220d8dd68076</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_D</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad04e1754667748acd42c3fb6867dc09d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_E</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga94c4d51e0dfe595be3d2505f64c3ea5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P38</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadd9a431fb84f6c100472f428642cece3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac052cb5f0bd3f9f828b1c23d03ea4f22</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P37</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga04fe577ed7854a24812ccc020b7777cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P16</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6288534135f6da5447232a7b5337448f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9118d1c2fa81fdaf5f15ffc633e66a88</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga8f444be2364421750572d3b2b3e4d442</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_Ps15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4d4874e4d1a51d70b1d67113f0bfeb2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P78</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4798a84b9662a863f7cfeaa6206aba5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9d6d7b1b48148bb4cc4678790a68b5ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0c42fa663dd288c81566d1616420e3fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_Ps53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga589d0f7c6ab25753c32664969414f1fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga97a416384feb6b6e73215576b377faa5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P410</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2db6a1bba45111d8398a77a8ea8dc72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P512</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga069c9fc93f97ac8f81874ad3486d8e2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P116</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac001aebb5c9026aa629a95146427736a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad360cd4e2a33eedc63954a5a8731d1ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P184</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga642a5293a4366ad2c0eddadc92cac23b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P1152</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gafecfb0fbfb4f49c8a370362b98bb5aff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0eb3ce9d40905c17c808223aac3a5543</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P245</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6ec3a6b25235d2e5bac464c1f7a1fe85</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P13</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6de89b61b5d5cd075a2edfa5da3acb8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P47</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga4aefdbb9d3ed87e0e57bff3289700de1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P34</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf7fd0ce78be41fd48a1509a477ff7c0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P17</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga793c265d459c6c7d263edfd9fa5d82c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P19</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2864cbf423bbdf1aa723b865aa5670cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaca082b213957ed2b9f2ea17c74ff76c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P110</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa7ef8a86ffc3fe190ba8e501cc161208</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P14</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga78cb3a5553a7c084c637e1845049c2a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaac0e2e21cdb173c9f7b8ce64b4fcad3a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P234</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2d84992ac096d9b4fe041d0a9aaf33df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k6_14_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga780e4af9db89c4bb51808bd2a35fa593</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadf567a87a9c00c73dbb132863871c24c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga767c7a63fdd42bcf8e9e3b8da7e8dbe7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3221eef995a6154b1a5976b64e17f269</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P1213</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga868634869b605e0b4ab7694d11f816da</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P44</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga073c0a4550a5f828a5eac48b9e3ca06c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P33</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5cc77e83e90a1186a931981b40aa9f1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa9d92cbd0a8bbeedb9cd7860e3422f17</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>rach.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>rach_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_rach_encode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>gaa55acd1e1d248c2b34a97af389c69e90</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *rach, uint8_t sb_mask)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_rach_decode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>ga4e3f0c261d715b618e188dd5d2a14391</anchor>
      <arglist>(uint8_t *rach, const sbit_t *bits_e, uint8_t sb_mask, int *conv_rv, int *crc_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>scramb.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>scramb_8c.html</filename>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_sbit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>gab5ef50c3520bc0213858a6894d989e1e</anchor>
      <arglist>(sbit_t *out, const sbit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_ubit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>ga2243e4f721439956fe9b81ec7e40490c</anchor>
      <arglist>(ubit_t *out, const ubit_t *in, int len)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tch3.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>tch3_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="punct_8h" name="punct.h" local="no" imported="no">osmocom/gmr1/l1/punct.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_encode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>ga3c7e3f769459eff23c1308eefb565ab9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *frame0, const uint8_t *frame1, const ubit_t *bits_s, const ubit_t *ciph, int m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_decode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>gaab4229c82b06539cdad3d91d1bd05c32</anchor>
      <arglist>(uint8_t *frame0, uint8_t *frame1, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int m, int *conv0_rv, int *conv1_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>tch9.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>tch9_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="punct_8h" name="punct.h" local="no" imported="no">osmocom/gmr1/l1/punct.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <includes id="tch9_8h" name="tch9.h" local="no" imported="no">osmocom/gmr1/l1/tch9.h</includes>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_encode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga7a8227b3a47497d84316568637b9d732</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_decode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga1dc40fc5c18b5f082de485e701db9af4</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>xch_dc12.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/l1/</path>
    <filename>xch__dc12_8c.html</filename>
    <includes id="conv_8h" name="conv.h" local="no" imported="no">osmocom/gmr1/l1/conv.h</includes>
    <includes id="crc_8h" name="crc.h" local="no" imported="no">osmocom/gmr1/l1/crc.h</includes>
    <includes id="interleave_8h" name="interleave.h" local="no" imported="no">osmocom/gmr1/l1/interleave.h</includes>
    <includes id="punct_8h" name="punct.h" local="no" imported="no">osmocom/gmr1/l1/punct.h</includes>
    <includes id="scramb_8h" name="scramb.h" local="no" imported="no">osmocom/gmr1/l1/scramb.h</includes>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_encode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga65507f2a3c6d9b8e681a082ffba157a9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_decode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga581b9670f04f4a6bf6be69dc78ad2389</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>dkab.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/sdr/</path>
    <filename>dkab_8c.html</filename>
    <includes id="sdr_2defs_8h" name="defs.h" local="no" imported="no">osmocom/gmr1/sdr/defs.h</includes>
    <includes id="dkab_8h" name="dkab.h" local="no" imported="no">osmocom/gmr1/sdr/dkab.h</includes>
    <member kind="define">
      <type>#define</type>
      <name>DKAB_PWR_RATIO_THRESHOLD</name>
      <anchorfile>group__dkab.html</anchorfile>
      <anchor>gadd49926a91b1c3ab8c0b96d2fdd7c6e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_dkab_demod</name>
      <anchorfile>group__dkab.html</anchorfile>
      <anchor>ga889c2d34cc3eee7b12b8d88023504e0f</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift, int p, sbit_t *ebits, float *toa_p)</arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>fcch.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/sdr/</path>
    <filename>fcch_8c.html</filename>
    <includes id="sdr_2defs_8h" name="defs.h" local="no" imported="no">osmocom/gmr1/sdr/defs.h</includes>
    <includes id="fcch_8h" name="fcch.h" local="no" imported="no">osmocom/gmr1/sdr/fcch.h</includes>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga14e6b77fe05bf2ef7600204ba6818a47</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *toa)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough_multi</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga822f719832670df978c08008c2e7a3df</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *peaks_toa, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_fine</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga2b1c8329ac1c8cae7414d2ca4619f17f</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *toa, float *freq_error)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_snr</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga614cf46fe5e868c8b573491736487fba</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, float *snr)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga09ca32ce9f0bbe6d6d5b7977aae2758f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_lband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga6598bb31a09a997eaa079838babc2f25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_sband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga20cea569bd20f7c7a3b14420c9301b1b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>nb.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/sdr/</path>
    <filename>nb_8c.html</filename>
    <includes id="pi4cxpsk_8h" name="pi4cxpsk.h" local="no" imported="no">osmocom/gmr1/sdr/pi4cxpsk.h</includes>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_bcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gadb3e07f31ce31edf73ee29cb97ecb27c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc2_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gab4f338ae4b7c91d61f4a1fbd5ddb22db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gabcff92c63441c414f2b700abed3ff5e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc12_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga4dfb2061d86695f527d93c228f7e80cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_speech_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga5b7005d048a228c2fb1689772ec2a02b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_facch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gad65ff6135513219615583bf2652905a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga0f6b872aea487079770276792b11f024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt9_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gace85abbda202a99f17800dfe3a449ad8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_rach_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga6efdbfdc0a900c0da7e1ae35157d9d75</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_sdcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga8e081ca45a3c928dc97cc56ceb445542</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="file">
    <name>pi4cxpsk.c</name>
    <path>/build/_osmocom_api/osmo-gmr/src/sdr/</path>
    <filename>pi4cxpsk_8c.html</filename>
    <includes id="sdr_2defs_8h" name="defs.h" local="no" imported="no">osmocom/gmr1/sdr/defs.h</includes>
    <includes id="pi4cxpsk_8h" name="pi4cxpsk.h" local="no" imported="no">osmocom/gmr1/sdr/pi4cxpsk.h</includes>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_demod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga39685a0ee6daeb04f7ca70bbd6d1fe29</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_detect</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga1490fd560c08a9468c40ff69f2cae2bb</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod_order</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga82887564b076046745f705f7c27c930e</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga554b1c56cd86f4e9c9cbdcc455212770</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out)</arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi2cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga37214979bb79f5d23784ba1eda5fa384</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gaeae7cf33a9694b1911deefb535f5c1b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cqpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga652dcdb5ad05ce39ebef8a5b97f6d516</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ambe_decoder</name>
    <filename>structambe__decoder.html</filename>
    <member kind="variable">
      <type>float</type>
      <name>tone_phase_f1</name>
      <anchorfile>structambe__decoder.html</anchorfile>
      <anchor>aa30d43006212f987798af28cefe6a644</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>tone_phase_f2</name>
      <anchorfile>structambe__decoder.html</anchorfile>
      <anchor>ada92b6d6ccd98bea21a205f9f3a91521</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct ambe_subframe</type>
      <name>sf_prev</name>
      <anchorfile>structambe__decoder.html</anchorfile>
      <anchor>a7ef287c9fa9a4f4303b8bcf14aa08a10</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct ambe_synth</type>
      <name>synth</name>
      <anchorfile>structambe__decoder.html</anchorfile>
      <anchor>ae182cfa94b3c3f970de386a8d671bbaa</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ambe_raw_params</name>
    <filename>structambe__raw__params.html</filename>
    <member kind="variable">
      <type>uint8_t</type>
      <name>pitch</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a7eb51135820d33cbf6a0e4b865bd2a59</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>pitch_interp</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a804fa021dcd25eed72ddeb7421b64375</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>gain</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>ac0c99abebb1f2483745b6f5c683fd238</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>v_uv</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a8019dfc071f9ed84059593433380186e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf1_prba12</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>ab5848d979e9ab98ee13df35244186633</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf1_prba34</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a719970b8264d5d86e8127731e3b74e95</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf1_prba57</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a5723fa985d5a3e403baf93375f6da49b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf1_hoc</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a96e40b2f376d714e5df4538776911192</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf0_mag_interp</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a99596e150dafbc4dbefc83c0ebeb402a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf0_perr_14</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>a9f9e769e1d5e71979c4591931d8ef031</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>sf0_perr_58</name>
      <anchorfile>structambe__raw__params.html</anchorfile>
      <anchor>aefc1cb1dec8794e3ba084b1bef0540be</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ambe_subframe</name>
    <filename>structambe__subframe.html</filename>
    <member kind="variable">
      <type>float</type>
      <name>f0</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a62d2a8d54cc973e32e85d9c4735bde1f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>f0log</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a0bd7338941b5a9e13bb9cab48ae41bd6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>w0</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a21676a64ab0ab902b4802d8a347aa227</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>L</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a3ebdc823451ce217e2956ff0eac7442f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>Lb</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>af7ffd521bfff7156ae33ba43a893b163</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>v_uv</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a760edde0daaceb15506a57379e7ad265</anchor>
      <arglist>[8]</arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>Vl</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a0fb6c5eab0c8af4a8106e7df6b964702</anchor>
      <arglist>[56]</arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>gain</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>acc926ec6fc259108308513851263c010</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>Mlog</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a56d7cadaf4f6be52366ba2f26983483b</anchor>
      <arglist>[56]</arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>Ml</name>
      <anchorfile>structambe__subframe.html</anchorfile>
      <anchor>a4a3fa891e79797c2458f0ec01dbe9019</anchor>
      <arglist>[56]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>ambe_synth</name>
    <filename>structambe__synth.html</filename>
    <member kind="variable">
      <type>int16_t</type>
      <name>u_prev</name>
      <anchorfile>structambe__synth.html</anchorfile>
      <anchor>a1ec169cb61914f8a61e14e0a2838de6c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>uw_prev</name>
      <anchorfile>structambe__synth.html</anchorfile>
      <anchor>ac555e0a7a4e672f1c8e3ab6873b0bbfd</anchor>
      <arglist>[121]</arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>psi1</name>
      <anchorfile>structambe__synth.html</anchorfile>
      <anchor>ab03788ec8e6fd99b782ca07ae04d4dc4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>phi</name>
      <anchorfile>structambe__synth.html</anchorfile>
      <anchor>a5e8d3e37d5ef02db39803a10de1796ce</anchor>
      <arglist>[56]</arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>SE</name>
      <anchorfile>structambe__synth.html</anchorfile>
      <anchor>ae9f1fa4f9e9616614f50fa303a3c52ce</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>chan_desc</name>
    <filename>structchan__desc.html</filename>
  </compound>
  <compound kind="struct">
    <name>gmr1_codec</name>
    <filename>structgmr1__codec.html</filename>
    <member kind="variable">
      <type>struct ambe_decoder</type>
      <name>dec</name>
      <anchorfile>structgmr1__codec.html</anchorfile>
      <anchor>a6c9cdb292f878bd711308d13b6cb0730</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_fcch_burst</name>
    <filename>structgmr1__fcch__burst.html</filename>
    <member kind="variable">
      <type>float</type>
      <name>freq</name>
      <anchorfile>structgmr1__fcch__burst.html</anchorfile>
      <anchor>af256a13136949602fd41e4da1c569435</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structgmr1__fcch__burst.html</anchorfile>
      <anchor>a8f5f11f6f9b9b7aa2b505f7e4d6ca44e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_interleaver</name>
    <filename>structgmr1__interleaver.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>N</name>
      <anchorfile>structgmr1__interleaver.html</anchorfile>
      <anchor>aefd05afb6eef22e5c8c3f92014d9c6cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>K</name>
      <anchorfile>structgmr1__interleaver.html</anchorfile>
      <anchor>a793392c3a32d1573c12038856d7a2fa9</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>n</name>
      <anchorfile>structgmr1__interleaver.html</anchorfile>
      <anchor>a8cd1c80e472019802886819ebecd9042</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t *</type>
      <name>bits_cpp</name>
      <anchorfile>structgmr1__interleaver.html</anchorfile>
      <anchor>a92db6403eef66c2dff2686364d477262</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_pi4cxpsk_burst</name>
    <filename>structgmr1__pi4cxpsk__burst.html</filename>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation *</type>
      <name>mod</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a835af391ae1715b41cbdd52efd1b378a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>guard_pre</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a30a0e6c90559f9b66def7814fe8f9af2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>guard_post</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a5985baf01b937f381470bb0d5810ea00</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>ad164674725c949673b0a2ec24e0f0000</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>ebits</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a8205aeb2d88053361619f1baa0593a89</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_sync *</type>
      <name>sync</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a68e57bf2eeee31d4a9f5efb2dfb7a145</anchor>
      <arglist>[GMR1_MAX_SYNC]</arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_data *</type>
      <name>data</name>
      <anchorfile>structgmr1__pi4cxpsk__burst.html</anchorfile>
      <anchor>a743e2058421775d2033d5e455e7be163</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_pi4cxpsk_data</name>
    <filename>structgmr1__pi4cxpsk__data.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>pos</name>
      <anchorfile>structgmr1__pi4cxpsk__data.html</anchorfile>
      <anchor>a8fcd05f64567745c7e7435334f1f593c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structgmr1__pi4cxpsk__data.html</anchorfile>
      <anchor>a14bc0a4787038e79298c46fa85784f13</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_pi4cxpsk_modulation</name>
    <filename>structgmr1__pi4cxpsk__modulation.html</filename>
    <member kind="variable">
      <type>float</type>
      <name>rotation</name>
      <anchorfile>structgmr1__pi4cxpsk__modulation.html</anchorfile>
      <anchor>a6fff12a91ce1a4168ac7e87e4c864aa6</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>nbits</name>
      <anchorfile>structgmr1__pi4cxpsk__modulation.html</anchorfile>
      <anchor>ad8affe9f19908748ed8c0e3865434201</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_symbol *</type>
      <name>syms</name>
      <anchorfile>structgmr1__pi4cxpsk__modulation.html</anchorfile>
      <anchor>ad9c4201e4495b6894945a5fc4285e96c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_symbol *</type>
      <name>bits</name>
      <anchorfile>structgmr1__pi4cxpsk__modulation.html</anchorfile>
      <anchor>a3519a1238c0cc46cc075724f8677c556</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_pi4cxpsk_symbol</name>
    <filename>structgmr1__pi4cxpsk__symbol.html</filename>
    <member kind="variable">
      <type>short</type>
      <name>idx</name>
      <anchorfile>structgmr1__pi4cxpsk__symbol.html</anchorfile>
      <anchor>a6df1e39fbb19bd1adb54638c3bf705fe</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>ubit_t</type>
      <name>data</name>
      <anchorfile>structgmr1__pi4cxpsk__symbol.html</anchorfile>
      <anchor>a2fb97bf5773d1491eb1359e92d4832f6</anchor>
      <arglist>[GMR1_MAX_SYM_EBITS]</arglist>
    </member>
    <member kind="variable">
      <type>float</type>
      <name>mod_phase</name>
      <anchorfile>structgmr1__pi4cxpsk__symbol.html</anchorfile>
      <anchor>ac3639293117223030a399cdb947bf22b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>float complex</type>
      <name>mod_val</name>
      <anchorfile>structgmr1__pi4cxpsk__symbol.html</anchorfile>
      <anchor>a62299b3758847f06baa14861572d6160</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_pi4cxpsk_sync</name>
    <filename>structgmr1__pi4cxpsk__sync.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>pos</name>
      <anchorfile>structgmr1__pi4cxpsk__sync.html</anchorfile>
      <anchor>adabd2c21518c2bd6e37d4a8ad7facc6b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>len</name>
      <anchorfile>structgmr1__pi4cxpsk__sync.html</anchorfile>
      <anchor>a67853f80e05c48b01dad6e7f7bc6e39a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>uint8_t</type>
      <name>syms</name>
      <anchorfile>structgmr1__pi4cxpsk__sync.html</anchorfile>
      <anchor>a89f2352b308757e77cab30d1153fdb8b</anchor>
      <arglist>[GMR1_MAX_SYNC_SYMS]</arglist>
    </member>
    <member kind="variable">
      <type>struct osmo_cxvec *</type>
      <name>_ref</name>
      <anchorfile>structgmr1__pi4cxpsk__sync.html</anchorfile>
      <anchor>a291c9b0776495cfb3c3f3a2fb4f87333</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>gmr1_puncturer</name>
    <filename>structgmr1__puncturer.html</filename>
    <member kind="variable">
      <type>int</type>
      <name>r</name>
      <anchorfile>structgmr1__puncturer.html</anchorfile>
      <anchor>a6bad988cd142c8d0e30bfe457fd2c062</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>L</name>
      <anchorfile>structgmr1__puncturer.html</anchorfile>
      <anchor>a56ab639ebbf577886ec36db783b8ef34</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>N</name>
      <anchorfile>structgmr1__puncturer.html</anchorfile>
      <anchor>a4badcb8ada6378bfe224de9ccd9f193f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t</type>
      <name>mask</name>
      <anchorfile>structgmr1__puncturer.html</anchorfile>
      <anchor>af98900595177fbe9bf6c08ee652ab739</anchor>
      <arglist>[]</arglist>
    </member>
  </compound>
  <compound kind="struct">
    <name>tch3_state</name>
    <filename>structtch3__state.html</filename>
  </compound>
  <compound kind="struct">
    <name>tch9_state</name>
    <filename>structtch9__state.html</filename>
  </compound>
  <compound kind="struct">
    <name>tone_desc</name>
    <filename>structtone__desc.html</filename>
    <member kind="variable">
      <type>char *</type>
      <name>name</name>
      <anchorfile>structtone__desc.html</anchorfile>
      <anchor>ac264519a39b5ba67b62f0744e993eeca</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>f1</name>
      <anchorfile>structtone__desc.html</anchorfile>
      <anchor>a9980c6296defda0b97fdc6f0a70a0b8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>int</type>
      <name>f2</name>
      <anchorfile>structtone__desc.html</anchorfile>
      <anchor>a0367e505d7112a2acbddefaf23feac79</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>codec</name>
    <title>AMBE vocoder</title>
    <filename>group__codec.html</filename>
    <subgroup>codec_private</subgroup>
    <file>codec.h</file>
    <file>codec.c</file>
    <class kind="struct">gmr1_codec</class>
    <member kind="function">
      <type>struct gmr1_codec *</type>
      <name>gmr1_codec_alloc</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga34e0de595c6498ae39695d5909bec094</anchor>
      <arglist>(void)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_codec_release</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>gad1c2b9c16672bcd48076af0b0f162557</anchor>
      <arglist>(struct gmr1_codec *codec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_frame</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga81d71b9b1e226a344a896d926ad4537a</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_codec_decode_dtx</name>
      <anchorfile>group__codec.html</anchorfile>
      <anchor>ga23fe43b3790482c7f99d3aa33940f54f</anchor>
      <arglist>(struct gmr1_codec *codec, int16_t *audio, int N)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>gsmtap</name>
    <title>GMR-1 GSMtap helpers</title>
    <filename>group__gsmtap.html</filename>
    <file>gsmtap.h</file>
    <file>gsmtap.c</file>
    <member kind="function">
      <type>struct msgb *</type>
      <name>gmr1_gsmtap_makemsg</name>
      <anchorfile>group__gsmtap.html</anchorfile>
      <anchor>gaade0b34d5438103fb3376d6061b0193d</anchor>
      <arglist>(uint8_t chan_type, uint32_t fn, uint8_t tn, const uint8_t *l2, int len)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>a5</name>
    <title>A5 ciphering algorithm</title>
    <filename>group__a5.html</filename>
    <file>a5.h</file>
    <file>a5.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gaddb4e3e6e4a5b5f91fe9308250a70375</anchor>
      <arglist>(int n, uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_a5_1</name>
      <anchorfile>group__a5.html</anchorfile>
      <anchor>gad385682d03d182ea6e3d0e99fa4ca04e</anchor>
      <arglist>(uint8_t *key, uint32_t fn, int nbits, ubit_t *dl, ubit_t *ul)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>bcch</name>
    <title>BCCH channel coding</title>
    <filename>group__bcch.html</filename>
    <file>bcch.h</file>
    <file>bcch.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_bcch_encode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga7a8f900d4c5b81ad9a903ee9b7d6b9e7</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_bcch_decode</name>
      <anchorfile>group__bcch.html</anchorfile>
      <anchor>ga73717708a391d84da44845fbaf2e73a4</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>ccch</name>
    <title>CCCH (PCH/AGCH) channel coding</title>
    <filename>group__ccch.html</filename>
    <file>ccch.h</file>
    <file>ccch.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_ccch_encode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>gaf77ce531802993a1d64bd773215b5d7d</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_ccch_decode</name>
      <anchorfile>group__ccch.html</anchorfile>
      <anchor>ga2773482e1dd8ea377c2191771f85db11</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>conv</name>
    <title>Convolutional coding</title>
    <filename>group__conv.html</filename>
    <file>conv.h</file>
    <file>conv.c</file>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad9e7ba139d8b88117361ce2c069b3ac1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gae46510aefce08ef3158790186b00a404</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad0dab5050f72518f948d10b78ee21b2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_15</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga70b8d0dc1e500ff3a1986315e6551a27</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k6_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga6e7732168c9ecb6ad0b14ed8001c4588</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa9043b27694a4c4438b18f7cd60950cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga647389b5ecf36c9770b4ecfd57c11fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga0aaad5b737b08f90b906fbd369df8ccc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_tch3</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga622aa845f1ef3258a750b0da2df27d13</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad9e7ba139d8b88117361ce2c069b3ac1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gae46510aefce08ef3158790186b00a404</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gad0dab5050f72518f948d10b78ee21b2d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k5_15</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga70b8d0dc1e500ff3a1986315e6551a27</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k6_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga6e7732168c9ecb6ad0b14ed8001c4588</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_12</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>gaa9043b27694a4c4438b18f7cd60950cd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_13</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga647389b5ecf36c9770b4ecfd57c11fe0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_k9_14</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga0aaad5b737b08f90b906fbd369df8ccc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_conv_code</type>
      <name>gmr1_conv_tch3</name>
      <anchorfile>group__conv.html</anchorfile>
      <anchor>ga622aa845f1ef3258a750b0da2df27d13</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>crc</name>
    <title>Cyclic Redundancy Check</title>
    <filename>group__crc.html</filename>
    <file>crc.h</file>
    <file>crc.c</file>
    <member kind="variable">
      <type>const struct osmo_crc8gen_code</type>
      <name>gmr1_crc8</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga475488b3214308419d2d8ced50df5257</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc12</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga39976cbbb95bf2ee17510e23e66e9662</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4c203dc885ad2c23dbc5e26457d2b52e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc8gen_code</type>
      <name>gmr1_crc8</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga475488b3214308419d2d8ced50df5257</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc12</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga39976cbbb95bf2ee17510e23e66e9662</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct osmo_crc16gen_code</type>
      <name>gmr1_crc16</name>
      <anchorfile>group__crc.html</anchorfile>
      <anchor>ga4c203dc885ad2c23dbc5e26457d2b52e</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>l1</name>
    <title>GMR-1 Layer 1 library</title>
    <filename>group__l1.html</filename>
    <subgroup>a5</subgroup>
    <subgroup>l1_prim</subgroup>
    <subgroup>l1_chan</subgroup>
    <file>defs.h</file>
  </compound>
  <compound kind="group">
    <name>l1_prim</name>
    <title>Channel coding primitives</title>
    <filename>group__l1__prim.html</filename>
    <subgroup>conv</subgroup>
    <subgroup>crc</subgroup>
    <subgroup>interleave</subgroup>
    <subgroup>punct</subgroup>
    <subgroup>scramb</subgroup>
  </compound>
  <compound kind="group">
    <name>l1_chan</name>
    <title>Channel coder / decoders</title>
    <filename>group__l1__chan.html</filename>
    <subgroup>bcch</subgroup>
    <subgroup>ccch</subgroup>
    <subgroup>facch3</subgroup>
    <subgroup>facch9</subgroup>
    <subgroup>rach</subgroup>
    <subgroup>tch3</subgroup>
    <subgroup>tch9</subgroup>
    <subgroup>xch_dc12</subgroup>
  </compound>
  <compound kind="group">
    <name>facch3</name>
    <title>FACCH3 channel coding</title>
    <filename>group__facch3.html</filename>
    <file>facch3.h</file>
    <file>facch3.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch3_encode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>gae7fb89197eae0f343d38c3c70b2d6ada</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_s, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch3_decode</name>
      <anchorfile>group__facch3.html</anchorfile>
      <anchor>ga8f2a10c4a2203e69460dbf7f8345cd26</anchor>
      <arglist>(uint8_t *l2, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>facch9</name>
    <title>FACCH9 channel coding</title>
    <filename>group__facch9.html</filename>
    <file>facch9.h</file>
    <file>facch9.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_facch9_encode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga8956be2f31fd48853350bc092fd1797f</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_facch9_decode</name>
      <anchorfile>group__facch9.html</anchorfile>
      <anchor>ga42d1d80d7a1bfab7d92ad0d28d8f87c6</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, const ubit_t *ciph, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>interleave</name>
    <title>Interleaving</title>
    <filename>group__interleave.html</filename>
    <file>interleave.h</file>
    <file>interleave.c</file>
    <class kind="struct">gmr1_interleaver</class>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaf54dd588068ba4225f190c091352bbc9</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_intra</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga101a51679fedd2c835225608f77ae3d8</anchor>
      <arglist>(void *out, const void *in, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_interleaver_init</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga78f48b3938dcda4c06b4d2da3eaedcaf</anchor>
      <arglist>(struct gmr1_interleaver *il, int N, int K)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleaver_fini</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gaaa98a1ab608c6146e9c8974687c75ed7</anchor>
      <arglist>(struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_interleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>gac392346badff10ae6a2abfe8b1e96e32</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_epp, void *bits_ep)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_deinterleave_inter</name>
      <anchorfile>group__interleave.html</anchorfile>
      <anchor>ga342cfe4226b3a193e5944e6a8322d491</anchor>
      <arglist>(struct gmr1_interleaver *il, void *bits_ep, void *bits_epp)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>punct</name>
    <title>Puncturing</title>
    <filename>group__punct.html</filename>
    <file>punct.h</file>
    <file>punct.c</file>
    <class kind="struct">gmr1_puncturer</class>
    <member kind="function">
      <type>int</type>
      <name>gmr1_puncturer_generate</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga95a97b9c89435bf6826fdeb21d881ff2</anchor>
      <arglist>(struct osmo_conv_code *code, const struct gmr1_puncturer *punct_pre, const struct gmr1_puncturer *punct_main, const struct gmr1_puncturer *punct_post, int repeat)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa03eb3f46b3027767323ccc546414c5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gabea6708a946be5c940ac734ef6a0238f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaecda3c501174763dac7c5c646ea44690</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P311</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga77ed0b501d05b89717919e77cb66f55c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gae61e6323084580be44337702851f0560</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga134d1e54bfe1d47a0841e6dbe9b27cd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa8bce8b6ca73fc45c3c0c596037c1849</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf6f62025e6ad2089904f214fea702a49</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_A</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6b3c25e254784f342165a138f7b000a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_B</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5fba7e4ebdfdf45715b68bc77ad55b56</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_C</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3d7fe225e1e537f88f58220d8dd68076</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_D</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad04e1754667748acd42c3fb6867dc09d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_E</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga94c4d51e0dfe595be3d2505f64c3ea5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P38</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadd9a431fb84f6c100472f428642cece3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac052cb5f0bd3f9f828b1c23d03ea4f22</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P37</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga04fe577ed7854a24812ccc020b7777cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P16</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6288534135f6da5447232a7b5337448f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9118d1c2fa81fdaf5f15ffc633e66a88</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga8f444be2364421750572d3b2b3e4d442</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_Ps15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4d4874e4d1a51d70b1d67113f0bfeb2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P78</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4798a84b9662a863f7cfeaa6206aba5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9d6d7b1b48148bb4cc4678790a68b5ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0c42fa663dd288c81566d1616420e3fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_Ps53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga589d0f7c6ab25753c32664969414f1fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga97a416384feb6b6e73215576b377faa5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P410</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2db6a1bba45111d8398a77a8ea8dc72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P512</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga069c9fc93f97ac8f81874ad3486d8e2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P116</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac001aebb5c9026aa629a95146427736a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad360cd4e2a33eedc63954a5a8731d1ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P184</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga642a5293a4366ad2c0eddadc92cac23b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P1152</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gafecfb0fbfb4f49c8a370362b98bb5aff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0eb3ce9d40905c17c808223aac3a5543</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P245</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6ec3a6b25235d2e5bac464c1f7a1fe85</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P13</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6de89b61b5d5cd075a2edfa5da3acb8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P47</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga4aefdbb9d3ed87e0e57bff3289700de1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P34</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf7fd0ce78be41fd48a1509a477ff7c0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P17</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga793c265d459c6c7d263edfd9fa5d82c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P19</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2864cbf423bbdf1aa723b865aa5670cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaca082b213957ed2b9f2ea17c74ff76c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P110</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa7ef8a86ffc3fe190ba8e501cc161208</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P14</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga78cb3a5553a7c084c637e1845049c2a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaac0e2e21cdb173c9f7b8ce64b4fcad3a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P234</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2d84992ac096d9b4fe041d0a9aaf33df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k6_14_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga780e4af9db89c4bb51808bd2a35fa593</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadf567a87a9c00c73dbb132863871c24c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga767c7a63fdd42bcf8e9e3b8da7e8dbe7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3221eef995a6154b1a5976b64e17f269</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P1213</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga868634869b605e0b4ab7694d11f816da</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P44</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga073c0a4550a5f828a5eac48b9e3ca06c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P33</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5cc77e83e90a1186a931981b40aa9f1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa9d92cbd0a8bbeedb9cd7860e3422f17</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa03eb3f46b3027767323ccc546414c5b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gabea6708a946be5c940ac734ef6a0238f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaecda3c501174763dac7c5c646ea44690</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P311</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga77ed0b501d05b89717919e77cb66f55c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gae61e6323084580be44337702851f0560</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps412</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga134d1e54bfe1d47a0841e6dbe9b27cd8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa8bce8b6ca73fc45c3c0c596037c1849</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_Ps12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf6f62025e6ad2089904f214fea702a49</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_A</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6b3c25e254784f342165a138f7b000a4</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_B</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5fba7e4ebdfdf45715b68bc77ad55b56</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_C</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3d7fe225e1e537f88f58220d8dd68076</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_D</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad04e1754667748acd42c3fb6867dc09d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_E</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga94c4d51e0dfe595be3d2505f64c3ea5c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P38</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadd9a431fb84f6c100472f428642cece3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac052cb5f0bd3f9f828b1c23d03ea4f22</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_12_P37</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga04fe577ed7854a24812ccc020b7777cc</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P16</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6288534135f6da5447232a7b5337448f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P25</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9118d1c2fa81fdaf5f15ffc633e66a88</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga8f444be2364421750572d3b2b3e4d442</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_Ps15</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4d4874e4d1a51d70b1d67113f0bfeb2</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_13_P78</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa4798a84b9662a863f7cfeaa6206aba5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga9d6d7b1b48148bb4cc4678790a68b5ff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_P53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0c42fa663dd288c81566d1616420e3fb</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k5_15_Ps53</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga589d0f7c6ab25753c32664969414f1fd</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P23</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga97a416384feb6b6e73215576b377faa5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P410</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2db6a1bba45111d8398a77a8ea8dc72d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P512</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga069c9fc93f97ac8f81874ad3486d8e2c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P116</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gac001aebb5c9026aa629a95146427736a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gad360cd4e2a33eedc63954a5a8731d1ac</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P184</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga642a5293a4366ad2c0eddadc92cac23b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P1152</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gafecfb0fbfb4f49c8a370362b98bb5aff</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga0eb3ce9d40905c17c808223aac3a5543</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k7_12_P245</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6ec3a6b25235d2e5bac464c1f7a1fe85</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P13</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga6de89b61b5d5cd075a2edfa5da3acb8d</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P47</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga4aefdbb9d3ed87e0e57bff3289700de1</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P34</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaf7fd0ce78be41fd48a1509a477ff7c0c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P17</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga793c265d459c6c7d263edfd9fa5d82c8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P19</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2864cbf423bbdf1aa723b865aa5670cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P26</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaca082b213957ed2b9f2ea17c74ff76c5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P110</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa7ef8a86ffc3fe190ba8e501cc161208</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P14</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga78cb3a5553a7c084c637e1845049c2a3</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaac0e2e21cdb173c9f7b8ce64b4fcad3a</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_12_P234</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga2d84992ac096d9b4fe041d0a9aaf33df</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k6_14_P45</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga780e4af9db89c4bb51808bd2a35fa593</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P148</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gadf567a87a9c00c73dbb132863871c24c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_14_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga767c7a63fdd42bcf8e9e3b8da7e8dbe7</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P12</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga3221eef995a6154b1a5976b64e17f269</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P1213</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga868634869b605e0b4ab7694d11f816da</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P44</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga073c0a4550a5f828a5eac48b9e3ca06c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P33</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>ga5cc77e83e90a1186a931981b40aa9f1e</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_puncturer</type>
      <name>gmr1_punct_k9_13_P65</name>
      <anchorfile>group__punct.html</anchorfile>
      <anchor>gaa9d92cbd0a8bbeedb9cd7860e3422f17</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>rach</name>
    <title>RACH channel coding</title>
    <filename>group__rach.html</filename>
    <file>rach.h</file>
    <file>rach.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_rach_encode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>gaa55acd1e1d248c2b34a97af389c69e90</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *rach, uint8_t sb_mask)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_rach_decode</name>
      <anchorfile>group__rach.html</anchorfile>
      <anchor>ga4e3f0c261d715b618e188dd5d2a14391</anchor>
      <arglist>(uint8_t *rach, const sbit_t *bits_e, uint8_t sb_mask, int *conv_rv, int *crc_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>scramb</name>
    <title>Scrambling</title>
    <filename>group__scramb.html</filename>
    <file>scramb.h</file>
    <file>scramb.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_sbit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>gab5ef50c3520bc0213858a6894d989e1e</anchor>
      <arglist>(sbit_t *out, const sbit_t *in, int len)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_scramble_ubit</name>
      <anchorfile>group__scramb.html</anchorfile>
      <anchor>ga2243e4f721439956fe9b81ec7e40490c</anchor>
      <arglist>(ubit_t *out, const ubit_t *in, int len)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>tch3</name>
    <title>TCH3 channel coding</title>
    <filename>group__tch3.html</filename>
    <file>tch3.h</file>
    <file>tch3.c</file>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_encode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>ga3c7e3f769459eff23c1308eefb565ab9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *frame0, const uint8_t *frame1, const ubit_t *bits_s, const ubit_t *ciph, int m)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch3_decode</name>
      <anchorfile>group__tch3.html</anchorfile>
      <anchor>gaab4229c82b06539cdad3d91d1bd05c32</anchor>
      <arglist>(uint8_t *frame0, uint8_t *frame1, ubit_t *bits_s, const sbit_t *bits_e, const ubit_t *ciph, int m, int *conv0_rv, int *conv1_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>tch9</name>
    <title>TCH9 channel coding</title>
    <filename>group__tch9.html</filename>
    <file>tch9.h</file>
    <file>tch9.c</file>
    <member kind="enumeration">
      <type></type>
      <name>gmr1_tch9_mode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga744d45ed21afcffb14ab1dada9843d45</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_2k4</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a762585e2143ebf69e4d98938fa20e648</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_4k8</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a31ed2ba33bf118dc2d973f7c1db264a2</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_9k6</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45a47478138efd91b1307e767a674836a18</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>GMR1_TCH9_MAX</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>gga744d45ed21afcffb14ab1dada9843d45aada4ebb2664386d79975327200434f3d</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_encode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga7a8227b3a47497d84316568637b9d732</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2, enum gmr1_tch9_mode mode, const ubit_t *bits_sacch, const ubit_t *bits_status, const ubit_t *ciph, struct gmr1_interleaver *il)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>gmr1_tch9_decode</name>
      <anchorfile>group__tch9.html</anchorfile>
      <anchor>ga1dc40fc5c18b5f082de485e701db9af4</anchor>
      <arglist>(uint8_t *l2, sbit_t *bits_sacch, sbit_t *bits_status, const sbit_t *bits_e, enum gmr1_tch9_mode mode, const ubit_t *ciph, struct gmr1_interleaver *il, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>xch_dc12</name>
    <title>xCH over DC12 channel coding</title>
    <filename>group__xch__dc12.html</filename>
    <file>xch_dc12.h</file>
    <file>xch_dc12.c</file>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_encode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga65507f2a3c6d9b8e681a082ffba157a9</anchor>
      <arglist>(ubit_t *bits_e, const uint8_t *l2)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_xch_dc12_decode</name>
      <anchorfile>group__xch__dc12.html</anchorfile>
      <anchor>ga581b9670f04f4a6bf6be69dc78ad2389</anchor>
      <arglist>(uint8_t *l2, const sbit_t *bits_e, int *conv_rv)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>sdr</name>
    <title>GMR-1 Software Defined Radio library</title>
    <filename>group__sdr.html</filename>
    <subgroup>dkab</subgroup>
    <subgroup>fcch</subgroup>
    <subgroup>nb</subgroup>
    <subgroup>pi4cxpsk</subgroup>
    <file>defs.h</file>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_SYM_RATE</name>
      <anchorfile>group__sdr.html</anchorfile>
      <anchor>ga6e119ab6400ff7407cdd2d9cb87360eb</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>dkab</name>
    <title>DKAB bursts</title>
    <filename>group__dkab.html</filename>
    <file>dkab.h</file>
    <file>dkab.c</file>
    <member kind="define">
      <type>#define</type>
      <name>DKAB_PWR_RATIO_THRESHOLD</name>
      <anchorfile>group__dkab.html</anchorfile>
      <anchor>gadd49926a91b1c3ab8c0b96d2fdd7c6e4</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_dkab_demod</name>
      <anchorfile>group__dkab.html</anchorfile>
      <anchor>ga889c2d34cc3eee7b12b8d88023504e0f</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift, int p, sbit_t *ebits, float *toa_p)</arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>fcch</name>
    <title>FCCH bursts</title>
    <filename>group__fcch.html</filename>
    <file>fcch.h</file>
    <file>fcch.c</file>
    <class kind="struct">gmr1_fcch_burst</class>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga14e6b77fe05bf2ef7600204ba6818a47</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *toa)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_rough_multi</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga822f719832670df978c08008c2e7a3df</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *search_win_in, int sps, float freq_shift, int *peaks_toa, int N)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_fine</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga2b1c8329ac1c8cae7414d2ca4619f17f</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *toa, float *freq_error)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_fcch_snr</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga614cf46fe5e868c8b573491736487fba</anchor>
      <arglist>(const struct gmr1_fcch_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, float *snr)</arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga09ca32ce9f0bbe6d6d5b7977aae2758f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_lband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga6598bb31a09a997eaa079838babc2f25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_sband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga20cea569bd20f7c7a3b14420c9301b1b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga09ca32ce9f0bbe6d6d5b7977aae2758f</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_lband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga6598bb31a09a997eaa079838babc2f25</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>const struct gmr1_fcch_burst</type>
      <name>gmr1_fcch3_sband_burst</name>
      <anchorfile>group__fcch.html</anchorfile>
      <anchor>ga20cea569bd20f7c7a3b14420c9301b1b</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>nb</name>
    <title>Normal bursts</title>
    <filename>group__nb.html</filename>
    <file>nb.h</file>
    <file>nb.c</file>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_bcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gadb3e07f31ce31edf73ee29cb97ecb27c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc2_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gab4f338ae4b7c91d61f4a1fbd5ddb22db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gabcff92c63441c414f2b700abed3ff5e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc12_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga4dfb2061d86695f527d93c228f7e80cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_speech_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga5b7005d048a228c2fb1689772ec2a02b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_facch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gad65ff6135513219615583bf2652905a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga0f6b872aea487079770276792b11f024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt9_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gace85abbda202a99f17800dfe3a449ad8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_rach_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga6efdbfdc0a900c0da7e1ae35157d9d75</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_sdcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga8e081ca45a3c928dc97cc56ceb445542</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_bcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gadb3e07f31ce31edf73ee29cb97ecb27c</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc2_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gab4f338ae4b7c91d61f4a1fbd5ddb22db</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gabcff92c63441c414f2b700abed3ff5e5</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_dc12_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga4dfb2061d86695f527d93c228f7e80cf</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_speech_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga5b7005d048a228c2fb1689772ec2a02b</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt3_facch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gad65ff6135513219615583bf2652905a0</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt6_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga0f6b872aea487079770276792b11f024</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_nt9_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>gace85abbda202a99f17800dfe3a449ad8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_rach_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga6efdbfdc0a900c0da7e1ae35157d9d75</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_burst</type>
      <name>gmr1_sdcch_burst</name>
      <anchorfile>group__nb.html</anchorfile>
      <anchor>ga8e081ca45a3c928dc97cc56ceb445542</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>pi4cxpsk</name>
    <title>pi2-CBPSK, pi4-CBPSK and pi4-CQPSK modulation</title>
    <filename>group__pi4cxpsk.html</filename>
    <file>pi4cxpsk.h</file>
    <file>pi4cxpsk.c</file>
    <class kind="struct">gmr1_pi4cxpsk_symbol</class>
    <class kind="struct">gmr1_pi4cxpsk_modulation</class>
    <class kind="struct">gmr1_pi4cxpsk_sync</class>
    <class kind="struct">gmr1_pi4cxpsk_data</class>
    <class kind="struct">gmr1_pi4cxpsk_burst</class>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYM_EBITS</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga3a551a9ff371809aa32f6bbeaf48fc62</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYNC</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga7078b941f0b0a04ff9ddf290452b93a9</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>GMR1_MAX_SYNC_SYMS</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gad1c5069c814820ccbc9abcc700fb6193</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_demod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga39685a0ee6daeb04f7ca70bbd6d1fe29</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, struct osmo_cxvec *burst_in, int sps, float freq_shift, sbit_t *ebits, int *sync_id_p, float *toa_p, float *freq_err_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_detect</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga1490fd560c08a9468c40ff69f2cae2bb</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst **burst_types, float e_toa, struct osmo_cxvec *burst_in, int sps, float freq_shift, int *bt_id_p, int *sync_id_p, float *toa_p)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod_order</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga82887564b076046745f705f7c27c930e</anchor>
      <arglist>(struct osmo_cxvec *burst_in, int sps, float freq_shift)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>gmr1_pi4cxpsk_mod</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga554b1c56cd86f4e9c9cbdcc455212770</anchor>
      <arglist>(struct gmr1_pi4cxpsk_burst *burst_type, ubit_t *ebits, int sync_id, struct osmo_cxvec *burst_out)</arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi2cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga37214979bb79f5d23784ba1eda5fa384</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gaeae7cf33a9694b1911deefb535f5c1b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cqpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga652dcdb5ad05ce39ebef8a5b97f6d516</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi2cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga37214979bb79f5d23784ba1eda5fa384</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cbpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>gaeae7cf33a9694b1911deefb535f5c1b8</anchor>
      <arglist></arglist>
    </member>
    <member kind="variable">
      <type>struct gmr1_pi4cxpsk_modulation</type>
      <name>gmr1_pi4cqpsk</name>
      <anchorfile>group__pi4cxpsk.html</anchorfile>
      <anchor>ga652dcdb5ad05ce39ebef8a5b97f6d516</anchor>
      <arglist></arglist>
    </member>
  </compound>
  <compound kind="group">
    <name>codec_private</name>
    <title>AMBE vocoder - internal API</title>
    <filename>group__codec__private.html</filename>
    <file>ambe.c</file>
    <file>frame.c</file>
    <file>math.c</file>
    <file>private.h</file>
    <file>synth.c</file>
    <file>tables.c</file>
    <file>tone.c</file>
    <class kind="struct">ambe_raw_params</class>
    <class kind="struct">ambe_subframe</class>
    <class kind="struct">ambe_synth</class>
    <class kind="struct">ambe_decoder</class>
    <class kind="struct">tone_desc</class>
    <member kind="define">
      <type>#define</type>
      <name>AMBE_RATE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac1723f2fb63e31519d15815b05cc2a67</anchor>
      <arglist></arglist>
    </member>
    <member kind="define">
      <type>#define</type>
      <name>M_PIf</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gacbb42dc053fedc161079f0a4d20a64e8</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumeration">
      <type></type>
      <name>ambe_frame_type</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109f07fd3782470868b1d1d2ec099eb6</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_SPEECH</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a14419c7969d8bb6cf9b2d8b71f30f33b</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_SILENCE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a719fb04a91460753423334efdad424b5</anchor>
      <arglist></arglist>
    </member>
    <member kind="enumvalue">
      <name>AMBE_TONE</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gga109f07fd3782470868b1d1d2ec099eb6a3ed83bce1686c0614c9377ff191cc8d1</anchor>
      <arglist></arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaac2c306e18df0fb45f2487e83ba4f9e9</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_decode_fini</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a426acea7ced6d46716695e243462dd</anchor>
      <arglist>(struct ambe_decoder *dec)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_frame</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga96427955e6f3174ea846064627843bc3</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame, int bad)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_dtx</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8f0cf32d32bde050a40a3e7087185aad</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_unpack_raw</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8a4e007b142973be5b44ef1637c9bfee</anchor>
      <arglist>(struct ambe_raw_params *rp, const uint8_t *frame)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_frame_decode_params</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga55a71c63c53e21c1d6fc9c91ddf519cd</anchor>
      <arglist>(struct ambe_subframe *sf, struct ambe_subframe *sf_prev, struct ambe_raw_params *rp)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_subframe_expand</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga2d3ff962344089d1a44fd0d659c55df8</anchor>
      <arglist>(struct ambe_subframe *sf)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>cosf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga62bc434f8483f0198f86b388ab30ced6</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>float</type>
      <name>sinf_fast</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gade8a6e65fb5db286835ffd82b0f61dd1</anchor>
      <arglist>(float angle)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga83063f9ee0607fe61bacc11bd42d059f</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idct</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga0d2a102900214d2ebdab56bf85024cf2</anchor>
      <arglist>(float *out, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_fdft_fc</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga9d9e8b11e46bf3ccf14d22be87f1c719</anchor>
      <arglist>(float *out_i, float *out_q, float *in, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_idft_cf</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gadbfdcbf5186cc1c567112e4edc29a1a1</anchor>
      <arglist>(float *out, float *in_i, float *in_q, int N, int M)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_init</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga31252750e130d6bf531c483df2ec8a49</anchor>
      <arglist>(struct ambe_synth *synth)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_enhance</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga5fdca2bf0b039f3bb0dd97b0f601fe62</anchor>
      <arglist>(struct ambe_synth *synth, struct ambe_subframe *sf)</arglist>
    </member>
    <member kind="function">
      <type>void</type>
      <name>ambe_synth_audio</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga7ca25dc5919fcff4c7494eb02d25fda2</anchor>
      <arglist>(struct ambe_synth *synth, int16_t *audio, struct ambe_subframe *sf, struct ambe_subframe *sf_prev)</arglist>
    </member>
    <member kind="function">
      <type>int</type>
      <name>ambe_decode_tone</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaf5856df7a0f19188013d6c610a2b7f60</anchor>
      <arglist>(struct ambe_decoder *dec, int16_t *audio, int N, const uint8_t *frame)</arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t</type>
      <name>ambe_hpg_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gafaaf0c3cc5a7cd0f44133e1f5922a52d</anchor>
      <arglist>[48][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_gain_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8782e94d4fc86ce45ea714a7316eecd4</anchor>
      <arglist>[256][2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint16_t</type>
      <name>ambe_v_uv_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga735cc90f20631506f7a5fc4827f4e8d5</anchor>
      <arglist>[64]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba12_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gae5a94c3201e655989c87379268c30623</anchor>
      <arglist>[128][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba34_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaadea447d12d8536738479b549eb42fdf</anchor>
      <arglist>[64][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba57_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga35df9825da65a2015f7576c83c9843f4</anchor>
      <arglist>[128][3]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc0_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac6bf71952dbf30ef32fb5cc91681d8d6</anchor>
      <arglist>[128][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc1_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga934c67cf74ce3f2944594eab3958139c</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc2_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8992a95357c191374ac100f76f8b42fe</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc3_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga616fdb311356f3430ade8e24d45479b4</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_interp_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gab7a7b1219368c43c898cfb24ff3cb5cd</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr14_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga42a2421d73b8b9021b2b88698057b53b</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr58_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109dca33b432f87d6d6a14a4a0787e06</anchor>
      <arglist>[32][4]</arglist>
    </member>
    <member kind="variable">
      <type>const uint8_t</type>
      <name>ambe_hpg_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gafaaf0c3cc5a7cd0f44133e1f5922a52d</anchor>
      <arglist>[48][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_gain_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8782e94d4fc86ce45ea714a7316eecd4</anchor>
      <arglist>[256][2]</arglist>
    </member>
    <member kind="variable">
      <type>const uint16_t</type>
      <name>ambe_v_uv_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga735cc90f20631506f7a5fc4827f4e8d5</anchor>
      <arglist>[64]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba12_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gae5a94c3201e655989c87379268c30623</anchor>
      <arglist>[128][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba34_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gaadea447d12d8536738479b549eb42fdf</anchor>
      <arglist>[64][2]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_prba57_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga35df9825da65a2015f7576c83c9843f4</anchor>
      <arglist>[128][3]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc0_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gac6bf71952dbf30ef32fb5cc91681d8d6</anchor>
      <arglist>[128][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc1_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga934c67cf74ce3f2944594eab3958139c</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc2_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga8992a95357c191374ac100f76f8b42fe</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_hoc3_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga616fdb311356f3430ade8e24d45479b4</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_interp_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>gab7a7b1219368c43c898cfb24ff3cb5cd</anchor>
      <arglist>[4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr14_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga42a2421d73b8b9021b2b88698057b53b</anchor>
      <arglist>[64][4]</arglist>
    </member>
    <member kind="variable">
      <type>const float</type>
      <name>ambe_sf0_perr58_tbl</name>
      <anchorfile>group__codec__private.html</anchorfile>
      <anchor>ga109dca33b432f87d6d6a14a4a0787e06</anchor>
      <arglist>[32][4]</arglist>
    </member>
  </compound>
</tagfile>
