Ошибка Gnuradio «двойное освобождение или повреждение (!prev)»C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка Gnuradio «двойное освобождение или повреждение (!prev)»

Сообщение Anonymous »

Я делаю два блока OOT в gnuradio для udp tx/rx с размером элемента 188 для ввода/вывода, блок rx получает поток udp ts и выполняет фрагментацию пакетов, а блок tx выполняет дефрагментацию, затем передает поток udp в VLC, и все работает. успех, как показано ниже (ffmpeg -> gnuradio udprx -> gnuradio -> VLC):
введите здесь описание изображения
Затем я хочу подключиться к системе модуляции, но она не может работать из-за несоответствия размеров элементов, bbheader вместо этого принимает только 1 размер элемента 188
введите описание изображения здесь
поэтому я попытался сделать два блока, чтобы две стороны могли соответственно принять Размер 188 и 1 предмета
введите описание изображения

Код: Выделить всё

#include "udppacket_impl.h"
#include 

namespace gr {
namespace udp0129 {

udppacket::sptr udppacket::make() { return gnuradio::make_block_sptr(); }

/*
* The private constructor
*/
udppacket_impl::udppacket_impl()
: gr::sync_block("udppacket",
gr::io_signature::make(1 , 1 , sizeof(unsigned char)*188),
gr::io_signature::make(1 , 1 , sizeof(unsigned char)))
{
}

/*
* Our virtual destructor.
*/
udppacket_impl::~udppacket_impl() {}

int udppacket_impl::work(int noutput_items,
gr_vector_const_void_star& input_items,
gr_vector_void_star& output_items)
{
const unsigned char *in = (const unsigned char *) input_items[0];
unsigned char *out = (unsigned char *) output_items[0];

for(int i = 0; i < noutput_items; i++)
{
out[i]=in[i];
}

return noutput_items;
}

}
}

Код: Выделить всё

#include "packetudp_impl.h"
#include 

namespace gr {
namespace udp0129 {

packetudp::sptr packetudp::make() { return gnuradio::make_block_sptr
(); }

/*
* The private constructor
*/
packetudp_impl::packetudp_impl()
: gr::sync_block("packetudp",
gr::io_signature::make(
1 , 1 , sizeof(unsigned char)),
gr::io_signature::make(
1 , 1 , sizeof(unsigned char)*188))
{
}

/*
* Our virtual destructor.
*/
packetudp_impl::~packetudp_impl() {}

int packetudp_impl::work(int noutput_items,
gr_vector_const_void_star& input_items,
gr_vector_void_star& output_items)
{
const unsigned char *in = (const unsigned char *) input_items[0];
unsigned char *out = (unsigned char *) output_items[0];

for(int i = 0; i < noutput_items; i++)
{
out[i]=in[i];
}

return noutput_items;
}

} /* namespace udp0129 */
} /* namespace gr */
flowgraph можно запустить, но он не может работать должным образом, когда я отправляю поток потока udp из ffmpeg, на стороне VLC выскакивает сообщение
В gnuradio программа автоматически останавливается с сообщением ниже:
Изображение

Мне нужна помощь с этим

Подробнее здесь: https://stackoverflow.com/questions/781 ... prev-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»