discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] compiling atsc_trellis_encoder.cc


From: Martin Dvh
Subject: Re: [Discuss-gnuradio] compiling atsc_trellis_encoder.cc
Date: Wed, 12 Apr 2006 01:23:36 +0200
User-agent: Debian Thunderbird 1.0.2 (X11/20051002)

Charles Swiger wrote:
> On Tue, 2006-04-11 at 09:52 -0400, Charles Swiger wrote:
> 
>>Well, it compiles but there are likely still issues since the 0.9 work
>>function in GrAtscTrellisEncoder.cc has stuff to deal with an array
>>of encoders that I don't understand:
>>
>>
>>  // We must produce output.size units of output.
>>
>>  for (unsigned int i = 0; i < output.size; i +=
>>atsci_trellis_encoder::NCODERS){
>>    // primitive does 12 segments at a time.
>>    // pipeline info is handled in the primitive.
>>    encoder.encode (&out[i], &in[i + start]);
>>  }
>>
>>
>>Guess I'll look at where output.size comes from and what start does.
>>
>>--Chuck
> 
> 
> Yeah, if anybody has a clue how to implement the work function for
> an atsc_trellis_encoder.cc - I'm stuck. The code compiles but
> segfaults, very likely due to using a simple:
> 
>   for (int i = 0; i < noutput_items; i++){
>     d_trellis_encoder.encode(&out[i], &in[i]);
> 
> Mainly, I have no idea how output.size is created from
> setOutputSize(atsci_trellis_encoder::NCODERS);
> 
> Would that be 12 * sizeof_atsc_data_segment ?
> (NCODERS = 12)
> 
> 
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
Did you check that the type of &out[i] is atsc_data_segment
and the type of &in[i] is atsc_mpeg_packet_rs_encoded?


from GrAtscTrellisEncoder.h
  atsci_trellis_encoder encoder;

from atsci_trellis_encoder.h:

  /*!
   * Take 12 RS encoded, convolutionally interleaved segments and
   * produce 12 trellis coded data segments.  We work in groups of 12
   * because that's the smallest number of segments that composes a
   * single full cycle of the encoder mux.
   */
  void encode (atsc_data_segment out[NCODERS],
               const atsc_mpeg_packet_rs_encoded in[NCODERS]);

from atsc_types.h:
//! contains 832 3 bit symbols.  The low 3 bits in the byte hold the symbol.

class atsc_data_segment {
 public:
  static const int NPAD = 188;
  plinfo        pli;
  unsigned char data[ATSC_DATA_SEGMENT_LENGTH];
  unsigned char _pad_[NPAD];                            // pad to power of 2 
(1024)

  // overload equality operator
  bool operator== (const atsc_data_segment &other) const {
    return std::memcmp (data, other.data, sizeof (data)) == 0;
  }

  bool operator!= (const atsc_data_segment &other) const {
    return !(std::memcmp (data, other.data, sizeof (data)) == 0);
  }
};

Greetings,
Martin




reply via email to

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