commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r5049 - gnuradio/trunk/gr-atsc/src/lib


From: cswiger
Subject: [Commit-gnuradio] r5049 - gnuradio/trunk/gr-atsc/src/lib
Date: Thu, 19 Apr 2007 02:01:40 -0600 (MDT)

Author: cswiger
Date: 2007-04-19 02:01:39 -0600 (Thu, 19 Apr 2007)
New Revision: 5049

Modified:
   gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc
   gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.h
Log:
Fixed forecast and consume - now sees segment sync.


Modified: gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc
===================================================================
--- gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc      2007-04-19 
03:54:02 UTC (rev 5048)
+++ gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.cc      2007-04-19 
08:01:39 UTC (rev 5049)
@@ -44,7 +44,8 @@
                  gr_make_io_signature(1, 1, sizeof(float)),
                  gr_make_io_signature(2, 2, sizeof(float))),
                  d_interp(ratio_of_rx_clock_to_symbol_freq), d_next_input(0),
-                 d_rx_clock_to_symbol_freq (ratio_of_rx_clock_to_symbol_freq)
+                 d_rx_clock_to_symbol_freq (ratio_of_rx_clock_to_symbol_freq),
+                 d_si(0)
 {
   reset();
 }
@@ -56,8 +57,6 @@
   for (unsigned i = 0; i < ninputs; i++)
     ninput_items_required[i] = noutput_items * d_rx_clock_to_symbol_freq + 
1500 - 1;
 
-  inputs0_size = noutput_items * d_rx_clock_to_symbol_freq + 1500 - 1;
-  inputs0_index = d_next_input;
 }
 
 int
@@ -68,7 +67,7 @@
 {
   int   r = work (noutput_items, input_items, output_items);
   if (r > 0)
-    consume_each (r * d_rx_clock_to_symbol_freq);
+    consume_each (d_si);
   return r;
 }
 
@@ -87,7 +86,6 @@
   // We are tasked with producing output.size output samples.
   // We will consume approximately 2 * output.size input samples.
 
-  int           si = 0;         // source index
   unsigned int  k;              // output index
 
   float         interp_sample;
@@ -95,12 +93,16 @@
   double        timing_adjustment = 0;
   bool          seg_locked;
   atsc::syminfo    tag;
+  // ammount requested in forecast
+  unsigned long input_size = noutput_items * d_rx_clock_to_symbol_freq + 1500 
-1;
 
   memset (&tag, 0, sizeof (tag));
 
+  // ammount actually consumed
+  d_si = 0;
   
   for (k = 0; k < noutput_items; k++){
-    if (!d_interp.update (in, inputs0_size, &si, timing_adjustment, 
&interp_sample)){
+    if (!d_interp.update (in, input_size, &d_si, timing_adjustment, 
&interp_sample)){
       fprintf (stderr, "GrAtscBitTimingLoop3: ran short on data...\n");
       break;
     }
@@ -113,6 +115,5 @@
 
   }
 
-  d_next_input += si;    // update next_input so forecast can get us what we 
need
   return k;
 }

Modified: gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.h
===================================================================
--- gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.h       2007-04-19 
03:54:02 UTC (rev 5048)
+++ gnuradio/trunk/gr-atsc/src/lib/atsc_bit_timing_loop.h       2007-04-19 
08:01:39 UTC (rev 5049)
@@ -76,11 +76,9 @@
   atsci_interpolator            d_interp;
   unsigned long long            d_next_input;
   double                        d_rx_clock_to_symbol_freq;
+  int                          d_si;
 
-  unsigned long long            inputs0_index;     // for inputs[0].index
-  unsigned long                        inputs0_size;      // for inputs[0].size
 
-
 };
 
 #endif /* INCLUDED_ATSC_BIT_TIMING_LOOP_H */





reply via email to

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