上下文:我有连续的连续位图,我想将它们编码为浅色视频格式。我将ffmpeg版本2.8.3(在此处构建)在qt5,qt IDE和msvc2013下用于win32。
问题:我的代码在sws_scale()(有时在avcodec_encode_video2())崩溃。当我浏览堆栈时,崩溃事件发生在sws_getCachedContext()处。(我只能看到具有这些ffmpeg版本的堆栈)。我只使用这些ffmpeg库(来自Qt .pro文件):
LIBS += -lavcodec -lavformat -lswscale -lavutil
Run Code Online (Sandbox Code Playgroud)
这是swscale其中的bug。这是代码:
void newVideo ()
{
ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
initBitmap (); //init bmp
int screenWidth = bmp.bmiHeader.biWidth;
int screenHeight = bmp.bmiHeader.biHeight;
AVCodec * codec;
AVCodecContext * c = NULL;
uint8_t * outbuf;
int i, out_size, outbuf_size;
avcodec_register_all();
qDebug () << "Video encoding\n";
// Find …Run Code Online (Sandbox Code Playgroud)