discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] how to handle sources with variable bitrate


From: Anselm Karl
Subject: Re: [Discuss-gnuradio] how to handle sources with variable bitrate
Date: Thu, 17 Mar 2016 09:50:37 +0100

Hi, Nikos,

adding a buffer / fifo and matching the mean video rate to the rate of my transmission system should work.

But i don't really want to match the rates, because i'll have to do that every time i change something on the source. It can be quite an effort, too. (Like interpolation the base-band signal) Or consider a asynchronous source (something like a serial terminal) with large intervals with no data.

With the "zero stuffing solution" you just have to make sure, that the transmission is fast enough for the source, "plug in" the source and everything should be fine. 

I've done some gnu radio blocks. But i don't now how to tell the work function how many samples the down stream block needs. In my understanding the work functions gets some input samples and calculates some output samples out of them. It's like the block gets actively written to and passively read from. And i would need it the other way.

BR,
Anselm

 

2016-03-17 9:17 GMT+01:00 Nikos Balkanas <address@hidden>:
Hi,

Have you tried using a FIFO block in your flow? There a few around and it seems to me it would normalize your flow.

BR,
Nikos

On Thu, Mar 17, 2016 at 10:01 AM, Anselm Karl <address@hidden> wrote:
Hi all,

i want to transmitt a video stream with gnuradio and usrps. There are some examples on the web and i got it working with vlc.

The problem is, that the playback is quite choppey. This is because the digital transmission over the usrps has a fixed rate but the encoded video has a variable rate. If i set the transmission rate higher than the (mean) rate of the video, i get a lot of underruns on the tranmitting usrp (= chopped of rf signal). Which is bad because the transmission designed to be continous (for example the clockloop, ...).

The transmission is based on fixed size fec code blocks starting with an preambel. A possible solution could be to stuff zeros between two blocks while waiting on the (video) source. On the receiver this stuffed zeros would be trown away automatically.

That "zero stuffing" could be realized with a block, that puts out N (N= payload size of one block) input samples (first sample marked with a tag) at one "piece" or (if it has no N input samples in some internal buffer) it puts out zeros). Based on the tag a downstream block could mux in the preambel and everything would be fine.

But here is my question:
I don´t know how to write a block, that always has output samples available. Is there i kind of a non-blocking block template?


Best regards,
 
Anselm
 


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio





--
Mit freundlichen Grüßen
 
Anselm Karl
 


reply via email to

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