rtl: skip one buffer full of garbage at the beginning

This commit is contained in:
Dimitri Stolnikov 2012-05-13 20:01:50 +02:00
parent 8e82b44bff
commit 0e3d1995a0
2 changed files with 9 additions and 0 deletions

View File

@ -45,6 +45,7 @@ using namespace boost::assign;
#define BUF_SIZE (16 * 32 * 512) #define BUF_SIZE (16 * 32 * 512)
#define BUF_NUM 32 #define BUF_NUM 32
#define BUF_SKIP 1 // buffers to skip due to garbage
/* /*
* Create a new instance of rtl_source_c and return * Create a new instance of rtl_source_c and return
@ -161,6 +162,8 @@ rtl_source_c::rtl_source_c (const std::string &args)
_auto_gain = false; _auto_gain = false;
_skipped = 0;
_thread = gruel::thread(_rtlsdr_wait, this); _thread = gruel::thread(_rtlsdr_wait, this);
} }
@ -193,6 +196,11 @@ void rtl_source_c::_rtlsdr_callback(unsigned char *buf, uint32_t len, void *ctx)
void rtl_source_c::rtlsdr_callback(unsigned char *buf, uint32_t len) void rtl_source_c::rtlsdr_callback(unsigned char *buf, uint32_t len)
{ {
if (_skipped < BUF_SKIP) {
_skipped++;
return;
}
if (len != BUF_SIZE) { if (len != BUF_SIZE) {
printf("U(%d)\n", len); fflush(stdout); printf("U(%d)\n", len); fflush(stdout);
return; return;

View File

@ -133,6 +133,7 @@ private:
unsigned int _samp_avail; unsigned int _samp_avail;
bool _auto_gain; bool _auto_gain;
unsigned int _skipped;
}; };
#endif /* INCLUDED_RTLSDR_SOURCE_C_H */ #endif /* INCLUDED_RTLSDR_SOURCE_C_H */