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