mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-07-01 17:43:02 +00:00
Fixes a bug that prevented processing of files > 4 GB. Thanks to Stephan X. Esterhuizen for sending the patch.
git-svn-id: https://svn.code.sf.net/p/gnss-sdr/code/trunk@415 64b25241-fba3-4117-9849-534c7e92360d
This commit is contained in:
parent
31f73ed40d
commit
8c5a12e126
@ -39,7 +39,7 @@
|
|||||||
using google::LogMessage;
|
using google::LogMessage;
|
||||||
|
|
||||||
gnss_sdr_valve::gnss_sdr_valve (size_t sizeof_stream_item,
|
gnss_sdr_valve::gnss_sdr_valve (size_t sizeof_stream_item,
|
||||||
int nitems,
|
unsigned long long nitems,
|
||||||
gr::msg_queue::sptr queue) : gr::sync_block("valve",
|
gr::msg_queue::sptr queue) : gr::sync_block("valve",
|
||||||
gr::io_signature::make(1, 1, sizeof_stream_item),
|
gr::io_signature::make(1, 1, sizeof_stream_item),
|
||||||
gr::io_signature::make(1, 1, sizeof_stream_item) ),
|
gr::io_signature::make(1, 1, sizeof_stream_item) ),
|
||||||
@ -49,7 +49,7 @@ gnss_sdr_valve::gnss_sdr_valve (size_t sizeof_stream_item,
|
|||||||
|
|
||||||
|
|
||||||
boost::shared_ptr<gr::block> gnss_sdr_make_valve (size_t sizeof_stream_item,
|
boost::shared_ptr<gr::block> gnss_sdr_make_valve (size_t sizeof_stream_item,
|
||||||
int nitems,
|
unsigned long long nitems,
|
||||||
gr::msg_queue::sptr queue)
|
gr::msg_queue::sptr queue)
|
||||||
{
|
{
|
||||||
return boost::shared_ptr<gnss_sdr_valve> (new gnss_sdr_valve (sizeof_stream_item, nitems, queue));
|
return boost::shared_ptr<gnss_sdr_valve> (new gnss_sdr_valve (sizeof_stream_item, nitems, queue));
|
||||||
@ -69,9 +69,8 @@ int gnss_sdr_valve::work (int noutput_items,
|
|||||||
delete cmf;
|
delete cmf;
|
||||||
return -1; // Done!
|
return -1; // Done!
|
||||||
}
|
}
|
||||||
unsigned n = std::min(d_nitems - d_ncopied_items, noutput_items);
|
unsigned long long n = std::min(d_nitems - d_ncopied_items, noutput_items);
|
||||||
if (n == 0)
|
if (n == 0) return 0;
|
||||||
return 0;
|
|
||||||
memcpy (output_items[0], input_items[0], n * input_signature()->sizeof_stream_item(0));
|
memcpy (output_items[0], input_items[0], n * input_signature()->sizeof_stream_item(0));
|
||||||
d_ncopied_items += n;
|
d_ncopied_items += n;
|
||||||
return n;
|
return n;
|
||||||
|
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
|
|
||||||
boost::shared_ptr<gr::block> gnss_sdr_make_valve (size_t sizeof_stream_item,
|
boost::shared_ptr<gr::block> gnss_sdr_make_valve (size_t sizeof_stream_item,
|
||||||
int nitems,
|
unsigned long long nitems,
|
||||||
gr::msg_queue::sptr queue);
|
gr::msg_queue::sptr queue);
|
||||||
/*!
|
/*!
|
||||||
* \brief Implementation of a GNU Radio block that sends a STOP message to the
|
* \brief Implementation of a GNU Radio block that sends a STOP message to the
|
||||||
@ -49,13 +49,13 @@ boost::shared_ptr<gr::block> gnss_sdr_make_valve (size_t sizeof_stream_item,
|
|||||||
class gnss_sdr_valve : public gr::sync_block
|
class gnss_sdr_valve : public gr::sync_block
|
||||||
{
|
{
|
||||||
friend boost::shared_ptr<gr::block> gnss_sdr_make_valve(size_t sizeof_stream_item,
|
friend boost::shared_ptr<gr::block> gnss_sdr_make_valve(size_t sizeof_stream_item,
|
||||||
int nitems,
|
unsigned long long nitems,
|
||||||
gr::msg_queue::sptr queue);
|
gr::msg_queue::sptr queue);
|
||||||
gnss_sdr_valve (size_t sizeof_stream_item,
|
gnss_sdr_valve (size_t sizeof_stream_item,
|
||||||
int nitems,
|
unsigned long long nitems,
|
||||||
gr::msg_queue::sptr queue);
|
gr::msg_queue::sptr queue);
|
||||||
int d_nitems;
|
unsigned long long d_nitems;
|
||||||
int d_ncopied_items;
|
unsigned long long d_ncopied_items;
|
||||||
gr::msg_queue::sptr d_queue;
|
gr::msg_queue::sptr d_queue;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -74,7 +74,7 @@ private:
|
|||||||
unsigned int out_stream_;
|
unsigned int out_stream_;
|
||||||
std::string item_type_;
|
std::string item_type_;
|
||||||
size_t item_size_;
|
size_t item_size_;
|
||||||
long samples_;
|
unsigned long long samples_;
|
||||||
bool dump_;
|
bool dump_;
|
||||||
std::string dump_filename_;
|
std::string dump_filename_;
|
||||||
double sample_freq_in_;
|
double sample_freq_in_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user