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

List:       kde-commits
Subject:    kdeextragear-2/kmplayer/src
From:       Koos Vriezen <koos.vriezen () xs4all ! nl>
Date:       2005-04-08 10:28:24
Message-ID: 20050408102824.35853494 () office ! kde ! org
[Download RAW message or body]

CVS commit by vriezen: 

Fast SMIL events made Xine backend crash, check if stream already is NULL in
event_finish


  M +11 -9     xineplayer.cpp   1.56


--- kdeextragear-2/kmplayer/src/xineplayer.cpp  #1.55:1.56
@@ -102,5 +102,5 @@ static double               pixel_aspect
 
 static int                  running = 0;
-static int                  firstframe = 0;
+static volatile int         firstframe = 0;
 static const int            event_finished = QEvent::User;
 static const int            event_progress = QEvent::User + 2;
@@ -140,4 +140,5 @@ static void frame_output_cb(void * /*dat
         double *dest_pixel_aspect, int *win_x, int *win_y) {
     if (running && firstframe) {
+        firstframe = 0;
         int pos;
         fprintf(stderr, "first frame\n");
@@ -148,5 +149,4 @@ static void frame_output_cb(void * /*dat
         mutex.unlock ();
         QApplication::postEvent (xineapp, new XineSizeEvent (movie_length, movie_width, movie_height, true));
-        firstframe = 0;
     }
 
@@ -681,4 +681,5 @@ bool KXinePlayer::event (QEvent * e) {
                 sub_stream = 0L;
             }
+            if (stream) {
             xine_event_dispose_queue (event_queue);
             xine_dispose (stream);
@@ -686,7 +687,8 @@ bool KXinePlayer::event (QEvent * e) {
             xine_close_audio_driver (xine, ao_port);  
             xine_close_video_driver (xine, vo_port);  
-            mutex.unlock ();
             vo_port = 0L;
             ao_port = 0L;
+            }
+            mutex.unlock ();
             XLockDisplay (display);
             XClearWindow (display, wid);


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

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