summaryrefslogtreecommitdiff
path: root/gr-dtv/lib/atsc
Commit message (Collapse)AuthorAgeFilesLines
* dtv: include boost/format where usedMarcus Müller2021-06-221-0/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* dtv/atsc: remove plinfo tag methodsJosh Morman2021-03-161-12/+0
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* dtv/atsc: create separate plinfo stream portsJosh Morman2021-03-167-122/+54
| | | | | | | | Rather than adding/searching for tags, just put plinfo on its own streaming port. This should be more efficient than putting tags on every item. Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* dtv/atsc: fix indexing error / replace magic numJosh Morman2021-03-081-5/+6
| | | | | | | | | | There was an extra factor of 12 in the output copy of viterbi decoder when the noutput_items was > 1 (which doesn't happen all the time) leading to a glitch in the output video. Also, replaced the hardcoded 832 with the appropriate enum Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* dtv/atsc: structs to stream tagsJosh Morman2021-03-0618-267/+323
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* clang-tidy: run full .clang-tidy on C++17 codebaseMarcus Müller2021-01-194-4/+4
| | | | | | | | | | | | | | | | | | | | run /usr/share/clang/run-clang-tidy.py -checks=file '-header-filter=.*' -fix .. from build directory. Then, clang-format -i $(git diff --name-only origin/master) to clang-format changed files. Then, refresh all header hashes in pybind bindings (*/python/bindings/*.cc) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* modernization: `override` instead of virtual in all compilation unitsMarcus Müller2020-11-0313-40/+40
|
* Add `override` for common virtual function overridesThomas Habets2020-11-0315-17/+17
| | | | | | | | | | Mostly done with: ``` find -name "*_impl.h" | xargs sed -i -r '/(void forecast|int work|int general_work|bool check_topology)\(/{:back /\)/b nxt;N;b back;:nxt s/\)$|\)(;)/) override\1/g}' ``` Then I removed an incorrect `work` that this found.
* dtv: Remove manual memory managementThomas Habets2020-10-231-3/+3
| | | | All removed except some tricky stuff in dvb_ldpc_bb_impl.
* dtv/atsc: Remove manual memory managementThomas Habets2020-10-236-61/+35
|
* Replace all calls to `get_initial_sptr` with `make_block_sptr`Thomas Habets2020-07-3015-18/+15
| | | | | | | | | | | | | | First batch of changes: ``` find […] -print0 | xargs -0 sed -i -r '/get_initial_sptr/{:nxt N;/;/!b nxt;s/get_initial_sptr\(\s*new ([^(]+)(.*)\)\)/make_block_sptr<\1>\2)/}' ``` Then: * Back out `sptr_magic.h` edits * Change some `friend` clauses * clang-format the whole thing * Update checksums in the pybind11 bindings files
* dtv: replace stderr logging by calls to GR's logging faciltiesMarcus Müller2020-04-132-5/+11
| | | | | This is but a first step; a lot of code in gr-dtv is very much libc in C++, thus we'll have a lot of printf's to deal with in the future.
* Change assert to static_assert, where possibleThomas Habets2020-03-201-3/+4
| | | | | These are all ones I could find, so assert->static_assert should now be done.
* dtv: change const to constexprThomas Habets2020-03-201-1/+1
| | | | This is needed to convert assert to static_assert.
* gr-digital: Improve PLL Loops and Clock Recoveryghostop142020-02-151-6/+1
| | | | | | | These updates incorporate the same inlining of loop functions and the newly pushed fast_cc_multiply function to ensure consistent performance improvements across systems that do not support the cx-limited-range compiler parameter (Macs and Windows).
* gr-dtv: Detect missing data field syncs and reset pipeline.Ron Economos2020-02-081-2/+9
|
* Fix ATSC Flowgraphs and Allow Realtime Viewingghostop142020-02-041-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ATSC RX flowgraph has been fixed to allow for proper decoding. The original flowgraph had rate mismatches between the RX filter and the FPLL block that prevented proper decoding. This version also has a number of performance enhancements that ultimately allow the stream to be watched in real-time. These changes capitalize on new PRs for GR master branch. The ATSC RX filter was broken into its 2 respective parts (an RRC block and a resampler). The RRC block now uses the faster FFT RRC convenience wrapper, and the PFB arb resampler was crushing performance. So the sampling rate was adjusted to match the ATSC symbol rate*sps. This removed the need for a resampler altogether, significantly reducing CPU load. Processor core affinity based on a GRCon17 presentation was also applied to separate out blocks and prevent thread migration. Some cleanup was also done in the FPLL receiver block. Note that in using this in real-time, performance enhancements in PR 3076 that has not been merged into master yet are also important. The FPLL loop has some speedups due to the inlining of the NCO and sincos functions, and takes advantage of the already-merged cx_limited_range performance improvement in the FPLL loop too. An additional change to support fast CC multiply on systems that do not support the cx_limited_range compiler flag can be incorporated once 3076 is merged. This block also is better annotated for others to understand some of the design choices. Ultimately with the networking block in grnet, smplayer can be pointed at the flowgraph and TV watched in real-time. See the flowgraph for additional notes.
* Update license header to SPDX formatdevnulling2020-01-2744-572/+44
|
* gr-dtv: atsc_equalizer_impl: bool not intValerii Zapodovnikov2020-01-171-1/+1
| | | | The 'true' and 'false' values are implicitly cast to the integer type. See atsc_equalizer_impl.cc
* Fix all formatting issuesMartin Braun2020-01-103-8/+9
| | | | | This fixes every leftover file in the GNU Radio source tree to match our clang-format definition.
* Replace many `const` variables with `constexpr`Thomas Habets2020-01-0411-39/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constexpr is like const but (for variables) guarantees evaluation at compile time (as opposed to runtime). Likely this change will do nothing on its own (though it could, since it gives the compiler more information). But it still has benefits. It allows programmer to know that initialization is not expensive (it was done at compile time), and reduces risk of a refactoring regressing the compiletimeness. Runtime initialization can be nonobvious in larger codebases. E.g.: struct S { static int foo(); }; const int bar = S::foo(); // Called and initialized at *runtime*. int S::foo() { return 10; } With constexpr: struct S { static constexpr int foo(); }; constexpr int bar = S::foo(); // Error: used before definition. constexpr int S::foo() { return 10; } Initializing at runtime is not just startup costs, but also can save memory since it'll end up in a R/O section of a binary and therefore doesn't need to be swapped out, but can be shared (in the mmap() sense of the word).
* delete unused variablesBastian Bloessl2019-09-053-5/+1
|
* Fix for more misc typosluz.paz2019-08-101-2/+2
|
* clang-format: Ordering all the includesMarcus Müller2019-08-0924-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang-format: ordering includes in gnuradio-runtime clang-format: ordering includes in gr-filter clang-format: ordering includes in gr-fft clang-format: ordering includes in gr-audio clang-format: ordering includes in gr-analog clang-format: ordering includes in gr-fec clang-format: ordering includes in gr-wavelet clang-format: ordering includes in gr-zeromq clang-format: ordering includes in gr-vocoder clang-format: ordering includes in gr-video-sdl clang-format: ordering includes in gr-trellis clang-format: ordering includes in gr-blocks clang-format: ordering includes in gr-digital clang-format: ordering includes in gr-uhd clang-format: ordering includes in gr-dtv clang-format: ordering includes in gr-channels clang-format: ordering includes in gr-qtgui clang_format.py: re-enable include reordering
* Tree: clang-format without the include sortingMarcus Müller2019-08-0945-4937/+4106
|
* dtv: Fix ATSC equalizer uninitialized data that can prevent decoding.Ron Economos2019-01-101-0/+2
|
* dtv: Fix ATSC data field sync for ARM architecture.Ron Economos2019-01-101-2/+2
|
* Clean-up: Remove unused private variables (Issue #1621, #1622, #1624)andriy gelman2018-04-285-5/+1
|
* math: replace M_PI and derivatives with GR_M_PI definesAndrej Rode2018-02-171-3/+3
|
* Comment typo fixing.luz.paz2018-02-032-4/+4
| | | | Luzpaz went ahead and found typos using `codespell -q 3`.
* Merge branch 'maint'Johnathan Corgan2016-09-192-27/+25
|\
| * dtv: fixed usage of uninitialized memory for data_size.Johnathan Corgan2016-09-192-27/+25
| | | | | | | | | | | | | | * Renamed three member variables to be prefixed by d_ (as is the convention). * Type fixes for int/char mixing.
* | gr-dtv: Remove all exit(1) calls and replace with exception.Ron Economos2016-08-191-6/+6
| |
* | gr-dtv: Make the gr-dtv component easily cross-compiled.Ron Economos2016-07-282-1/+2540
|/
* dtv: Cleanup; ATSC RS decoder - change log level to INFO instead of DEBUG.Tom Rondeau2015-12-291-6/+1
|
* dtv: atsc: add ControlPort hooks into Viterbi decoder.Tom Rondeau2015-12-294-34/+77
| | | | Produces the best metric for each decoder used.
* dtv: atsc: adds ControlPort hooks to RS decoder.Tom Rondeau2015-12-292-21/+84
| | | | | Can get info on number of packets observed, number of erroneous packets, and estimated number of bit errors.
* dtv: atsc: adds controlport hooks to equalizer.Tom Rondeau2015-12-292-0/+18
| | | | Can get equalizer taps and the equalized symbols out.
* dtv: atsc: adds ControlPort interface to get equalizer taps.Tom Rondeau2015-12-292-0/+26
|
* dtv: atsc: performance improvements for equalizer.Tom Rondeau2015-12-292-22/+30
| | | | | Uses memcpy instead of for loops for data transfer. Replaces filter and tap update for loops with VOLK calls.
* dtv: move "static const" variables from header / class into the main code. ↵Michael Dickens2015-04-022-7/+7
| | | | The original code is not necessary to have in the class, and causes issues when compiling using c++11 compliance.
* gr-dtv: Fix ATSC compile issue as reported on mailing list.Ron Economos2015-03-241-0/+1
|
* Fix Coverity Scan issues in gr-dtv.Ron Economos2015-01-262-2/+4
|
* dtv: cleanup for mergeJohnathan Corgan2015-01-2114-539/+451
|
* Add ATSC transmitter blocks and flow graph to gr-dtv.Ron Economos2015-01-2014-0/+1372
|
* dtv: remove stray include file from viterbi decoderJohnathan Corgan2014-07-221-1/+0
|
* dtv: update ATSC receive PLL gain to accomodate lower OTA numerical rangeJohnathan Corgan2014-07-221-1/+1
|
* dtv: minor cleanupsJohnathan Corgan2014-07-213-2/+4
|
* dtv: move ATSC blocks into lib/atscJohnathan Corgan2014-07-2130-0/+3036