On Jun 24, 2008, at 3:18 AM, Benoit Fouet wrote: > Alexander Strange wrote: >> diff --git a/libavcodec/framethread.c b/libavcodec/framethread.c >> index 7be5189..a0f80c8 100644 >> --- a/libavcodec/framethread.c >> +++ b/libavcodec/framethread.c >> @@ -334,10 +337,16 @@ void ff_frame_thread_flush(AVCodecContext >> *avctx) >> ff_release_buffer(&p->released_buffers[j]); >> >> p->nb_released_buffers = 0; >> + >> + memset(&p->result, 0, sizeof(AVFrame)); >> > > why is that needed ?
After seeking in my mpeg1 sample, the decoder would return the right stuff and set sizeof(AVFrame) in data_size (mpeg12.c:2343), but wouldn't actually write to the frame. That means that I had a released AVFrame there, and when it called ff_report_decode_progress on I got memory corruption. Clearing that was the easiest workaround I saw. It looks like I should call avcodec_get_frame_defaults before each decode instead, which does the same thing. _______________________________________________ FFmpeg-soc mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc
