[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Discuss-gnuradio] Expected behavior during underruns

From: Patrik Eliardsson
Subject: RE: [Discuss-gnuradio] Expected behavior during underruns
Date: Tue, 14 Dec 2010 16:44:15 +0100


> -----Original Message-----
> From: address@hidden [mailto:address@hidden On 
> Behalf Of Thomas Tsou
> Sent: Thursday, December 09, 2010 6:44 PM
> To: Patrik Eliardsson
> Cc: address@hidden
> Subject: Re: [Discuss-gnuradio] Expected behavior during underruns
> On Thu, Dec 9, 2010 at 5:11 AM, Patrik Eliardsson 
> <address@hidden> wrote:
> > Dear list,
> >
> > What is the expected behavior when we get underruns with 
> the UHD and the flow control using the USRP2?
> >
> > 1) When we get underruns, does the usrp2 send some random 
> samples until the host computer manage to feed the usrp2 and 
> then starts to consume the 'old' samples from the host computer?
> >
> > Or
> >
> > 2) When we get underruns, does the usrp2 send some random 
> samples while throwing away old samples until the host 
> computer manage to feed the usrp2 with samples to be sent in 
> the future?
> >
> > Or does it work in another way?
> Based on my observations with a scope, there is no output 
> during underruns; the usrp2 never sends random samples. Also, 
> the usrp2 doesn't drop samples, so late samples will transmit 
> immediately upon late arrival. My applications deal with 
> continuous streaming, which requires occasionally dropping 
> samples to maintain synchronization, and that occurs on the host.
> I should note that most of my testing was before host based 
> flow control was merged. I haven't noticed any significant 
> changes afterwards, so I assume that the underrun behaviour 
> is unchanged.
>   Thomas
Thanks for your answer Thomas!

Our observations shows also that the usrp2 doesn't drop any samples when an 
underrun occur. If we drop samples at the host, can we get a continous stream 
of sample at 25Msamp/s that is synchronous? What is your maximum continous 

I've been looking in the source code and tried to find out where to implement 
the sample dropping. My thoughts so far is that it should be somewhere in 
vrt_packet_handler.hpp and/or io_impl.cpp in the send functions and 
get_send_buffs function.

The underruns are received(detected) in the pirate loop in io_impl.cpp, 
correct?!  It's not obvious for me how to figure out which samples that I 
should dropp to get the rest of the samples synchronized again. Can you give me 
some hints?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]