This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgPau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/13833
Change subject: uhd: No need to use dynamic mem for rx_buffers
......................................................................
uhd: No need to use dynamic mem for rx_buffers
This way we don't need to free explicitly and we simplify code.
Change-Id: I39b293c24053298256626fa78344102032fc2104
---
M Transceiver52M/device/uhd/UHDDevice.cpp
M Transceiver52M/device/uhd/UHDDevice.h
2 files changed, 12 insertions(+), 17 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/33/13833/1
diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp
index 79e5855..3e53111 100644
--- a/Transceiver52M/device/uhd/UHDDevice.cpp
+++ b/Transceiver52M/device/uhd/UHDDevice.cpp
@@ -173,9 +173,6 @@
uhd_device::~uhd_device()
{
stop();
-
- for (size_t i = 0; i < rx_buffers.size(); i++)
- delete rx_buffers[i];
}
void uhd_device::init_gains()
@@ -459,7 +456,6 @@
rx_freqs.resize(chans);
tx_gains.resize(chans);
rx_gains.resize(chans);
- rx_buffers.resize(chans);
switch (ref) {
case REF_INTERNAL:
@@ -513,8 +509,7 @@
// Create receive buffer
size_t buf_len = SAMPLE_BUF_SZ / sizeof(uint32_t);
- for (size_t i = 0; i < rx_buffers.size(); i++)
- rx_buffers[i] = new smpl_buf(buf_len, rx_rate);
+ rx_buffers = std::vector<smpl_buf>(chans, smpl_buf(buf_len, rx_rate));
// Create vector buffer
pkt_bufs = std::vector<std::vector<short> >(chans, std::vector<short>(2 * rx_spp));
@@ -711,15 +706,15 @@
LOGC(DDEV, DEBUG) << "Requested timestamp = " << ts.get_real_secs();
// Check that timestamp is valid
- rc = rx_buffers[0]->avail_smpls(timestamp);
+ rc = rx_buffers[0].avail_smpls(timestamp);
if (rc < 0) {
- LOGC(DDEV, ERROR) << rx_buffers[0]->str_code(rc);
- LOGC(DDEV, ERROR) << rx_buffers[0]->str_status(timestamp);
+ LOGC(DDEV, ERROR) << rx_buffers[0].str_code(rc);
+ LOGC(DDEV, ERROR) << rx_buffers[0].str_status(timestamp);
return 0;
}
// Receive samples from the usrp until we have enough
- while (rx_buffers[0]->avail_smpls(timestamp) < len) {
+ while (rx_buffers[0].avail_smpls(timestamp) < len) {
thread_enable_cancel(false);
size_t num_smpls = rx_stream->recv(pkt_ptrs, rx_spp,
metadata, 0.1, true);
@@ -745,14 +740,14 @@
LOGC(DDEV, DEBUG) << "Received timestamp = " << ts.get_real_secs();
for (size_t i = 0; i < rx_buffers.size(); i++) {
- rc = rx_buffers[i]->write((short *) &pkt_bufs[i].front(),
+ rc = rx_buffers[i].write((short *) &pkt_bufs[i].front(),
num_smpls,
metadata.time_spec.to_ticks(rx_rate));
// Continue on local overrun, exit on other errors
if ((rc < 0)) {
- LOGC(DDEV, ERROR) << rx_buffers[i]->str_code(rc);
- LOGC(DDEV, ERROR) << rx_buffers[i]->str_status(timestamp);
+ LOGC(DDEV, ERROR) << rx_buffers[i].str_code(rc);
+ LOGC(DDEV, ERROR) << rx_buffers[i].str_status(timestamp);
if (rc != smpl_buf::ERROR_OVERFLOW)
return 0;
}
@@ -761,10 +756,10 @@
// We have enough samples
for (size_t i = 0; i < rx_buffers.size(); i++) {
- rc = rx_buffers[i]->read(bufs[i], len, timestamp);
+ rc = rx_buffers[i].read(bufs[i], len, timestamp);
if ((rc < 0) || (rc != len)) {
- LOGC(DDEV, ERROR) << rx_buffers[i]->str_code(rc);
- LOGC(DDEV, ERROR) << rx_buffers[i]->str_status(timestamp);
+ LOGC(DDEV, ERROR) << rx_buffers[i].str_code(rc);
+ LOGC(DDEV, ERROR) << rx_buffers[i].str_status(timestamp);
return 0;
}
}
diff --git a/Transceiver52M/device/uhd/UHDDevice.h b/Transceiver52M/device/uhd/UHDDevice.h
index 2a9fc02..5d7e4bd 100644
--- a/Transceiver52M/device/uhd/UHDDevice.h
+++ b/Transceiver52M/device/uhd/UHDDevice.h
@@ -139,7 +139,7 @@
uhd::time_spec_t prev_ts;
TIMESTAMP ts_initial, ts_offset;
- std::vector<smpl_buf *> rx_buffers;
+ std::vector<smpl_buf> rx_buffers;
/* Sample buffers used to receive samples from UHD: */
std::vector<std::vector<short> > pkt_bufs;
/* Used to call UHD API: Buffer pointer of each elem in pkt_ptrs will
--
To view, visit https://gerrit.osmocom.org/13833
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-trx
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I39b293c24053298256626fa78344102032fc2104
Gerrit-Change-Number: 13833
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190430/c12857d9/attachment.htm>