* Fixed a segfault in the SPU decoder initialization.
authorSam Hocevar <sam@videolan.org>
Tue, 1 May 2001 12:22:18 +0000 (12:22 +0000)
committerSam Hocevar <sam@videolan.org>
Tue, 1 May 2001 12:22:18 +0000 (12:22 +0000)
ChangeLog
INSTALL
README
include/input_ext-dec.h
include/input_ext-intf.h
plugins/text/intf_rc.c
src/input/input.c
src/input/input_programs.c
src/spu_decoder/spu_decoder.c
src/video_parser/video_parser.c
src/video_parser/vpar_headers.c

index a0ae62e..d516d47 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,7 @@
 
 HEAD
 
+  * Fixed a segfault in the SPU decoder initialization.
   * Mandatory step for video output IV and the audio output quality
     fix: the output threads are now spawned when a decoder needs one,
     so it can decide the audio frequency or the video window size.
diff --git a/INSTALL b/INSTALL
index 7faafaf..416671e 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -21,7 +21,7 @@ If you intend to debug stuff, you may want to disable optimizations:
    make distclean && ./configure --prefix=/usr --enable-gnome \
       --enable-fb --with-glide --with-ggi --with-sdl --enable-esd \
       --enable-mga --enable-gtk --enable-qt --enable-xvideo \
-      --disable-optimizatons
+      --enable-debug
 
 
 Building VideoLAN
diff --git a/README b/README
index 5139aae..b6c61b5 100644 (file)
--- a/README
+++ b/README
@@ -61,6 +61,7 @@ The following teachers were involved in the VideoLAN project :
 
 The following students were members of the VideoLAN team :
 
+1996-1997:
   Pierre Almeras <almeras@via.ecp.fr>
   Christophe Arnaud <christophe.arnaud@tps.fr>
   Antoine Brenner <brenner@via.ecp.fr>
@@ -69,11 +70,12 @@ The following students were members of the VideoLAN team :
   Christian Gross <gross@via.ecp.fr>
   Hugo Haas <hugo@via.ecp.fr>
   Mikael Journo <mj32@cornell.edu>
-  Michel Lespinasse <walken@wrs.com>
+  Michel Lespinasse <walken@zoy.org>
   Christophe Ulses <mowgli@laotseu.via.ecp.fr>
   Pierre Vandecasteele <pabv2@hermes.cam.ac.uk>
   Guillaume Vergnaud <vergnaud@via.ecp.fr>
 
+1997-1998:
   Olivier Baxa <oli@via.ecp.fr>
   Patrice Bazerque <patrice.bazerque@via.ecp.fr>
   Arnaud Bienvenu <arnaud.bienvenu@via.ecp.fr>
@@ -83,6 +85,7 @@ The following students were members of the VideoLAN team :
   Sébastien Kurz <seb@tao.via.ecp.fr>
   Olivier Pomel <pomel@via.ecp.fr>
 
+1998-1999:
   Pierre Baillet <octplane@via.ecp.fr>
   Alban Fonrouge <alban@via.ecp.fr>
   Jean-Philippe Grimaldi <jeanphi@via.ecp.fr>
@@ -93,18 +96,22 @@ The following students were members of the VideoLAN team :
   Vincent Seguin <seguin@via.ecp.fr>
   Benoit Steiner <benny@via.ecp.fr>
 
+1999-2000:
   Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
   Jean-Marc Dressler <polux@via.ecp.fr>
   Gaël Hendryckx <jimmy@via.ecp.fr>
-  Samuel Hocevar <sam@via.ecp.fr>
+  Samuel Hocevar <sam@zoy.org>
   Brieuc Jeunhomme <bbp@via.ecp.fr>
   Michel Kaempf <maxx@via.ecp.fr>
   Florent Rougon <flo@via.ecp.fr>
 
+2000-2001:
+  Arnaud de Bossoreille de Ribou <bozo@via.ecp.fr>
   Stéphane Borel <stef@via.ecp.fr>
   Renaud Dartus <reno@via.ecp.fr>
   Henri Fallon <henri@via.ecp.fr>
   Jean-Michel Grimaldi <jm@via.ecp.fr>
+  Samuel Hocevar <sam@zoy.org>
   Damien Lucas <nitrox@via.ecp.fr>
   Rémi Peyronnet <remi@via.ecp.fr>
   Laurent Rossier <gunther@via.ecp.fr>
index 6886691..4724e86 100644 (file)
@@ -2,7 +2,7 @@
  * input_ext-dec.h: structures exported to the VideoLAN decoders
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_ext-dec.h,v 1.31 2001/05/01 04:18:17 sam Exp $
+ * $Id: input_ext-dec.h,v 1.32 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Michel Kaempf <maxx@via.ecp.fr>
@@ -515,8 +515,6 @@ struct vout_thread_s;
 
 typedef struct vdec_config_s
 {
-    struct vout_thread_s *  p_vout;
-
     struct picture_s *   (* pf_create_picture)( struct vout_thread_s *,
                                                 int i_type, int i_width,
                                                 int i_height );
index d426c26..9b252a3 100644 (file)
@@ -4,7 +4,7 @@
  * control the pace of reading. 
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_ext-intf.h,v 1.35 2001/05/01 04:18:17 sam Exp $
+ * $Id: input_ext-intf.h,v 1.36 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -132,9 +132,6 @@ typedef struct pgrm_descriptor_s
     /* Demultiplexer data */
     void *                  p_demux_data;
 
-    /* Decoders control */
-    struct vout_thread_s *  p_vout;
-
     int                     i_es_number;      /* size of the following array */
     es_descriptor_t **      pp_es;                /* array of pointers to ES */
 } pgrm_descriptor_t;
@@ -302,9 +299,6 @@ typedef struct input_thread_s
     /* General stream description */
     stream_descriptor_t     stream;                            /* PAT tables */
 
-    /* For auto-launch of decoders */
-    struct vout_thread_s *  p_default_vout;
-
 #ifdef STATS
     count_t                 c_loops;
     count_t                 c_bytes;                           /* bytes read */
index f77afeb..614622b 100644 (file)
@@ -212,8 +212,7 @@ static void intf_Run( intf_thread_t *p_intf )
 
                 case 'f':
                 case 'F':
-                    p_intf->p_input->p_default_vout->i_changes |= 
-                        VOUT_FULLSCREEN_CHANGE;
+                    p_main->p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE;
                     break;
 
                 case 'm':
index 43c0b9f..6bfc84e 100644 (file)
@@ -4,7 +4,7 @@
  * decoders.
  *****************************************************************************
  * Copyright (C) 1998, 1999, 2000 VideoLAN
- * $Id: input.c,v 1.104 2001/05/01 04:18:18 sam Exp $
+ * $Id: input.c,v 1.105 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -143,9 +143,6 @@ input_thread_t *input_CreateThread ( playlist_item_t *p_item, int *pi_status )
     p_input->stream.control.b_mute = 0;
     p_input->stream.control.b_bw = 0;
 
-    /* Initialize default settings for spawned decoders */
-    p_input->p_default_vout = p_main->p_vout;
-
     /* Create thread and set locks. */
     vlc_mutex_init( &p_input->stream.stream_lock );
     vlc_cond_init( &p_input->stream.stream_wait );
index 12c6efc..40c3d08 100644 (file)
@@ -2,7 +2,7 @@
  * input_programs.c: es_descriptor_t, pgrm_descriptor_t management
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: input_programs.c,v 1.54 2001/05/01 04:18:18 sam Exp $
+ * $Id: input_programs.c,v 1.55 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -172,9 +172,6 @@ pgrm_descriptor_t * input_AddProgram( input_thread_t * p_input,
     p_input->stream.pp_programs[i_pgrm_index]->i_synchro_state
                                                 = SYNCHRO_START;
 
-    p_input->stream.pp_programs[i_pgrm_index]->p_vout
-                                            = p_input->p_default_vout;
-
     if( i_data_len )
     {
         p_input->stream.pp_programs[i_pgrm_index]->p_demux_data =
@@ -554,7 +551,6 @@ static vdec_config_t * GetVdecConfig( input_thread_t * p_input,
         intf_ErrMsg( "Unable to allocate memory in GetVdecConfig" );
         return( NULL );
     }
-    p_config->p_vout = p_input->p_default_vout;
     if( InitDecConfig( p_input, p_es, &p_config->decoder_config ) == -1 )
     {
         free( p_config );
index def2f54..0079117 100644 (file)
@@ -2,7 +2,7 @@
  * spu_decoder.c : spu decoder thread
  *****************************************************************************
  * Copyright (C) 2000 VideoLAN
- * $Id: spu_decoder.c,v 1.38 2001/04/28 03:36:25 sam Exp $
+ * $Id: spu_decoder.c,v 1.39 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -49,6 +49,8 @@
 
 #include "spu_decoder.h"
 
+#include "main.h" /* XXX: remove this later */
+
 /*****************************************************************************
  * Local prototypes
  *****************************************************************************/
@@ -83,10 +85,20 @@ vlc_thread_t spudec_CreateThread( vdec_config_t * p_config )
      * Initialize the thread properties
      */
     p_spudec->p_config = p_config;
+
     p_spudec->p_fifo = p_config->decoder_config.p_decoder_fifo;
 
-    /* Get the video output informations */
-    p_spudec->p_vout = p_config->p_vout;
+    /* XXX: The vout request and fifo opening will eventually be here */
+    if( p_spudec->p_vout == NULL )
+    {
+        if( p_main->p_vout == NULL )
+        {
+            intf_Msg( "vpar: no vout present, spawning one" );
+            p_main->p_vout = vout_CreateThread( NULL );
+        }
+
+        p_spudec->p_vout = p_main->p_vout;
+    }
 
     /* Spawn the spu decoder thread */
     if ( vlc_thread_create(&p_spudec->thread_id, "spu decoder",
index 0ffaa98..eeb5a72 100644 (file)
@@ -2,7 +2,7 @@
  * video_parser.c : video parser thread
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_parser.c,v 1.82 2001/05/01 04:18:18 sam Exp $
+ * $Id: video_parser.c,v 1.83 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Samuel Hocevar <sam@via.ecp.fr>
@@ -95,8 +95,6 @@ vlc_thread_t vpar_CreateThread( vdec_config_t * p_config )
     p_vpar->p_fifo = p_config->decoder_config.p_decoder_fifo;
     p_vpar->p_config = p_config;
 
-    p_vpar->p_vout = p_config->p_vout;
-
     /*
      * Choose the best motion compensation module
      */
index 779cfa9..2c87349 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_headers.c : headers parsing
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: vpar_headers.c,v 1.83 2001/05/01 04:18:18 sam Exp $
+ * $Id: vpar_headers.c,v 1.84 2001/05/01 12:22:18 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Stéphane Borel <stef@via.ecp.fr>
@@ -452,10 +452,15 @@ static void SequenceHeader( vpar_thread_t * p_vpar )
     ExtensionAndUserData( p_vpar );
 
     /* XXX: The vout request and fifo opening will eventually be here */
-    if( p_main->p_vout == NULL )
+    if( p_vpar->p_vout == NULL )
     {
-       intf_Msg( "vpar: no vout present, spawning one" );
-        p_main->p_vout = p_vpar->p_vout = vout_CreateThread( NULL );
+        if( p_main->p_vout == NULL )
+        {
+            intf_Msg( "vpar: no vout present, spawning one" );
+            p_main->p_vout = vout_CreateThread( NULL );
+        }
+
+        p_vpar->p_vout = p_main->p_vout;
     }
 }