我正在编写一个BlackBerry 10应用程序,该应用程序使用ffmpeg和libx264解码H264视频流(来自Parrot AR Drone)。这些库均已针对BlackBerry QNX进行了编译。

这是我的代码:

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无法仅从Feed中确定视频格式。

最佳答案

尝试:

AVFormatContext * pFormatCtx = avformat_alloc_context();

然后

avformat_free_context(pFormatCtx);

08-26 18:00