|
From: | Anselm Karl |
Subject: | Re: [Discuss-gnuradio] how to handle sources with variable bitrate |
Date: | Thu, 17 Mar 2016 19:47:29 +0100 |
Thank you. I will look at it!
Bye!I think my problem was different that yours and my solution will not be fit, but it may give you some ideas. The key was to bring the payload in a PDU message and to have a block that manages the "padding" before entering to the "stream domain".You will find an email I wrote to this list asking a similar question. I'm not pasting a link here because I couldn't find the starting message; the thread is split in many parts (I don't know why). I hope you should be able to find all the pieces in the search results. If not, please write to me and I will find a way of send it to you.Hi Anselm.Go to http://lists.gnu.org/archive/html/discuss-gnuradio/ and search this "Asynchronous source with zeros in between"2016-03-17 5:50 GMT-03:00 Anselm Karl <address@hidden>: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.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.Hi, Nikos,adding a buffer / fifo and matching the mean video rate to the rate of my transmission system should work.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,NikosOn 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üßenAnselm Karl
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
[Prev in Thread] | Current Thread | [Next in Thread] |