--ReaqsoxgOBHFXBhH Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi, to track down the segfault I have made a few modifications, which I like to include in CVS. biggest change: mmx detection routine replaced (with the code from smpeg) Im not happy about this, but it may be that my routine leave some ebx,eax registers in a bad state. The smpeg source looks cleaner. Note: it may be that this has caused a bug, Im not sure about this. Then I added a few checks if the inputstream is already closed. Same as the mmx patch: it may be that this caused some problems. The bug is still there. After ~1500 created/destruct cycles with full speed it still segfaults. Im still not sure if its an artsd problem. Artsd uses 50MB after 1500 starts/stops, so there is a memory leak here. Very likely we will not find the bug before KDE 2.0. Martin --ReaqsoxgOBHFXBhH Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="a.diff" ? a.txt ? a.diff ? example/yaf/yafyuv/yaf-yuv ? lib/mp3.patch ? lib/mp3-second.patch ? lib/mvogt@aixd1.rhrk.uni-kl.de ? lib/splay/mpeglayer3.cc.back ? lib/util/mmxflags_asm.S Index: lib/Makefile.am =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/Makefile.am,v retrieving revision 1.2 diff -r1.2 Makefile.am 9c9,11 < util/render/dither/dither32mmx.o --- > util/render/dither/dither32mmx.o \ > util/mmxflags_asm.o > Index: lib/decoder/decoderPlugin.cpp =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/decoder/decoderPlugin.cpp,v retrieving revision 1.3 diff -r1.3 decoderPlugin.cpp 196a197 > cout << "setUrl -s"< cout << "setUrl -e"< Index: lib/input/fileInputStream.cpp =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/input/fileInputStream.cpp,v retrieving revision 1.1.1.1 diff -r1.1.1.1 fileInputStream.cpp 105c105 < cerr << "read on not open file"< cerr << "read on not open file want:"< > cout << "audioTime"< cout << "x11Window"< cout << "buffer"< cout << "AVSyncer"< cout << "OutputStream behind mm_support"< videoInit(); Index: lib/splay/mpegAudioStream.cpp =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/splay/mpegAudioStream.cpp,v retrieving revision 1.1.1.1 diff -r1.1.1.1 mpegAudioStream.cpp 60c60,64 < header[1]=getbytedirect(); --- > int val=getbytedirect(); > if (val == -1) { > return false; > } > header[1]=val; 63c67,71 < header[1]=getbytedirect(); --- > val=getbytedirect(); > if (val == -1) { > return false; > } > header[1]=val; 130,132c138,139 < < dest[2]=getbytedirect(); < if (input->eof()) { --- > int val=getbytedirect(); > if (val==-1) { 135,136c142,144 < dest[3]=getbytedirect(); < if (input->eof()) { --- > dest[2]=val; > val=getbytedirect(); > if (val==-1) { 138c146,147 < } --- > } > dest[3]=val; Index: lib/splay/splayPlugin.cpp =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/splay/splayPlugin.cpp,v retrieving revision 1.3 diff -r1.3 splayPlugin.cpp 19a20 > pow(6.0,3.0); // fixes bug in __math.h Index: lib/util/Makefile.am =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/Makefile.am,v retrieving revision 1.2 diff -r1.2 Makefile.am 4a5,6 > EXTRA_DIST = mmxflags_asm.S > 24a27,28 > libutil_la_LIBADD = mmxflags_asm.o > 25a30,31 > mmxflags_asm.o : mmxflags_asm.S > $(CXX) $(DEFS) -c -o $@ $< $(CXXFLAGS) Index: lib/util/mmx.c =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/mmx.c,v retrieving revision 1.1.1.1 diff -r1.1.1.1 mmx.c 38a39 > extern unsigned int cpu_flags(void); 51,52d51 < printf("hello mmx test\n"); < if (mmSupport == -1) { 54,92c53,54 < __asm__ __volatile__ ( < ".align 32\n" < "pushf \n" < "pop %%eax\n" < "mov %%eax,%%ecx\n" < "xor $0x40000,%%eax\n" < "push %%eax\n" < "popf \n" < "pushf \n" < "pop %%eax\n" < "xor %%ecx,%%eax\n" < "je back\n" < "push %%ecx\n" < "popf \n" < "mov %%ecx,%%eax\n" < "xor $0x200000,%%eax\n" < "push %%eax\n" < "popf \n" < "pushf \n" < "pop %%eax\n" < "xor %%ecx,%%eax\n" < "je back\n" < "pusha \n" < "mov $0x1,%%eax\n" < "cpuid \n" < "mov %%edx,(%0)\n" < "popa \n" < "mov (%0),%%eax\n" < "back:\n" < : < : "r" (rval) < : "eax", "ebx", "ecx", "edx" < ); < < if (val & MMX_CPU) { < mmSupport=1; < } else { < mmSupport=0; < } --- > if (mmSupport == -1) { > printf("hello mmx test\n"); 94,95c56,63 < printf("val:%8x\n",val); < --- > val=cpu_flags(); > if (val & MMX_CPU) { > mmSupport=1; > } else { > mmSupport=0; > } > > printf("val:%8x\n",val); Index: lib/util/render/x11/x11Surface.cpp =================================================================== RCS file: /home/kde/kdemultimedia/mpeglib/lib/util/render/x11/x11Surface.cpp,v retrieving revision 1.6 diff -r1.6 x11Surface.cpp 17c17 < const char *ERR_XI_STR[] = { --- > static const char *ERR_XI_STR[] = { 54a55 > XFlush(xWindow->display); 58a60 > --ReaqsoxgOBHFXBhH-- _______________________________________________ Kde-multimedia mailing list Kde-multimedia@master.kde.org http://master.kde.org/mailman/listinfo/kde-multimedia