mirror of https://code.videolan.org/videolan/vlc
* ./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. * ./ChangeLog: imported the 0_4_1_branch changelog. * ./plugins/chroma/i420_yuy2.h: imported a 0_4_1_branch fix.
This commit is contained in:
parent
9e3ab283c2
commit
23379347d1
79
ChangeLog
79
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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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>
|
||||
*
|
||||
|
@ -24,43 +24,25 @@
|
|||
#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\
|
||||
|
|
|
@ -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>
|
||||
*
|
||||
|
@ -21,6 +21,21 @@
|
|||
* 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
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 * );
|
||||
|
|
|
@ -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>
|
||||
|
@ -102,6 +102,7 @@
|
|||
#include <vlc/decoder.h>
|
||||
|
||||
#include "vdec_ext-plugins.h"
|
||||
#include "video_decoder.h"
|
||||
#include "vpar_pool.h"
|
||||
#include "video_parser.h"
|
||||
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 );
|
||||
p_appthread = vlc_object_create( p_this, sizeof(vlc_object_t) );
|
||||
|
||||
/* Create the BApplication thread */
|
||||
vlc_thread_create( p_this, &app_thread, "app thread",
|
||||
(vlc_thread_func_t)system_AppThread, 0 );
|
||||
/* Create the BApplication thread and wait for initialization */
|
||||
vlc_thread_create( p_appthread, "app thread", AppThread, 1 );
|
||||
|
||||
/* 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 );
|
||||
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 );
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue