Problem with ffmpeg-free
Reinhard Tartler
siretart at tauware.de
Fri Mar 28 11:53:57 UTC 2008
Christoph Pleger <Christoph.Pleger at uni-dortmund.de> writes:
>> ffmpeg-dbg also contains debug symbols for libswscale0. Did you at least
>> try to get a backtrace?
>
> Here are some lines of output (maybe they can help) that appeared directly
> before the segmentation fault and the backtrace.
>
> Regards
> Christoph
>
> Output #0, mpeg2video, to '/home/cpleger/DVDs/dvd/menu1-0.mpg_bg.m2v':
> Stream #0.0: Video: 0x0000, yuv420p, 720x576 [PAR 0:1 DAR 0:1], q=2-31,
> 6144
> kb/s, 25.00 tb(c)
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1240840512 (LWP 4134)]
> 0xb7f2c2c1 in sws_scale (c=0x0, src=0xbfabe7d4, srcStride=0xbfabe7c8,
> srcSliceY=0, srcSliceH=576, dst=0x0, dstStride=0x10) at swscale.c:2532
> 2532 if (c->sliceDir == 0 && srcSliceY != 0 && srcSliceY + srcSliceH !=
> c ->srcH)
> {
> (gdb) bt
> #0 0xb7f2c2c1 in sws_scale (c=0x0, src=0xbfabe7d4, srcStride=0xbfabe7c8,
> srcSliceY=0, srcSliceH=576, dst=0x0, dstStride=0x10) at swscale.c:2532
> #1 0x0807802c in wxFileType::MessageParameters::~MessageParameters ()
> #2 0x080de92e in wxComboBoxBase::Remove ()
just by looking at the backtrace:
wxFileType::MessageParameters::~MessageParameters() is calling sws_scale
with the first parameter 'c' (the SwsContext) being null. This makes
sws_scale crash in the very first instruction when checking the
parameters for plausibility.
Could you please try the following patch for libswscale and see if it
fixes your problem?
Index: ffmpeg.20080206/libswscale/swscale.c
===================================================================
--- ffmpeg.20080206.orig/libswscale/swscale.c 2008-03-28
12:45:33.000000000 +0100
+++ ffmpeg.20080206/libswscale/swscale.c 2008-03-28
12:50:49.000000000 +0100
@@ -2529,6 +2529,10 @@
int i;
uint8_t* src2[4]= {src[0], src[1], src[2]};
uint32_t pal[256];
+
+ if (!c) {
+ av_log(c, AV_LOG_ERROR, "swScaler: SwsContext invalid\n");
+ }
if (c->sliceDir == 0 && srcSliceY != 0 && srcSliceY + srcSliceH !=
c->srcH) {
av_log(c, AV_LOG_ERROR, "swScaler: slices start in the middle!\n");
return 0;
--
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4
More information about the pkg-multimedia-maintainers
mailing list