[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-multimedia
Subject:    testsplay stresstest
From:       Stefan Westerfeld <stefan () space ! twc ! de>
Date:       2000-08-30 7:34:23
[Download RAW message or body]

Hi!

I've debugged a bit with the aRts mp3 playobject and the mpeglibartsplay
stresstest, and managed to reproduce both problems that this causes without
aRts. I simply turned the mpeglib splay example in a stresstest, and it
causes

 - the memory leak
 - the segfault

in the same way. Maybe this simplifies debugging. I've attached a patch
which you can apply to kdemultimedia/mpeglib/example/splay/Makefile.am,
and the additional stresstest program called testsplay.

   Cu... Stefan
-- 
  -* Stefan Westerfeld, stefan@space.twc.de (PGP!), Hamburg/Germany
     KDE Developer, project infos at http://space.twc.de/~stefan/kde *-         

["testsplay.cpp" (text/plain)]

/*

  Stress test for the SPlay plugin.


 */


#include "../../lib/splay/splayPlugin.h"
#include "../../lib/tplay/tplayPlugin.h"
#include "../../lib/input/bufferInputStream.h"
#include "../../lib/output/avSyncer.h"

int main(int argc, char** argv) {



  if (argc <= 1) {
    printf("Usage:\n\n");
    printf("%s filename\n\n",argv[0]);
    exit(0);
  }

  //
  // The order is important !!!!
  // 1. construct
  // 2. set Output
  // 3. open input
  // 4. set input
  // 
  // you cannot set the input _before_ the output 
  // in fact you can, but this gives you a segfault!

  for(int cnt = 0;cnt != 100000; cnt++)
  {
    cout << "count = " << cnt << endl;

    SplayPlugin* plugin=new SplayPlugin();
    OutputStream* out=OutPlugin::createOutputStream(_OUTPUT_LOCAL);
    InputStream* in=InputPlugin::createInputStream(argv[1]);

    // The plugin does not do "open"
    in->open(argv[1]);

    // watch the order!
    plugin->setOutputPlugin(out);
    plugin->setInputPlugin(in);

    plugin->play();
    usleep(30000);
    out->audioClose();
    plugin->close();

    delete plugin;
    delete in;
    delete out;
  }
}
  

["20000830-testsplay-makefile.diff" (text/plain)]

? testsplay.cpp
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdemultimedia/mpeglib/example/splay/Makefile.am,v
retrieving revision 1.1.1.1
diff -b -u -p -r1.1.1.1 Makefile.am
--- Makefile.am	2000/07/04 19:22:47	1.1.1.1
+++ Makefile.am	2000/08/30 07:28:56
@@ -4,7 +4,7 @@ INCLUDES		=	-I../../include $(all_includ
 
 # EXTRA_DIST		=	stresstest
 
-noinst_PROGRAMS		=	splay
+noinst_PROGRAMS		=	splay testsplay
 
 splay_SOURCES		=	splay.cpp
 
@@ -18,6 +18,9 @@ splay_LDADD		=	../../lib/libmpeg.la \
                                 $(XVLIBS) $(DGALIBS)  \
                                 $(SDLLIB) $(LIBPTHREAD) 
 
+testsplay_SOURCES	= 	testsplay.cpp
+testsplay_LDFLAGS	=	$(all_libraries) 
+testsplay_LDADD		= 	$(splay_LDADD)
 
 
 

_______________________________________________
Kde-multimedia mailing list
Kde-multimedia@master.kde.org
http://master.kde.org/mailman/listinfo/kde-multimedia


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic