Hi Anselm. Go to http://lists.gnu.org/archive/html/discuss-gnuradio/ and search this "Asynchronous source with zeros in between"
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. 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". Bye! 2016-03-17 5:50 GMT-03:00 Anselm Karl <[email protected]>: > 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 <[email protected]>: > >> 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 < >> [email protected]> 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 >>> [email protected] >>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >>> >>> >> > > > -- > Mit freundlichen Grüßen > > *Anselm Karl* > > > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
