ports/113922: multimedia/ffmpeg segfaults on start
Gary Palmer
gpalmer at freebsd.org
Fri Jul 13 03:00:18 UTC 2007
The following reply was made to PR ports/113922; it has been noted by GNATS.
From: Gary Palmer <gpalmer at freebsd.org>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: ports/113922: multimedia/ffmpeg segfaults on start
Date: Fri, 13 Jul 2007 03:40:02 +0100
I also experienced the crash. I tracked it down to ffmpeg source code.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x8480000 (LWP 100306)]
0x48852af7 in __vfprintf () from /lib/libc.so.6
(gdb) bt
#0 0x48852af7 in __vfprintf () from /lib/libc.so.6
#1 0x488536f1 in vfprintf () from /lib/libc.so.6
#2 0x0805fd7d in log_callback_help (ptr=0x0, level=1, fmt=0x837b39c
"T²7\b",
vl=0x82c4b7e "\203Ä\030[Ã\220S\203ì\b\215D$\034Pÿt$\034ÿt$\034è")
at ffmpeg.c:3735
#3 0x082c4b7e in av_vlog (avcl=0x848e010, level=137788800,
fmt=0x837b39c "T²7\b", vl=0x82c4baa "\203Ä\030[Ã\220è") at log.c:65
#4 0x082c4baa in av_log (avcl=0x848e010, level=0, fmt=0x837b39c "T²7\b")
at log.c:58
#5 0x081a9c13 in av_opt_show (obj=0x8477130, av_log_obj=0x0) at opt.c:335
#6 0x0805fe93 in show_help () at ffmpeg.c:3771
#7 0x08060d03 in main (argc=1, argv=0xbfbfe808) at ffmpeg.c:3798
Notice the fmt parameters are garbage from 4 upwards
#6 0x0805fe93 in show_help () at ffmpeg.c:3771
3771 av_opt_show(sws_opts, NULL);
Looking through the code, sws_opts is populated at ffmpeg.c in main() at
line 3794 with a call to sws_getContext
The real fun is that the ffmpeg code has TWO definitions for
sws_getContext when you have --enable-swscaler passed to configure
(which is the default for the port). One is defined in
libavcodec/imgresample.c and the other in libswscale/swscale.c
At least on my system, the linker defaulted to the version in libavcodec
which leads to the SIGSEGV. Putting "#if 0" around the definitions for
sws_getContext, sws_freeContext and sws_scale in
libavcodec/imgresample.c appears to stop the SIGSEGV for me.
Alternatively, deleting the files/patch-libavcodec_Makefile patch file
appears to also stop the coredump.
I do not have enough experience with this port to know if either option
has bad side effects
More information about the freebsd-multimedia
mailing list