usrp1_source_base.cc has this chunk of code that reads from
while (output_index < noutput_items)
int nbytes = ninput_bytes_reqd_for_noutput_items (
noutput_items - output_index);
nbytes = std::min (nbytes, BUFSIZE);
int result_nbytes = d_usrp->read (buf, nbytes, &overrun);
Question: What guarantees that nbytes is a multiple of 512?
According to usrp_basic.h, nbytes must be a multiple of 512. It seems
to me that nouput_items would need to be specially crafted upstream so
that nbytes is a multiple of 512.