From a6268a5bc188ebe5eefed356d76b299a5c56756b Mon Sep 17 00:00:00 2001 From: Piotr Krysik Date: Wed, 23 Aug 2017 16:02:19 +0200 Subject: Big update of copyright statements so they can be automatically processed to produce debian/copyright file --- lib/decoding/control_channels_decoder_impl.cc | 2 +- lib/decoding/control_channels_decoder_impl.h | 2 +- lib/decoding/osmocom/coding/gsm0503_coding.h | 22 ++++++++++ lib/decoding/osmocom/coding/gsm0503_conv.c | 1 - lib/decoding/osmocom/coding/gsm0503_interleaving.h | 22 ++++++++++ lib/decoding/osmocom/coding/gsm0503_mapping.h | 21 +++++++++ lib/decoding/osmocom/coding/gsm0503_parity.h | 21 +++++++++ lib/decoding/osmocom/coding/gsm0503_tables.h | 21 +++++++++ lib/decoding/sch.c | 2 +- lib/decoding/tch_f_decoder_impl.cc | 51 ++++++++++++++++++---- lib/decoding/tch_f_decoder_impl.h | 14 +++--- 11 files changed, 160 insertions(+), 19 deletions(-) (limited to 'lib/decoding') diff --git a/lib/decoding/control_channels_decoder_impl.cc b/lib/decoding/control_channels_decoder_impl.cc index 71695e2..a6abaa3 100644 --- a/lib/decoding/control_channels_decoder_impl.cc +++ b/lib/decoding/control_channels_decoder_impl.cc @@ -1,7 +1,7 @@ /* -*- c++ -*- */ /* * @file - * @author Piotr Krysik + * @author (C) 2014 by Piotr Krysik * @section LICENSE * * Gr-gsm is free software; you can redistribute it and/or modify diff --git a/lib/decoding/control_channels_decoder_impl.h b/lib/decoding/control_channels_decoder_impl.h index 1117940..3464324 100644 --- a/lib/decoding/control_channels_decoder_impl.h +++ b/lib/decoding/control_channels_decoder_impl.h @@ -1,7 +1,7 @@ /* -*- c++ -*- */ /* * @file - * @author Piotr Krysik + * @author (C) 2014 by Piotr Krysik * @section LICENSE * * Gr-gsm is free software; you can redistribute it and/or modify diff --git a/lib/decoding/osmocom/coding/gsm0503_coding.h b/lib/decoding/osmocom/coding/gsm0503_coding.h index 83cdbd5..5e3e9db 100644 --- a/lib/decoding/osmocom/coding/gsm0503_coding.h +++ b/lib/decoding/osmocom/coding/gsm0503_coding.h @@ -1,3 +1,25 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2015 by Alexander Chemeris + * (C) 2016 by Tom Tsou + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #pragma once #include diff --git a/lib/decoding/osmocom/coding/gsm0503_conv.c b/lib/decoding/osmocom/coding/gsm0503_conv.c index f275ea4..5ab63a6 100644 --- a/lib/decoding/osmocom/coding/gsm0503_conv.c +++ b/lib/decoding/osmocom/coding/gsm0503_conv.c @@ -1,4 +1,3 @@ - /* * Copyright (C) 2011-2016 Sylvain Munaut * Copyright (C) 2016 sysmocom s.f.m.c. GmbH diff --git a/lib/decoding/osmocom/coding/gsm0503_interleaving.h b/lib/decoding/osmocom/coding/gsm0503_interleaving.h index f97dff4..05c0365 100644 --- a/lib/decoding/osmocom/coding/gsm0503_interleaving.h +++ b/lib/decoding/osmocom/coding/gsm0503_interleaving.h @@ -1,3 +1,25 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2016 by Tom Tsou + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + + #pragma once #include diff --git a/lib/decoding/osmocom/coding/gsm0503_mapping.h b/lib/decoding/osmocom/coding/gsm0503_mapping.h index 4c6550a..417a94f 100644 --- a/lib/decoding/osmocom/coding/gsm0503_mapping.h +++ b/lib/decoding/osmocom/coding/gsm0503_mapping.h @@ -1,3 +1,24 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2016 by Tom Tsou + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #pragma once #include diff --git a/lib/decoding/osmocom/coding/gsm0503_parity.h b/lib/decoding/osmocom/coding/gsm0503_parity.h index 540124a..6d8a062 100644 --- a/lib/decoding/osmocom/coding/gsm0503_parity.h +++ b/lib/decoding/osmocom/coding/gsm0503_parity.h @@ -1,3 +1,24 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2016 by Tom Tsou + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #pragma once #include diff --git a/lib/decoding/osmocom/coding/gsm0503_tables.h b/lib/decoding/osmocom/coding/gsm0503_tables.h index e6761ca..4976c81 100644 --- a/lib/decoding/osmocom/coding/gsm0503_tables.h +++ b/lib/decoding/osmocom/coding/gsm0503_tables.h @@ -1,3 +1,24 @@ +/* + * (C) 2013 by Andreas Eversberg + * (C) 2016 by Tom Tsou + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #pragma once #include diff --git a/lib/decoding/sch.c b/lib/decoding/sch.c index 24cee30..6d2e3eb 100644 --- a/lib/decoding/sch.c +++ b/lib/decoding/sch.c @@ -1,7 +1,7 @@ /* -*- c++ -*- */ /* * @file - * @author Piotr Krysik + * @author (C) 2014 by Piotr Krysik * @section LICENSE * * Gr-gsm is free software; you can redistribute it and/or modify diff --git a/lib/decoding/tch_f_decoder_impl.cc b/lib/decoding/tch_f_decoder_impl.cc index 5b77be2..1f22cf2 100644 --- a/lib/decoding/tch_f_decoder_impl.cc +++ b/lib/decoding/tch_f_decoder_impl.cc @@ -1,7 +1,8 @@ /* -*- c++ -*- */ /* * @file - * @author Roman Khassraf + * @author (C) 2015 by Roman Khassraf + * (C) 2017 by Piotr Krysik * @section LICENSE * * Gr-gsm is free software; you can redistribute it and/or modify @@ -296,26 +297,60 @@ namespace gr { unsigned tail = mTCHU.peekField(185, 4); bool good = (sentParity == calcParity) && (tail == 0); - if (good) { uint8_t frameBuffer[33]; - sbit_t bursts_s[116 * 8]; - int n_errors, n_bits_total; + sbit_t bursts_s[116 * 8]; + int n_errors, n_bits_total; unsigned int mTCHFrameLength; - - ubits2sbits(bursts_u, bursts_s, 116 * 8); + ubits2sbits(bursts_u, bursts_s, 116 * 8); if (d_tch_mode == TCH_FS) // GSM-FR { mTCHFrameLength = 33; gsm0503_tch_fr_decode(frameBuffer, bursts_s, 1, 0, &n_errors, &n_bits_total); - std::cout << "Errors: " << n_errors << std::endl; + //std::cout << "Errors: " << n_errors << std::endl; } else if (d_tch_mode == TCH_EFR) // GSM-EFR { + unsigned char mFrameHeader = 0x3c; + + // AMR Frame, consisting of a 8 bit frame header, plus the payload from decoding + BitVector amrFrame(244 + 8); // Same output length as AMR 12.2 + BitVector payload = amrFrame.tail(8); + + BitVector TCHW(260), EFRBits(244); + + // write frame header + amrFrame.fillField(0, mFrameHeader, 8); + + // Undo Um's EFR bit ordering. + mTCHD.unmap(GSM::g660BitOrder, 260, TCHW); + + // Remove repeating bits and CRC to get raw EFR frame (244 bits) + for (unsigned k=0; k<71; k++) + EFRBits[k] = TCHW[k] & 1; + + for (unsigned k=73; k<123; k++) + EFRBits[k-2] = TCHW[k] & 1; + + for (unsigned k=125; k<178; k++) + EFRBits[k-4] = TCHW[k] & 1; + + for (unsigned k=180; k<230; k++) + EFRBits[k-6] = TCHW[k] & 1; + + for (unsigned k=232; k<252; k++) + EFRBits[k-8] = TCHW[k] & 1; + + // Map bits as AMR 12.2k + EFRBits.map(GSM::gAMRBitOrderTCH_AFS12_2, 244, payload); + + // Put the whole frame (hdr + payload) mTCHFrameLength = 32; - gsm0503_tch_fr_decode(frameBuffer, bursts_s, 1, 1, &n_errors, &n_bits_total); + amrFrame.pack(frameBuffer); + //when itegrating with libosmocore lines above can be removed and line below uncommented, efr decoding with libosmocore need to be tested however + //gsm0503_tch_fr_decode(frameBuffer, bursts_s, 1, 1, &n_errors, &n_bits_total); } message_port_pub(pmt::mp("voice"), pmt::cons(pmt::PMT_NIL, pmt::make_blob(frameBuffer,mTCHFrameLength))); } diff --git a/lib/decoding/tch_f_decoder_impl.h b/lib/decoding/tch_f_decoder_impl.h index 0119b5a..cac245a 100644 --- a/lib/decoding/tch_f_decoder_impl.h +++ b/lib/decoding/tch_f_decoder_impl.h @@ -1,7 +1,7 @@ /* -*- c++ -*- */ /* * @file - * @author Roman Khassraf + * @author (C) 2015 by Roman Khassraf * @section LICENSE * * Gr-gsm is free software; you can redistribute it and/or modify @@ -23,12 +23,12 @@ #ifndef INCLUDED_GSM_TCH_F_DECODER_IMPL_H #define INCLUDED_GSM_TCH_F_DECODER_IMPL_H -#include "AmrCoder.h" -#include "BitVector.h" -#include "GSM503Tables.h" -#include "GSM610Tables.h" -#include "GSM660Tables.h" -#include "ViterbiR204.h" +#include "openbts/AmrCoder.h" +#include "openbts/BitVector.h" +#include "openbts/GSM503Tables.h" +#include "openbts/GSM610Tables.h" +#include "openbts/GSM660Tables.h" +#include "openbts/ViterbiR204.h" #include -- cgit v1.2.3