VideoCapture Bug on Linux using Video without a Codec

asked 2015-03-04 10:38:55 -0600

JR hahne gravatar image

updated 2015-03-04 10:39:35 -0600

Hi All,

there is a known bug in the VideoCapture ffmpeg module. It occurs while loading videos withouta codec: http://code.opencv.org/issues/1915

I had some time now to debug this bug and found the issue in:

CvCapture_FFMPEG::grabFrame()

In the function

avcodec_decode_video2(video_st->codec, picture, &got_picture, &packet);

the AVFrame picture get set. But after

av_free_packet (&packet);

I get: "error: Cannot access memory at address..." for picture.data[0] which leads to a segmentation fault later in the function sws_scale().

I can encode this video with a video codec using ffmpeg or whatever and I get no segmentation fault (memory in picture.data[0] can still be accessed).

Of course there is an easy fix for this bug: Simply comment out / delete

av_free_packet (&packet);

This is working fine for me. Now I can process videos with and without codecs. But I am not sure if this will lead to memory issues if av_free_packet gets not called. Is there anybody who is familiar with FFmpeg and can help me here?

Thanks a lot!

edit retag flag offensive close merge delete