Hey All -

I'm using Qt 4.5 and doing video decoding inside a QThread. When the thread is destroyed, it goes through and frees up the libav* stuff its allocated. One of the calls to av_free() in particular is causing a SIGSEGV - with that call in, program SIGSEGV's, with that call commented out, no sigsegv.

av_free(m_av_frame);

The odd thing is, right before I free m_av_frame(), I also use av_free() on two other libav* structs.

m_av_frame is just allocated like this:

m_av_frame = avcodec_alloc_frame();

This is the frame that is given to avcodec_deocde_video(), then I convert it to RGB32 using sws_scale() - so the data is completely internal to the thread.

I've even tried wrapping the calls to av_free in a mutex - still sigsegvs.

To troubleshoot, I've tried gdb (only a single line stack trace on sigsegv, location is "??" according to gdb.) I can't get valgrind's helgrind tool working on my system, and I'm plum out of ideas on how to troubleshoot this.

Any else have any ideas on how to troubleshoot?

Thanks!
-josiah

_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to