int frame_size_bits,
int n_code_inputs,
int n_code_outputs,
- std::vector<int>& code_generator,
+ const std::vector<int>& code_generator,
bool do_termination = true,
int start_memory_state = 0,
int end_memory_state = 0);
int frame_size_bits,
int n_code_inputs,
int n_code_outputs,
- std::vector<int>& code_generator,
- std::vector<int>& code_feedback,
+ const std::vector<int>& code_generator,
+ const std::vector<int>& code_feedback,
bool do_termination = true,
int start_memory_state = 0,
int end_memory_state = 0);
gr_vector_int& ninput_items_required);
virtual int general_work (int noutput_items,
- gr_vector_int &ninput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
+ gr_vector_int& ninput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items);
};
#endif /* INCLUDED_ECC_METRICS_DECODE_VITERBI_FULL_BLOCK_H */
size_t n_bits_to_output)
{
if (in_buf == 0) {
- std::cerr << "decoder::decode: Error: input buffer is NULL.\n";
+ std::cerr << "decoder::decode{output}: Error: input buffer is NULL.\n";
assert (0);
}
if (out_buf == 0) {
- std::cerr << "decoder::decode: Error: output buffer is NULL.\n";
+ std::cerr << "decoder::decode{output}: Error: output buffer is NULL.\n";
assert (0);
}
if (n_bits_to_output == 0) {
- std::cerr << "decoder::decode: Warning: no output bits requested.\n";
+ std::cerr << "decoder::decode{output}: Warning: "
+ "no output bits requested.\n";
return (0);
}
// check that there are enough output buffer items
if (d_out_buf->n_items_left() < n_bits_to_output) {
- std::cerr << "encoder::encode: Warning: output buffer size (" <<
+ std::cerr << "encoder::encode{output}: Warning: output buffer size (" <<
d_out_buf->n_items_left() << ") is less than the desired number "
"of output items (" << n_bits_to_output <<
") ... using lower number.\n";
size_t n_items_to_input = compute_n_input_items (n_bits_to_output);
if (d_in_buf->n_items_left() < n_items_to_input) {
- std::cerr << "encoder::encode: Warning: input buffer size (" <<
+ std::cerr << "encoder::encode{output}: Warning: input buffer size (" <<
d_in_buf->n_items_left() << ") is less than the computed number "
"of required input items (" << n_items_to_input <<
") ... using lower number.\n";
n_bits_to_output = compute_n_output_bits (n_items_to_input);
}
+ // set the correct number of I/O bits
+
+ d_n_items_to_input = n_items_to_input;
+ d_n_bits_to_output = n_bits_to_output;
+
if (DO_PRINT_DEBUG) {
std::cout <<
- "# output bits = " << n_bits_to_output << "\n"
- "# input items = " << n_items_to_input << "\n";
+ "Before Decoding{output}:\n"
+ " # output bits = " << d_n_bits_to_output << "\n"
+ " # input items = " << d_n_items_to_input << "\n"
+ " # output bits used = " << d_out_buf->n_items_used() << "\n"
+ " # input items used = " << d_in_buf->n_items_used() << "\n";
}
// call the private decode function
if (DO_PRINT_DEBUG) {
std::cout <<
- "# input items used = " << d_in_buf->n_items_used() << "\n"
- "# output bits used = " << d_out_buf->n_items_used() << "\n";
+ "After Encoding{output}:\n"
+ " # output bits = " << d_n_bits_to_output << "\n"
+ " # input items = " << d_n_items_to_input << "\n"
+ " # output bits used = " << d_out_buf->n_items_used() << "\n"
+ " # input items used = " << d_in_buf->n_items_used() << "\n";
}
size_t n_items_used = d_in_buf->n_items_used ();
code_output_ptr out_buf)
{
if (in_buf == 0) {
- std::cerr << "encoder::encode: Error: input buffer is NULL.\n";
+ std::cerr << "encoder::encode{input}: Error: input buffer is NULL.\n";
assert (0);
}
if (out_buf == 0) {
- std::cerr << "encoder::encode: Error: output buffer is NULL.\n";
+ std::cerr << "encoder::encode{input}: Error: output buffer is NULL.\n";
assert (0);
}
if (n_items_to_input == 0) {
- std::cerr << "encoder::encode: Warning: no input items requested.\n";
+ std::cerr << "encoder::encode{input}: Warning: "
+ "no input items requested.\n";
return (0);
}
// check that there are enough input buffer items
if (d_in_buf->n_items_left() < n_items_to_input) {
- std::cerr << "encoder::encode: Warning: input buffer size (" <<
+ std::cerr << "encoder::encode{input}: Warning: input buffer size (" <<
d_in_buf->n_items_left() << ") is less than the desired number "
"of input items (" << n_items_to_input <<
") ... using lower number.\n";
size_t n_bits_to_output = compute_n_output_bits (n_items_to_input);
if (d_out_buf->n_items_left() < n_bits_to_output) {
- std::cerr << "encoder::encode: Warning: output buffer size (" <<
+ std::cerr << "encoder::encode{input}: Warning: output buffer size (" <<
d_out_buf->n_items_left() << ") is less than the computed number "
"of required output items (" << n_bits_to_output <<
") ... using lower number.\n";
n_items_to_input = compute_n_input_items (n_bits_to_output);
}
+ // set the correct number of I/O bits
+
+ d_n_items_to_input = n_items_to_input;
+ d_n_bits_to_output = n_bits_to_output;
+
if (DO_PRINT_DEBUG) {
std::cout <<
- "# output bits = " << n_bits_to_output << "\n"
- "# input items = " << n_items_to_input << "\n";
+ "Before Decoding{output}:\n"
+ " # output bits = " << d_n_bits_to_output << "\n"
+ " # input items = " << d_n_items_to_input << "\n"
+ " # output bits used = " << d_out_buf->n_items_used() << "\n"
+ " # input items used = " << d_in_buf->n_items_used() << "\n";
}
// call the private decode function
if (DO_PRINT_DEBUG) {
std::cout <<
- "# input items used = " << d_in_buf->n_items_used() << "\n"
- "# output bits used = " << d_out_buf->n_items_used() << "\n";
+ "After Encoding{output}:\n"
+ " # output bits = " << d_n_bits_to_output << "\n"
+ " # input items = " << d_n_items_to_input << "\n"
+ " # output bits used = " << d_out_buf->n_items_used() << "\n"
+ " # input items used = " << d_in_buf->n_items_used() << "\n";
}
size_t n_items_used = d_out_buf->n_items_used();