]> git.sesse.net Git - vlc/commitdiff
* ./src/misc/beos_specific.cpp: the BeOS BApplication thread now uses the
authorSam Hocevar <sam@videolan.org>
Sat, 1 Jun 2002 13:52:24 +0000 (13:52 +0000)
committerSam Hocevar <sam@videolan.org>
Sat, 1 Jun 2002 13:52:24 +0000 (13:52 +0000)
    vlc_thread_create / vlc_thread_ready scheme to signal readiness.
  * ./src/misc/objects.c: prevent the creation of a too small vlc_object_t.
  * ./include/vdec_ext-plugins.h: removed the vdec_thread_t declaration, which
    belongs to plugins/mpeg_vdec.
  * ./ChangeLog: imported the 0_4_1_branch changelog.
  * ./plugins/chroma/i420_yuy2.h: imported a 0_4_1_branch fix.

13 files changed:
ChangeLog
include/vdec_ext-plugins.h
plugins/chroma/i420_yuy2.h
plugins/mpeg_vdec/video_decoder.h
plugins/mpeg_vdec/video_parser.c
plugins/mpeg_vdec/vpar_blocks.c
plugins/mpeg_vdec/vpar_headers.c
plugins/mpeg_vdec/vpar_pool.c
plugins/mpeg_vdec/vpar_pool.h
plugins/mpeg_vdec/vpar_synchro.c
po/en_GB.po
src/misc/beos_specific.cpp
src/misc/objects.c

index 39cce0572259bf30ec2e5cca245712736702513d..6a032d753984a96f6fc8e7b40f681ec0663bb5ae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,7 +4,84 @@
 
 HEAD
 
-  * Nothing yet.
+  * ./src/misc/beos_specific.cpp: the BeOS BApplication thread now uses the
+    vlc_thread_create / vlc_thread_ready scheme to signal readiness.
+  * ./src/misc/objects.c: prevent the creation of a too small vlc_object_t.
+  * ./include/vdec_ext-plugins.h: removed the vdec_thread_t declaration, which
+    belongs to plugins/mpeg_vdec.
+  * ALL: the first libvlc commit.
+
+0.4.1
+
+  * ./plugins/chroma/i420_yuy2.h: simplified the chroma code. Please test
+    under BeOS and QNX.
+  * ./plugins/macosx/intf_vlc_wrapper.m: fix for non-ASCII filenames in the
+    MacOS X interface, courtesy of Watanabe Go <go@dsl.gr.jp>.
+  * ./plugins/chroma/i420_yuy2.h: fixed an old overflow bug spotted by
+    Rudolf Cornelissen.
+  * ./plugins/chroma/i420_rgb16.c: fix for skewed display in software RV32
+    mode, courtesy of Pascal Levesque.
+  * ./plugins/beos/InterfaceWindow.h: stopped more than one playlist being
+    opened.
+  * ./plugins/beos/InterfaceWindow.cpp: fixed segfault on exit with playlist
+    open.
+  * ./plugins/beos/vout_beos.cpp: corrected size of output window.
+  * ./plugins/a52/a52.c, ./plugins/satellite/satellite_tools.c: compilation
+    fixes for Solaris.
+  * ./plugins/sdl/aout_sdl.c: fixed an endianness issue created by a
+    brain-dead developer :p
+  * ./plugins/win32/mainframe.cpp: the "Eject" button is enabled only after we
+    played a dvd or vcd.
+  * ./plugins/win32/mainframe.cpp: the toolbar is now flat and less cubist.
+  * ./plugins/win32/mainframe.cpp: got rid of the ugly slider with some winXP
+    skins. 
+  * ./plugins/win32/messages.cpp: added a config option to limit the number of
+    messages in the log window (default is set to 500).
+  * ./plugins/mpeg_vdec/vpar_headers.c: don't try to deference a null
+    pointer.
+  * ./plugins/gtk/gnome.c: compilation fix.
+  * ./src/misc/netutils.c: removed the obsolete artificial delay when switching
+    channels.
+  * ./src/interface/intf_eject.c: added ejection code for Win32.
+  * ./plugins/win32/*: enabled the "Eject" button (thanks Ipkiss).
+  * ./include/configuration.h: changed ADD_BOOL and ADD_BOOL_WITH_SHORT config
+    macros to accept a default value as an argument.
+  * ./src/misc/configuration.c: modified the command line parsing to accept
+    --foo and --no-foo when a "foo" boolean config option is defined.
+  * ./src/interface/main.c: modified the help menu to indicate whether the
+    option is enabled or disabled by default.
+  * ./src/video_output/video_output.c: when the video output hasn't received
+    a new picture for a while, it redisplays the last displayed one. This will
+    be useful for DVD menus, but also solves the "picture becomes black when
+    vlc is paused" issue.
+  * ./plugins/dummy/dummy.c: added a CATEGORY_HINT to the config.
+  * ./plugins/x11/xcommon.c: small change to the ToggleFullscreen routine
+    to avoid a flickering during the switch.
+  * ./plugins/filters/*: fixed inconsistencies.
+  * ./plugins/win32/mainframe.dfm: new icons for the toolbar buttons.
+  * ./plugins/win32/network.cpp: URL can now start with "http://" in the
+    Network dialog box.
+  * ./plugins/win32/about.dfm: updated the About dialog box.
+  * ./include/video.h: added a b_force flag to picture_t so that we can force
+    the display of an image even if it is late.
+  * ./plugins/filter/*: filters are now configurable through the configuration
+    system. Patch from Sigmund Augdal <sigmunau@stud.ntnu.no>.
+  * ./po/vlc.pot: updated potfile.
+  * ./po/pl.po: polish translation, courtesy of Arkadiusz Lipiec
+    <A.Lipiec@elka.pw.edu.pl>.
+  * ./debian/control: updated Debian package descriptions.      
+  * ./plugins/aa/aa.c: removed all palette code as it was unused.
+  * ./plugins/aa/aa.c: moved the aa_fastrender call from vout_Display to
+    vout_Render.
+  * ./plugins/aa/aa.c: added support for resizing and right-click menu.
+  * ./src/input/mpeg_system.c: in order to make ac3 working in avi file, moved
+    some code from ac3 decoder to mpeg_system.c. (skip 3 bytes is now done in
+    mpeg_system.c and no longer in ac3 audio decoder).
+  * src/misc/netutils.c: tests if message from vlcs begins with 'E:' or 'I:'
+    instead of testing 'E: ' and 'I: ' (to simplify miniVLCS).
+  * ./plugins/avi/avi.c, ./plugins/avi/libioRIFF.c: added more safety tests.
+  * ./include/inpu_ext-dec.h: added a check to fifo->b_die after the call
+    to BitstreamNextDataPacket() in GetChunk().
 
 0.4.0
 Thu, 23 May 2002 01:27:05 +0200
index 6c4838d8cc1df4428d069aed84bc0e5c3879a920..fa0af882fd51b82beaa242e128e157b574a59f68 100644 (file)
@@ -2,7 +2,7 @@
  * vdec_ext-plugins.h : structures from the video decoder exported to plug-ins
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: vdec_ext-plugins.h,v 1.12 2002/06/01 12:31:58 sam Exp $
+ * $Id: vdec_ext-plugins.h,v 1.13 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -74,19 +74,3 @@ struct macroblock_s
 #define MB_QUANT                        16
 #define DCT_TYPE_INTERLACED             32
 
-/*****************************************************************************
- * vdec_thread_t: video decoder thread descriptor
- *****************************************************************************/
-typedef struct vdec_thread_s vdec_thread_t;
-
-struct vdec_thread_s
-{
-    VLC_COMMON_MEMBERS
-
-    /* IDCT iformations */
-    void *               p_idct_data;
-
-    /* Input properties */
-    struct vdec_pool_s * p_pool;
-};
-
index 7e18a0edfe4ad1b58e318ae66a40b7fd26006cfd..9a16169d76d02d2fb3a4335a18fa2343f91b0945 100644 (file)
@@ -2,7 +2,7 @@
  * i420_yuy2.h : YUV to YUV conversion module for vlc
  *****************************************************************************
  * Copyright (C) 2000, 2001 VideoLAN
- * $Id: i420_yuy2.h,v 1.8 2002/06/01 12:31:58 sam Exp $
+ * $Id: i420_yuy2.h,v 1.9 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
 #ifdef MODULE_NAME_IS_chroma_i420_yuy2_mmx
 
 #define UNUSED_LONGLONG(foo) \
-    static const unsigned long long foo __asm__ (#foo) __attribute__((unused))
+    unsigned long long foo __asm__ (#foo) __attribute__((unused))
 UNUSED_LONGLONG(woo_00ffw) = 0x00ff00ff00ff00ff;
 UNUSED_LONGLONG(woo_80w)   = 0x0000000080808080;
 
-#define MMX_LOAD "                                                        \n\
-movl         %9,%%ebx                                                     \n\
-"
-
-#define MMX_SAVE "                                                        \n\
-movl      %%ebx,%9                                                        \n\
-"
-
-#define MMX_INC "                                                         \n\
-addl         $16, %0                                                      \n\
-addl         $16, %1                                                      \n\
-addl         $8, %2                                                       \n\
-addl         $8, %3                                                       \n\
-addl         $4, %%eax                                                    \n\
-addl         $4, %%ebx                                                    \n\
-"
-
-#define MMX_CALL(MMX_INSTRUCTIONS)                                  \
-    __asm__ __volatile__(                                           \
-        MMX_LOAD                                                    \
-        ".align 8 \n\t"                                             \
-        MMX_INSTRUCTIONS                                            \
-        MMX_INC                                                     \
-        MMX_SAVE                                                    \
-        : "=c" (p_line1), "=d" (p_line2), "=D" (p_y1), "=S" (p_y2)  \
-        :  "c" (p_line1),  "d" (p_line2),  "D" (p_y1),  "S" (p_y2), \
-          "a" (p_u), "m" (p_v)                                      \
-        : "ebx", "memory" );
+#define MMX_CALL(MMX_INSTRUCTIONS)                                          \
+    do {                                                                    \
+    __asm__ __volatile__(                                                   \
+        ".align 8 \n\t"                                                     \
+        MMX_INSTRUCTIONS                                                    \
+        :                                                                   \
+        : "r" (p_line1),  "r" (p_line2),  "r" (p_y1),  "r" (p_y2),          \
+          "r" (p_u), "r" (p_v) );                                           \
+    p_line1 += 16; p_line2 += 16; p_y1 += 8; p_y2 += 8; p_u += 4; p_v += 4; \
+    } while(0);                                                             \
 
 #define MMX_YUV420_YUYV "                                                 \n\
 movq       (%2), %%mm0  # Load 8 Y            y7 y6 y5 y4 y3 y2 y1 y0     \n\
-movd    (%%eax), %%mm1  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
-movd    (%%ebx), %%mm2  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
+movd       (%4), %%mm1  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
+movd       (%5), %%mm2  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
 punpcklbw %%mm2, %%mm1  #                     v3 u3 v2 u2 v1 u1 v0 u0     \n\
 movq      %%mm0, %%mm2  #                     y7 y6 y5 y4 y3 y2 y1 y0     \n\
 punpcklbw %%mm1, %%mm2  #                     v1 y3 u1 y2 v0 y1 u0 y0     \n\
@@ -77,8 +59,8 @@ movq      %%mm0, 8(%1)  # Store high YUYV                                 \n\
 
 #define MMX_YUV420_YVYU "                                                 \n\
 movq       (%2), %%mm0  # Load 8 Y            y7 y6 y5 y4 y3 y2 y1 y0     \n\
-movd    (%%eax), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
-movd    (%%ebx), %%mm1  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
+movd       (%4), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
+movd       (%5), %%mm1  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
 punpcklbw %%mm2, %%mm1  #                     u3 v3 u2 v2 u1 v1 u0 v0     \n\
 movq      %%mm0, %%mm2  #                     y7 y6 y5 y4 y3 y2 y1 y0     \n\
 punpcklbw %%mm1, %%mm2  #                     u1 y3 v1 y2 u0 y1 v0 y0     \n\
@@ -96,8 +78,8 @@ movq      %%mm0, 8(%1)  # Store high YUYV                                 \n\
 #define MMX_YUV420_UYVY "                                                 \n\
 movq       (%2), %%mm0  # Load 8 Y            y7 y6 y5 y4 y3 y2 y1 y0     \n\
 movq       (%3), %%mm3  # Load 8 Y            Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0     \n\
-movd    (%%eax), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
-movd    (%%ebx), %%mm1  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
+movd       (%4), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
+movd       (%5), %%mm1  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
 punpcklbw %%mm2, %%mm1  #                     u3 v3 u2 v2 u1 v1 u0 v0     \n\
 movq      %%mm1, %%mm2  #                     u3 v3 u2 v2 u1 v1 u0 v0     \n\
 punpcklbw %%mm0, %%mm2  #                     y3 v1 y2 u1 y1 v0 y0 u0     \n\
@@ -116,8 +98,8 @@ movq      %%mm1, 8(%1)  # Store high UYVY                                 \n\
 #define MMX_YUV420_Y211 "                                                 \n\
 movq       (%2), %%mm0  # Load 8 Y            y7 y6 y5 y4 y3 y2 y1 y0     \n\
 movq       (%3), %%mm1  # Load 8 Y            Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0     \n\
-movd    (%%eax), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
-movd    (%%ebx), %%mm3  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
+movd       (%4), %%mm2  # Load 4 Cb           00 00 00 00 u3 u2 u1 u0     \n\
+movd       (%5), %%mm3  # Load 4 Cr           00 00 00 00 v3 v2 v1 v0     \n\
 pand  woo_00ffw, %%mm0  # get Y even          00 Y6 00 Y4 00 Y2 00 Y0     \n\
 packuswb  %%mm0, %%mm0  # pack Y              y6 y4 y2 y0 y6 y4 y2 y0     \n\
 pand  woo_00ffw, %%mm2  # get U even          00 u6 00 u4 00 u2 00 u0     \n\
index d3d7d880ef39e63d99198839512242ba4e253aee..f1d38495376f435b4fcd42e9d445b46849f5970a 100644 (file)
@@ -2,7 +2,7 @@
  * video_decoder.h : video decoder thread
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: video_decoder.h,v 1.2 2002/06/01 12:32:00 sam Exp $
+ * $Id: video_decoder.h,v 1.3 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
  *****************************************************************************/
  
+/*****************************************************************************
+ * vdec_thread_t: video decoder thread descriptor
+ *****************************************************************************/
+typedef struct vdec_thread_s
+{
+    VLC_COMMON_MEMBERS
+
+    /* IDCT iformations */
+    void *               p_idct_data;
+
+    /* Input properties */
+    struct vdec_pool_s * p_pool;
+
+} vdec_thread_t;
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
index a9a77cf260576c1b1c1591e3488197b5d726305f..e3c5ae83277b779eda55a547152639778e1b39a0 100644 (file)
@@ -2,7 +2,7 @@
  * video_parser.c : video parser thread
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: video_parser.c,v 1.21 2002/06/01 12:32:00 sam Exp $
+ * $Id: video_parser.c,v 1.22 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Samuel Hocevar <sam@via.ecp.fr>
@@ -43,6 +43,7 @@
 #endif
 
 #include "vdec_ext-plugins.h"
+#include "video_decoder.h"
 #include "vpar_pool.h"
 #include "video_parser.h"
 
index e2fa7111dd837c30f61e11978f462fa462672943..41c6a610deadf0e2140f4ab0ad043778b5abfbce 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_blocks.c : blocks parsing
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: vpar_blocks.c,v 1.10 2002/06/01 12:32:00 sam Exp $
+ * $Id: vpar_blocks.c,v 1.11 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Michel Lespinasse <walken@zoy.org>
  *          Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
@@ -33,6 +33,7 @@
 #include <vlc/decoder.h>
 
 #include "vdec_ext-plugins.h"
+#include "video_decoder.h"
 #include "vpar_pool.h"
 #include "video_parser.h"
 
index ac738402c4adc8c20d9ebb9ce9ae794df258aff3..daf1a0dddff109f7d93f6e52f06b1f98ae1ee2cf 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_headers.c : headers parsing
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: vpar_headers.c,v 1.23 2002/06/01 12:32:00 sam Exp $
+ * $Id: vpar_headers.c,v 1.24 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Stéphane Borel <stef@via.ecp.fr>
@@ -33,9 +33,9 @@
 #include <vlc/decoder.h>
 
 #include "vdec_ext-plugins.h"
+#include "video_decoder.h"
 #include "vpar_pool.h"
 #include "video_parser.h"
-#include "video_decoder.h"
 
 /*
  * Local prototypes
index e9bef016f61210e2533839017fe5d11e50ecb824..18a77d7a950ac6e7c86a8fe8ec987f6d164d0f83 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_pool.c : management of the pool of decoder threads
  *****************************************************************************
  * Copyright (C) 2001 VideoLAN
- * $Id: vpar_pool.c,v 1.9 2002/06/01 12:32:00 sam Exp $
+ * $Id: vpar_pool.c,v 1.10 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -32,9 +32,9 @@
 #include <vlc/decoder.h>
 
 #include "vdec_ext-plugins.h"
+#include "video_decoder.h"
 #include "vpar_pool.h"
 #include "video_parser.h"
-#include "video_decoder.h"
 
 /*
  * Local prototypes
index c0f922702b67eeb36df3884100d49dffdd463ce0..ee1599c0ce5c33f1a2f2189e3c1b1aaf23b85121 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_pool.h : video parser/video decoders communication
  *****************************************************************************
  * Copyright (C) 1999, 2000 VideoLAN
- * $Id: vpar_pool.h,v 1.3 2002/06/01 12:32:00 sam Exp $
+ * $Id: vpar_pool.h,v 1.4 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -40,7 +40,7 @@ struct vdec_pool_s
                                          * parser */
 
     /* Video decoder threads */
-    struct vdec_thread_s ** pp_vdec;       /* Array of video decoder threads */
+    vdec_thread_t **    pp_vdec;           /* Array of video decoder threads */
     int                 i_smp;     /* Number of symmetrical decoder threads,
                                     * hence size of the pp_vdec, p_macroblocks
                                     * and pp_new_macroblocks array */
@@ -59,7 +59,7 @@ struct vdec_pool_s
     /* Undecoded macroblock, used when the parser and the decoder share the
      * same thread */
     macroblock_t        mb;
-    struct vdec_thread_s * p_vdec;                     /* Fake video decoder */
+    vdec_thread_t *     p_vdec;                        /* Fake video decoder */
 
     /* Pointers to usual pool functions */
     void             (* pf_wait_pool) ( vdec_pool_t * );
index e0a437e7db70d905be9774479abd9e9769a3e221..debb60a15f8f9ea2fd4b1f183186f5759c3fdbdb 100644 (file)
@@ -2,7 +2,7 @@
  * vpar_synchro.c : frame dropping routines
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: vpar_synchro.c,v 1.10 2002/06/01 12:32:00 sam Exp $
+ * $Id: vpar_synchro.c,v 1.11 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *          Samuel Hocevar <sam@via.ecp.fr>
 #include <vlc/decoder.h>
 
 #include "vdec_ext-plugins.h"
+#include "video_decoder.h"
 #include "vpar_pool.h"
 #include "video_parser.h"
 
index 813b9225123bdd7210b9bf5594f097332a0e0ec0..ad1ab07cb1f2293bb76076fed2a40ca84b2cc0e6 100644 (file)
@@ -93,7 +93,7 @@ msgstr ""
 #. * libvlc.h: main libvlc header
 #. *****************************************************************************
 #. * Copyright (C) 1998-2002 VideoLAN
-#. * $Id: en_GB.po,v 1.5 2002/06/01 12:32:01 sam Exp $
+#. * $Id: en_GB.po,v 1.6 2002/06/01 13:52:24 sam Exp $
 #. *
 #. * Authors: Vincent Seguin <seguin@via.ecp.fr>
 #. *          Samuel Hocevar <sam@zoy.org>
@@ -173,7 +173,7 @@ msgid "audio output module"
 msgstr ""
 
 #: src/libvlc.h:58
-#, fuzzy
+msgid ""
 "This option allows you to select the audio audio output method used by vlc. "
 "The default behavior is to automatically select the best method available."
 msgstr ""
index 02e72f2bb9a759b8fc9740559a3ef14526b2946b..856fe0f8d70914e8057400445a12984c40c921c8 100644 (file)
@@ -2,7 +2,7 @@
  * beos_init.cpp: Initialization for BeOS specific features 
  *****************************************************************************
  * Copyright (C) 1999-2001 VideoLAN
- * $Id: beos_specific.cpp,v 1.19 2002/06/01 12:32:01 sam Exp $
+ * $Id: beos_specific.cpp,v 1.20 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Jean-Marc Dressler <polux@via.ecp.fr>
  *
@@ -39,6 +39,8 @@ extern "C"
 class VlcApplication : public BApplication
 {
 public:
+    vlc_object_t *p_object;
+
     VlcApplication(char* );
     ~VlcApplication();
 
@@ -49,10 +51,8 @@ public:
 /*****************************************************************************
  * Static vars
  *****************************************************************************/
-static vlc_thread_t app_thread;
-static vlc_mutex_t  app_lock;
-static vlc_cond_t   app_wait;
-static char        *psz_program_path;
+static char *         psz_program_path;
+static vlc_object_t * p_appthread;
 
 extern "C"
 {
@@ -60,29 +60,19 @@ extern "C"
 /*****************************************************************************
  * Local prototypes.
  *****************************************************************************/
-static void system_AppThread( void * args );
+static void AppThread( vlc_object_t *p_appthread );
 
 /*****************************************************************************
  * system_Init: create a BApplication object and fill in program path.
  *****************************************************************************/
 void system_Init( vlc_object_t *p_this, int *pi_argc, char *ppsz_argv[] )
 {
-    /* Prepare the lock/wait before launching the BApplication thread */
-    vlc_mutex_init( p_this, &app_lock );
-    vlc_cond_init( &app_wait );
-    vlc_mutex_lock( &app_lock );
-
-    /* Create the BApplication thread */
-    vlc_thread_create( p_this, &app_thread, "app thread",
-                       (vlc_thread_func_t)system_AppThread, 0 );
-
-    /* Wait for the application to be initialized */
-    vlc_cond_wait( &app_wait, &app_lock );
-    vlc_mutex_unlock( &app_lock );
-
-    /* Destroy the locks */
-    vlc_mutex_destroy( &app_lock );
-    vlc_cond_destroy( &app_wait );
+    p_appthread = vlc_object_create( p_this, sizeof(vlc_object_t) );
+
+    /* Create the BApplication thread and wait for initialization */
+    vlc_thread_create( p_appthread, "app thread", AppThread, 1 );
+
+    vlc_object_attach( p_appthread, p_this->p_vlc );
 }
 
 /*****************************************************************************
@@ -98,11 +88,15 @@ void system_Configure( vlc_object_t * )
  *****************************************************************************/
 void system_End( vlc_object_t *p_this )
 {
-    free( psz_program_path );
+    vlc_object_unlink_all( p_appthread );
 
     /* Tell the BApplication to die */
     be_app->PostMessage( B_QUIT_REQUESTED );
-    vlc_thread_join( p_this, app_thread );
+    vlc_thread_join( p_appthread );
+
+    vlc_object_destroy( p_appthread );
+
+    free( psz_program_path );
 }
 
 /*****************************************************************************
@@ -172,8 +166,6 @@ void VlcApplication::ReadyToRun( )
     psz_program_path = strdup( path.Path() );
 
     /* Tell the main thread we are finished initializing the BApplication */
-    vlc_mutex_lock( &app_lock );
-    vlc_cond_signal( &app_wait );
-    vlc_mutex_unlock( &app_lock );
+    vlc_thread_ready( p_appthread );
 }
 
index 7ba39d637e30048518b141e13970813511cc75e6..73bc570e8393187459598c9ea7d569846c2b4fe2 100644 (file)
@@ -2,7 +2,7 @@
  * objects.c: vlc_object_t handling
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: objects.c,v 1.1 2002/06/01 12:32:01 sam Exp $
+ * $Id: objects.c,v 1.2 2002/06/01 13:52:24 sam Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -101,8 +101,8 @@ static void vlc_dumpstructure_inner( vlc_object_t *p_this,
     }
 
     psz_foo[i_level] = '\0';
-    msg_Dbg( p_this, "%so %s %p%s%s%s%s", psz_foo, p_this->psz_object_type,
-             p_this, psz_name, psz_thread, psz_refcount, psz_children );
+    msg_Info( p_this, "%so %s %p%s%s%s%s", psz_foo, p_this->psz_object_type,
+              p_this, psz_name, psz_thread, psz_refcount, psz_children );
     psz_foo[i_level] = i_back;
 
     if( i_level / 2 >= MAX_TREE_DEPTH )
@@ -139,7 +139,7 @@ static void vlc_dumpstructure_inner( vlc_object_t *p_this,
     }
 }
 
-/* vlc_object_create: initialize a vlc object and set its parent */
+/* vlc_object_create: initialize a vlc object */
 void * __vlc_object_create( vlc_object_t *p_this, int i_type )
 {
     vlc_object_t * p_new;
@@ -181,7 +181,8 @@ void * __vlc_object_create( vlc_object_t *p_this, int i_type )
             psz_type = "audio output";
             break;
         default:
-            i_size = i_type;
+            i_size = i_type > sizeof(vlc_object_t)
+                   ? i_type : sizeof(vlc_object_t);
             i_type = VLC_OBJECT_PRIVATE;
             psz_type = "private";
             break;