discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] block consuming input if there is no output?


From: Charles Swiger
Subject: Re: [Discuss-gnuradio] block consuming input if there is no output?
Date: Thu, 04 May 2006 15:07:46 -0400

On Thu, 2006-05-04 at 03:46 -0700, Eric Blossom wrote:
> On Wed, May 03, 2006 at 04:37:49PM -0400, Chuck Swiger wrote:
> > Will a 2.x block consume an input stream if it returns 0 output items?
> 
> Yes,  if it's based on gr_block and you call consume or consume_each
> in general_work.
> 

Ok, just thinking out loud here - the 0.9 i/o data types are
VrSampleRange

typedef unsigned long long VrSampleIndex;
typedef struct {
        VrSampleIndex index;
        unsigned long size;
} VrSampleRange;


and my simple solution to the inputs[x].size and inputs[x].index
problem was to create new variables  inputs0_size and inputs0_index.
The was sufficient in other blocks but field_sync_demux will need
to be rewritten.   Just returning ii/DEC gets it enough data to sync,
THEN it hangs up - this is tantalizingly close to fully working:

>>> gr_fir_fff: using SSE
FSC - 511 pattern is good, errors: 1
FSC - Field 2
tag is start field sync
EQ: Transition to locked
EQ: symbol_num: 0, segment_num: 511, field_num: 1, valid: 1
EQ: symbol_num: 0, segment_num: 511, field_num: 1, valid: 1
EQ - tag_is_start_field_sync_2
EQ - d_offset_from_last_field_sync: 654
atsc_field_sync_demux: synced (FIELD-2) at 1663345 [delta = 1663345]
FSD - returning 3
atsc_field_sync_demux: lost sync at  1663345
atsc_field_sync_demux: synced (FIELD-2) at 1664069 [delta = 724]
FSD - returning 0
atsc_field_sync_demux: lost sync at  1664069
atsc_field_sync_demux: synced (FIELD-2) at 1664793 [delta = 724]
FSD - returning 0


where inputs0_index is 1663345 etc - which I don't think should just
keep counting symbols indefinitely, and returning 0 I guess means it's
stuck looping over the same data or something.

Maybe it's finding a field sync at offset 724 in the input stream,
bumping up inputs0_index by that much and exiting, then reentering
expecting to find the field sync at 0, doesn't find it (lost sync) -
searches again and finds it out at 724, adds that, exits, lather rinse
repeat.







reply via email to

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