Я пишу приложение BlackBerry 10, которое декодирует видеопоток H264 (из Parrot AR Drone) с использованием ffmpeg и libx264. Эти библиотеки были скомпилированы для BlackBerry QNX.Malloc Check Ошибка при открытии видеопотока
Вот мой код:
av_register_all();
avcodec_register_all();
avformat_network_init();
printf("AV setup complete\n");
const char* drone_addr = "http://192.168.1.1:5555";
AVFormatContext* pFormatCtx = NULL;
AVInputFormat* pInputFormat = av_find_input_format("H264");
printf("Opening video feed from drone\n");
//THIS LINE FAILS
int result = avformat_open_input(&pFormatCtx, drone_addr, pInputFormat, NULL);
Последняя строка завершается с ошибкой:
Malloc Check Failed: :../../dlist.c:1168
Как я могу исправить эту ошибку или отлаживать его дальше?
Обновление: Ошибка возникает только при подаче pInputFormat
в avformat_open_input
. Если я поставлю NULL, я не получу ошибку. Но для моего приложения я должен предоставить этот параметр, так как ffmpeg не может определить формат видео из одного канала.
Вы пытались использовать «h264» - это маленькие колпачки? 'ffmpeg -formats' перечисляет h264, и, как известно, он довольно разборчив. – SirDarius
Спасибо, хорошая идея, к сожалению, я все равно получаю ту же ошибку. 'pInputFormat' не является нулевым, поэтому я предполагаю, что он инициализирован правильно. – donturner
ну, я думаю, вам нужно будет найти способ получить полную обратную трассировку от ошибки. У вас есть GDB или аналогичное программное обеспечение в вашем распоряжении? – SirDarius