gr-osmosdr: fix sdrplay noise in gqrx
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
|
AUX gqrx_spikes.patch 2724 SHA256 b89672ff88e9eb2fd3d97c4b4a6cbf76ed5a73fb1842f4afb2eda6823f6e015f SHA512 e7c2111bdd857ac6d10ee47034e9824cd0a3ae1c15edeb5187674a48e51a57e110860f2d85ca392e61c7a0632c645efd7a02c1c7764bc9c1fa92c579f2275de5 WHIRLPOOL 3b6cabde7bfc9b7fb8e61ceb26920abb3f821c8f90ad3fece190ca8680c9d84ae3fbec5744ea191d97c5846e3f286bc6ebf26c53b0f4b6a5686fb1b8228d68af
|
||||||
DIST gr-osmosdr-0.1.4_p20150730.tar.xz 1148596 SHA256 b94e597d8042717d70f5f8c358fb8446ef64a91fa6ab2b362e0e7d37457bd961 SHA512 7e6847eba0d4e217ea71bb4b8105290b329bf8840a7193df013b3a0cd9c9ef57f3686252da48cb0df239288b5794c75178a8bb45ff2a2dd8b605f63fec2426d9 WHIRLPOOL db2df16796ab5974d22d4f606bd73aaec53693933fcc5c12e5126f14e4d3d2eadacd7cf2e28cb18a951caf9a16440c72f54177acfd3af16512febd97d6e0072c
|
DIST gr-osmosdr-0.1.4_p20150730.tar.xz 1148596 SHA256 b94e597d8042717d70f5f8c358fb8446ef64a91fa6ab2b362e0e7d37457bd961 SHA512 7e6847eba0d4e217ea71bb4b8105290b329bf8840a7193df013b3a0cd9c9ef57f3686252da48cb0df239288b5794c75178a8bb45ff2a2dd8b605f63fec2426d9 WHIRLPOOL db2df16796ab5974d22d4f606bd73aaec53693933fcc5c12e5126f14e4d3d2eadacd7cf2e28cb18a951caf9a16440c72f54177acfd3af16512febd97d6e0072c
|
||||||
EBUILD gr-osmosdr-0.1.4_p20150730.ebuild 1920 SHA256 e02119d72b7074a412f16480ab086adc4013062f98d6f5b6989cc2979463ae3f SHA512 a99299d2a6ef5c09df4076cf82a01024c1da468efb9e658f5d31c63b1f6020efe5eeda98f218a747b5164811356c35a5d0bbc75d794a69bb9b90071338f54720 WHIRLPOOL 4c6b837840cd20ffcb354dfdeed73fa45bf8a81d40803541799e55f34aaff143b74e252b067019fe33feea653286d793792d67e88fee4c3be6ea81d58a7bca0f
|
EBUILD gr-osmosdr-0.1.4_p20150730.ebuild 1920 SHA256 e02119d72b7074a412f16480ab086adc4013062f98d6f5b6989cc2979463ae3f SHA512 a99299d2a6ef5c09df4076cf82a01024c1da468efb9e658f5d31c63b1f6020efe5eeda98f218a747b5164811356c35a5d0bbc75d794a69bb9b90071338f54720 WHIRLPOOL 4c6b837840cd20ffcb354dfdeed73fa45bf8a81d40803541799e55f34aaff143b74e252b067019fe33feea653286d793792d67e88fee4c3be6ea81d58a7bca0f
|
||||||
EBUILD gr-osmosdr-9999.ebuild 1920 SHA256 e4e37406d0474e315f7a1a6909260578e5fc06168d8336dd3905ab20c726cecd SHA512 304cbf82578e1cfb85c2febc557ad0ec257325a32751e07b3e0aae20c1e56896679f8354154357426d77b0fa0e6543de9e71dc44e49c70ea300965562f99b323 WHIRLPOOL e06cb0559f7d67cf21d7c8c3a9e0466e86b9be4b04d130455f776d5e67dcdc096953c63887ea2ee78a06e76fec4c7bddaa04b611c48862fd6511a7fc7aab8bb3
|
EBUILD gr-osmosdr-9999.ebuild 2270 SHA256 962ac36e9b6ec282e0a9e3fa89654587df20e530db4201599abb8f3161b835ef SHA512 d22b2db242fa44028930beb29ac4c8f58967a8b18af4491dd021d16c2d1fb9c12d2fe38ed3cde9cd2874bee0337de509b482840e5c5f6d1569b05b1c1df0a496 WHIRLPOOL 4740ea8e43c343fd1b04c950220a6a6880841687214913d3575692ad74e5bb1aafd61f01ef5757958e45da564bf970bbcdd40228b0ba35483825d2a61fdcf48a
|
||||||
MISC metadata.xml 752 SHA256 aaf4a362243890bc6b43748cbb5c28f2ba400afb801c88514e0bc3806be26329 SHA512 3b49428bfa6b62bda1195b6c31c549a1ccf59fce03ce0bed5206a0d5a40386264628930758dbaa64e8a40b657c478076cb9a2f10c7d5ace10547ca5cf00742ae WHIRLPOOL 039452d0e4f720e5d60c1b23d7cd025a9c50c35216b199a118ffd4d38ffd08780cc6144d08254f704901662d1837e27a2e9cca0ed005fe601b8f4062801596d8
|
MISC metadata.xml 752 SHA256 aaf4a362243890bc6b43748cbb5c28f2ba400afb801c88514e0bc3806be26329 SHA512 3b49428bfa6b62bda1195b6c31c549a1ccf59fce03ce0bed5206a0d5a40386264628930758dbaa64e8a40b657c478076cb9a2f10c7d5ace10547ca5cf00742ae WHIRLPOOL 039452d0e4f720e5d60c1b23d7cd025a9c50c35216b199a118ffd4d38ffd08780cc6144d08254f704901662d1837e27a2e9cca0ed005fe601b8f4062801596d8
|
||||||
|
|||||||
91
net-wireless/gr-osmosdr/files/gqrx_spikes.patch
Normal file
91
net-wireless/gr-osmosdr/files/gqrx_spikes.patch
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
--- a/lib/sdrplay/sdrplay_source_c.cc 2017-06-24 23:13:25.747061807 +0200
|
||||||
|
+++ b/lib/sdrplay/sdrplay_source_c.cc 2015-09-20 09:27:29.000000000 +0200
|
||||||
|
@@ -142,8 +142,11 @@
|
||||||
|
*/
|
||||||
|
sdrplay_source_c::~sdrplay_source_c ()
|
||||||
|
{
|
||||||
|
- free(_dev);
|
||||||
|
- _dev = NULL;
|
||||||
|
+ if (_dev != NULL)
|
||||||
|
+ {
|
||||||
|
+ free(_dev);
|
||||||
|
+ _dev = NULL;
|
||||||
|
+ }
|
||||||
|
_buf_mutex.lock();
|
||||||
|
if (_running)
|
||||||
|
{
|
||||||
|
@@ -214,10 +217,10 @@
|
||||||
|
gr_complex *out = (gr_complex *)output_items[0];
|
||||||
|
int cnt = noutput_items;
|
||||||
|
unsigned int sampNum;
|
||||||
|
+ unsigned int sampNumStart;
|
||||||
|
int grChanged;
|
||||||
|
int rfChanged;
|
||||||
|
int fsChanged;
|
||||||
|
-
|
||||||
|
if (_uninit)
|
||||||
|
{
|
||||||
|
return WORK_DONE;
|
||||||
|
@@ -230,27 +233,35 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
_buf_mutex.lock();
|
||||||
|
-
|
||||||
|
- if (_buf_offset)
|
||||||
|
+ sampNumStart = sampNum;
|
||||||
|
+ int first_offset = _buf_offset;
|
||||||
|
+ if (_buf_offset > 0)
|
||||||
|
{
|
||||||
|
- for (int i = _buf_offset; i < _dev->samplesPerPacket; i++)
|
||||||
|
+ for (int i = _buf_offset; i < _dev->samplesPerPacket; i++)
|
||||||
|
{
|
||||||
|
*out++ = gr_complex( float(_bufi[i]) * (1.0f/2048.0f), float(_bufq[i]) * (1.0f/2048.0f) );
|
||||||
|
}
|
||||||
|
- cnt -= (_dev->samplesPerPacket - _buf_offset);
|
||||||
|
+ if (cnt > ( _dev ->samplesPerPacket - _buf_offset ))
|
||||||
|
+ {
|
||||||
|
+ cnt = cnt - (_dev->samplesPerPacket - _buf_offset);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ _buf_offset = _buf_offset + cnt;
|
||||||
|
+ cnt = 0;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
- while ((cnt - _dev->samplesPerPacket) >= 0)
|
||||||
|
+ while ((cnt - _dev->samplesPerPacket) > 0)
|
||||||
|
{
|
||||||
|
mir_sdr_ReadPacket(_bufi.data(), _bufq.data(), &sampNum, &grChanged, &rfChanged, &fsChanged);
|
||||||
|
for (int i = 0; i < _dev->samplesPerPacket; i++)
|
||||||
|
{
|
||||||
|
*out++ = gr_complex( float(_bufi[i]) * (1.0f/2048.0f), float(_bufq[i]) * (1.0f/2048.0f) );
|
||||||
|
}
|
||||||
|
- cnt -= _dev->samplesPerPacket;
|
||||||
|
+ cnt = cnt - _dev->samplesPerPacket;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- _buf_offset = 0;
|
||||||
|
+
|
||||||
|
if (cnt)
|
||||||
|
{
|
||||||
|
mir_sdr_ReadPacket(_bufi.data(), _bufq.data(), &sampNum, &grChanged, &rfChanged, &fsChanged);
|
||||||
|
@@ -258,10 +269,15 @@
|
||||||
|
{
|
||||||
|
*out++ = gr_complex( float(_bufi[i]) * (1.0f/2048.0f), float(_bufq[i]) * (1.0f/2048.0f) );
|
||||||
|
}
|
||||||
|
- _buf_offset = cnt;
|
||||||
|
- }
|
||||||
|
- _buf_mutex.unlock();
|
||||||
|
+ _buf_offset = cnt;
|
||||||
|
|
||||||
|
+ }
|
||||||
|
+ int items = sampNum - sampNumStart;
|
||||||
|
+ if ( (items + _dev->samplesPerPacket - first_offset - noutput_items) != (_dev->samplesPerPacket - cnt))
|
||||||
|
+ {
|
||||||
|
+ std::cerr << "Sampling Error! " << "cnt before return = " << cnt << " noutput_items = " << noutput_items << " first_offset = " << first_offset << " buffer_offset = " << _buf_offset << " Items = " << items << " SpP - _buf_offset = " << _dev->samplesPerPacket - _buf_offset << std::endl;
|
||||||
|
+ }
|
||||||
|
+ _buf_mutex.unlock();
|
||||||
|
return noutput_items;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -41,6 +41,9 @@ DEPEND="${RDEPEND}
|
|||||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||||
|
|
||||||
src_prepare() {
|
src_prepare() {
|
||||||
|
# patch source: http://www.transmitter.com/sdrplay/sdrplay_source_c.cc.test-0919-49.txt,
|
||||||
|
# details under http://www.sdrplay.com/community/viewtopic.php?f=9&t=317&sid=29080cae8c5689e5c332fb1a76abb325&start=10http://www.sdrplay.com/community/viewtopic.php?f=9&t=317&sid=29080cae8c5689e5c332fb1a76abb325&start=10
|
||||||
|
epatch ${FILESDIR}/gqrx_spikes.patch
|
||||||
epatch_user
|
epatch_user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user