Hi,
Just to mention that I’m encountering more & more frequently freezes or crash errors coming in a sporadic way from ffmpeg video and audio processing.
One crash example coming from FfmpegVideoCursor.cxx:
#ifdef HAVE_SWSCALE
struct SwsContext *convert_ctx = sws_getContext(_size_x, _size_y,
_video_ctx->pix_fmt, _size_x, _size_y,
PIX_FMT_BGR24, SWS_FAST_BILINEAR, NULL, NULL, NULL);
nassertv(convert_ctx != NULL);
sws_scale(convert_ctx, _frame->data, _frame->linesize,
0, _size_y, _frame_out->data, _frame_out->linesize); // ######## here !!!
sws_freeContext(convert_ctx);
Call stack at crash time:
> libpanda.dll!FfmpegVideoCursor::export_frame(unsigned char * data=0x2fcad218, bool bgra=false, int bufx=512) Line 249 + 0x24 bytes C++
libpanda.dll!FfmpegVideoCursor::fetch_into_texture(double time=13.078053811331131, Texture * t=0x04ac8340, int page=0) Line 482 C++
libpanda.dll!MovieTexture::cull_callback(CullTraverser * __formal=, CullTraverser * __formal=) Line 389 + 0x19 bytes C++
libpanda.dll!TextureAttrib::cull_callback(CullTraverser * trav=0x3891f3e0, const CullTraverserData & data={...}) Line 459 + 0x12 bytes C++
libpanda.dll!RenderState::cull_callback(CullTraverser * trav=0x3891f3e0, const CullTraverserData & data={...}) Line 238 + 0x13 bytes C++
libpanda.dll!GeomNode::add_for_draw(CullTraverser * trav=, CullTraverserData & data=) Line 555 + 0x33 bytes C++
libpanda.dll!CullTraverser::traverse_below(CullTraverserData & data={...}) Line 260 C++
libpanda.dll!CullTraverser::traverse(CullTraverserData & data={...}) Line 231 C++
libpanda.dll!CullTraverser::traverse_below(CullTraverserData & data={...}) Line 290 C++
libpanda.dll!CullTraverser::traverse(CullTraverserData & data={...}) Line 231 C++
libpanda.dll!CullTraverser::traverse(const NodePath & root={...}) Line 170 C++
libpanda.dll!GraphicsEngine::do_cull(CullHandler * cull_handler=0x00000000, SceneSetup * scene_setup=0x04acabb8, GraphicsStateGuardian * gsg=0x03693b50, Thread * current_thread=0x036920b8) Line 1136 C++
libpanda.dll!GraphicsEngine::cull_to_bins(GraphicsOutput * win=, DisplayRegion * dr=, Thread * current_thread=) Line 1443 + 0x15 bytes C++
libpanda.dll!GraphicsOutput::get_active_display_region(int n=25821025) Line 880 + 0x19 bytes C++
libpanda.dll!BoundingSphere::BoundingSphere(const BoundingSphere & __that={...}) + 0x33 bytes C++
libpanda.dll!GraphicsOutput::RenderTexture::~RenderTexture() + 0x43 bytes C++
libp3framework.dll!PandaFramework::task_igloop(GenericAsyncTask * task=0xfcb3eb1e, void * data=0x00000000) Line 1581 C++
libpanda.dll!AsyncTask::unlock_and_do_task() Line 457 C++
libp3framework.dll!PandaFramework::do_frame(Thread * current_thread=0x036920b8) Line 845 C++
My config:
-win7
-build 1.8.0 from cvs
-ffmpeg libraries as per David last 3rd party 32bit libs (this is the only difference I can see from what I've use in the past months)
-*** use of threading though 3 task_chains
Anything maybe related to threading issues??