Commit 945f2946 authored by Sam Hocevar's avatar Sam Hocevar

  * DirectX plugin by Gildas Bazin <gbazin@netcourrier.com>.

    Notes: o I called it 'directx' instead of 'windx' because it
             made a lot more sense to me.
           o Completely untested. I didn't manage to compile it yet.
           o Code in vout_directx.c will go through a big rewrite when
             vout 4 is finished. Xav is already working on this.
parent e9cc5c05
...@@ -23,6 +23,13 @@ If you intend to debug stuff, you may want to disable optimizations: ...@@ -23,6 +23,13 @@ If you intend to debug stuff, you may want to disable optimizations:
--enable-mga --enable-gtk --enable-qt --enable-xvideo --enable-alsa \ --enable-mga --enable-gtk --enable-qt --enable-xvideo --enable-alsa \
--enable-debug --enable-debug
It is also possible to cross-compile for the Win32 platform using mingw32:
make distclean && CC=i586-mingw32msvc-gcc CFLAGS=-I/usr/i586-mingw32msvc \
RANLIB=i586-mingw32msvc-ranlib ./configure --host=i386-mingw32msvc \
--target=i386-mingw32msvc --build=i386-linux --disable-dsp \
--disable-gtk --disable-x11 --disable-xvideo
Building VideoLAN Building VideoLAN
================= =================
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# All possible plugin directories, needed for make clean # All possible plugin directories, needed for make clean
# #
PLUGINS_DIR := alsa beos darwin dsp dummy \ PLUGINS_DIR := alsa beos darwin directx dsp dummy \
dvd esd fb ggi glide gtk \ dvd esd fb ggi glide gtk \
downmix idct imdct \ downmix idct imdct \
macosx mga \ macosx mga \
...@@ -22,8 +22,9 @@ PLUGINS_DIR := alsa beos darwin dsp dummy \ ...@@ -22,8 +22,9 @@ PLUGINS_DIR := alsa beos darwin dsp dummy \
# #
# All possible plugin objects # All possible plugin objects
# #
PLUGINS_TARGETS := alsa/alsa beos/beos darwin/darwin dsp/dsp dummy/dummy \ PLUGINS_TARGETS := alsa/alsa beos/beos darwin/darwin directx/directx \
dvd/dvd esd/esd fb/fb ggi/ggi glide/glide gtk/gnome gtk/gtk \ dsp/dsp dummy/dummy dvd/dvd esd/esd fb/fb ggi/ggi \
glide/glide gtk/gnome gtk/gtk \
downmix/downmix downmix/downmixsse downmix/downmix3dn \ downmix/downmix downmix/downmixsse downmix/downmix3dn \
idct/idct idct/idctclassic idct/idctmmx idct/idctmmxext \ idct/idct idct/idctclassic idct/idctmmx idct/idctmmxext \
imdct/imdct imdct/imdct3dn imdct/imdctsse \ imdct/imdct imdct/imdct3dn imdct/imdctsse \
...@@ -133,7 +134,7 @@ endif ...@@ -133,7 +134,7 @@ endif
# #
# Generated header # Generated header
# #
H_OBJ = include/modules_builtin.h H_OBJ = src/misc/modules_builtin.h
# #
# Other lists of files # Other lists of files
...@@ -176,6 +177,7 @@ distclean: clean ...@@ -176,6 +177,7 @@ distclean: clean
rm -f **/*.o **/*~ *.log rm -f **/*.o **/*~ *.log
rm -f Makefile.opts rm -f Makefile.opts
rm -f include/defs.h include/config.h include/modules_builtin.h rm -f include/defs.h include/config.h include/modules_builtin.h
rm -f src/misc/modules_builtin.h
rm -f config*status config*cache config*log rm -f config*status config*cache config*log
rm -f gmon.out core build-stamp rm -f gmon.out core build-stamp
rm -Rf .dep rm -Rf .dep
......
...@@ -73,6 +73,7 @@ LIB_NCURSES = @LIB_NCURSES@ ...@@ -73,6 +73,7 @@ LIB_NCURSES = @LIB_NCURSES@
LIB_QT = @LIB_QT@ LIB_QT = @LIB_QT@
LIB_TS = @LIB_TS@ LIB_TS = @LIB_TS@
LIB_SDL = @LIB_SDL@ LIB_SDL = @LIB_SDL@
LIB_DIRECTX = @LIB_DIRECTX@
LIB_X11 = @LIB_X11@ LIB_X11 = @LIB_X11@
LIB_XVIDEO = @LIB_XVIDEO@ LIB_XVIDEO = @LIB_XVIDEO@
LIB_YUV = @LIB_YUV@ LIB_YUV = @LIB_YUV@
......
This diff is collapsed.
...@@ -68,13 +68,13 @@ CFLAGS="${CFLAGS} -I/usr/local/include" ...@@ -68,13 +68,13 @@ CFLAGS="${CFLAGS} -I/usr/local/include"
dnl Check for pthreads - borrowed from XMMS dnl Check for pthreads - borrowed from XMMS
PTHREAD_LIBS=error PTHREAD_LIBS=error
AC_CHECK_LIB(pthread,pthread_attr_init,PTHREAD_LIBS="-lpthread") AC_CHECK_LIB(pthread,pthread_attr_init,PTHREAD_LIBS="-lpthread")
if test "x$PTHREAD_LIBS" = xerror; then if test "x${PTHREAD_LIBS}" = xerror; then
AC_CHECK_LIB(pthreads,pthread_attr_init,PTHREAD_LIBS="-lpthreads") AC_CHECK_LIB(pthreads,pthread_attr_init,PTHREAD_LIBS="-lpthreads")
fi fi
if test "x$PTHREAD_LIBS" = xerror; then if test "x${PTHREAD_LIBS}" = xerror; then
AC_CHECK_LIB(c_r,pthread_attr_init,PTHREAD_LIBS="-lc_r") AC_CHECK_LIB(c_r,pthread_attr_init,PTHREAD_LIBS="-lc_r")
fi fi
if test "x$PTHREAD_LIBS" = xerror; then if test "x${PTHREAD_LIBS}" = xerror; then
PTHREAD_LIBS="" PTHREAD_LIBS=""
AC_CHECK_FUNC(pthread_attr_init) AC_CHECK_FUNC(pthread_attr_init)
fi fi
...@@ -395,6 +395,30 @@ AC_ARG_WITH(sdl, ...@@ -395,6 +395,30 @@ AC_ARG_WITH(sdl,
LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL"]) LIB_SDL="${LIB_SDL} -L/usr/X11R6/lib -lSDL"])
fi fi
dnl
dnl Windows DirectX module
dnl
AC_ARG_WITH(directx,
[ --with-directx[=name] Windows DirectX support (default enabled)],
[ if test "x$withval" != "xno";
then
PLUGINS="${PLUGINS} directx";
if test "x$withval" != "xyes";
then
LIB_DIRECTX="${LIB_DIRECTX} -L"$withval"/lib -lddraw -ldsound"
INCLUDE="${INCLUDE} -I"$withval"/include"
else
AC_CHECK_HEADERS(directx.h, , [echo "Cannot find DirectX headers !"; exit])
LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lddraw -ldsound"
fi
fi ])
if test "x$withval" = "x";
then
AC_CHECK_HEADERS(directx.h,
[PLUGINS="${PLUGINS} directx"
LIB_DIRECTX="${LIB_DIRECTX} -L/usr/lib -lddraw -ldsound"])
fi
dnl dnl
dnl Glide module dnl Glide module
dnl dnl
...@@ -562,6 +586,7 @@ AC_SUBST(LIB_NCURSES) ...@@ -562,6 +586,7 @@ AC_SUBST(LIB_NCURSES)
AC_SUBST(LIB_QT) AC_SUBST(LIB_QT)
AC_SUBST(LIB_TS) AC_SUBST(LIB_TS)
AC_SUBST(LIB_SDL) AC_SUBST(LIB_SDL)
AC_SUBST(LIB_DIRECTX)
AC_SUBST(LIB_X11) AC_SUBST(LIB_X11)
AC_SUBST(LIB_XVIDEO) AC_SUBST(LIB_XVIDEO)
AC_SUBST(LIB_YUV) AC_SUBST(LIB_YUV)
......
###############################################################################
# vlc (VideoLAN Client) DirectX module Makefile
# (c)2001 VideoLAN
###############################################################################
#
# Objects
#
PLUGIN_C = directx.o vout_directx.o aout_directx.o
BUILTIN_C = $(PLUGIN_C:%.o=BUILTIN_%.o)
ALL_OBJ = $(PLUGIN_C) $(BUILTIN_C)
#
# Virtual targets
#
include ../../Makefile.modules
#
# Real targets
#
../../lib/directx.so: $(PLUGIN_C)
$(CC) $(PCFLAGS) -o $@ $^ $(PLCFLAGS) $(LIB_DIRECTX)
../../lib/directx.a: $(BUILTIN_C)
ar r $@ $^
$(RANLIB) $@
This diff is collapsed.
/*****************************************************************************
* directx.c : Windows DirectX plugin for vlc
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: directx.c,v 1.1 2001/06/02 01:09:03 sam Exp $
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#define MODULE_NAME directx
#include "modules_inner.h"
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "defs.h"
#include <stdlib.h> /* malloc(), free() */
#include "config.h"
#include "common.h" /* boolean_t, byte_t */
#include "threads.h"
#include "mtime.h"
#include "audio_output.h"
#include "video.h"
#include "video_output.h"
#include "modules.h"
#include "modules_export.h"
/*****************************************************************************
* Capabilities defined in the other files.
*****************************************************************************/
void _M( aout_getfunctions )( function_list_t * p_function_list );
void _M( vout_getfunctions )( function_list_t * p_function_list );
/*****************************************************************************
* Building configuration tree
*****************************************************************************/
MODULE_CONFIG_START
ADD_WINDOW( "Configuration for Windows DirectX module" )
ADD_COMMENT( "For now, the Windows DirectX module cannot be configured" )
MODULE_CONFIG_STOP
MODULE_INIT_START
p_module->i_capabilities = MODULE_CAPABILITY_NULL
| MODULE_CAPABILITY_VOUT
| MODULE_CAPABILITY_AOUT;
p_module->psz_longname = "DirectX module";
MODULE_INIT_STOP
MODULE_ACTIVATE_START
_M( aout_getfunctions )( &p_module->p_functions->aout );
_M( vout_getfunctions )( &p_module->p_functions->vout );
MODULE_ACTIVATE_STOP
MODULE_DEACTIVATE_START
MODULE_DEACTIVATE_STOP
This diff is collapsed.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* gtk_menu.c : functions to handle menu items. * gtk_menu.c : functions to handle menu items.
***************************************************************************** *****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN * Copyright (C) 2000, 2001 VideoLAN
* $Id: gtk_menu.c,v 1.8 2001/05/31 16:10:05 stef Exp $ * $Id: gtk_menu.c,v 1.9 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* Stphane Borel <stef@via.ecp.fr> * Stphane Borel <stef@via.ecp.fr>
...@@ -59,6 +59,12 @@ ...@@ -59,6 +59,12 @@
#include "modules_export.h" #include "modules_export.h"
#ifdef WIN32
#ifndef snprintf
#define snprintf _snprintf
#endif
#endif
/* /*
* Local Prototypes * Local Prototypes
*/ */
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* input_ts.c: TS demux and netlist management * input_ts.c: TS demux and netlist management
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ts.c,v 1.24 2001/05/31 03:57:54 sam Exp $ * $Id: input_ts.c,v 1.25 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Henri Fallon <henri@videolan.org> * Authors: Henri Fallon <henri@videolan.org>
* *
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
...@@ -143,13 +143,13 @@ static int TSProbe( probedata_t * p_data ) ...@@ -143,13 +143,13 @@ static int TSProbe( probedata_t * p_data )
psz_name += 5; psz_name += 5;
} }
if( ( strlen(psz_name) > 3 ) && if( ( strlen(psz_name) > 3 ) &&
!strncasecmp( psz_name+strlen(psz_name)-3, ".ts", 3) ) !strncasecmp( psz_name+strlen(psz_name)-3, ".ts", 3) )
{ {
/* If it is a ".ts" file it's probably a TS file ... */ /* If it is a ".ts" file it's probably a TS file ... */
return( 900 ); return( 900 );
} }
i_handle = open( psz_name, 0 ); i_handle = open( psz_name, 0 );
if( i_handle == -1 ) if( i_handle == -1 )
{ {
...@@ -182,16 +182,16 @@ static void TSInit( input_thread_t * p_input ) ...@@ -182,16 +182,16 @@ static void TSInit( input_thread_t * p_input )
p_input->p_plugin_data = (void *)p_method; p_input->p_plugin_data = (void *)p_method;
p_input->p_method_data = NULL; p_input->p_method_data = NULL;
/* Initialize netlist */ /* Initialize netlist */
if( input_NetlistInit( p_input, NB_DATA, NB_PES, TS_PACKET_SIZE, if( input_NetlistInit( p_input, NB_DATA, NB_PES, TS_PACKET_SIZE,
INPUT_READ_ONCE ) ) INPUT_READ_ONCE ) )
{ {
intf_ErrMsg( "TS input : Could not initialize netlist" ); intf_ErrMsg( "TS input : Could not initialize netlist" );
return; return;
} }
/* Initialize the stream */ /* Initialize the stream */
input_InitStream( p_input, sizeof( stream_ts_data_t ) ); input_InitStream( p_input, sizeof( stream_ts_data_t ) );
...@@ -204,7 +204,7 @@ static void TSInit( input_thread_t * p_input ) ...@@ -204,7 +204,7 @@ static void TSInit( input_thread_t * p_input )
p_stream_data = (stream_ts_data_t *)p_input->stream.p_demux_data; p_stream_data = (stream_ts_data_t *)p_input->stream.p_demux_data;
p_stream_data->i_pat_version = PAT_UNINITIALIZED ; p_stream_data->i_pat_version = PAT_UNINITIALIZED ;
/* We'll have to catch the PAT in order to continue /* We'll have to catch the PAT in order to continue
* Then the input will catch the PMT and then the others ES * Then the input will catch the PMT and then the others ES
* The PAT es is indepedent of any program. */ * The PAT es is indepedent of any program. */
p_pat_es = input_AddES( p_input, NULL, p_pat_es = input_AddES( p_input, NULL,
...@@ -214,7 +214,7 @@ static void TSInit( input_thread_t * p_input ) ...@@ -214,7 +214,7 @@ static void TSInit( input_thread_t * p_input )
p_demux_data->i_psi_type = PSI_IS_PAT; p_demux_data->i_psi_type = PSI_IS_PAT;
p_demux_data->p_psi_section = malloc(sizeof(psi_section_t)); p_demux_data->p_psi_section = malloc(sizeof(psi_section_t));
p_demux_data->p_psi_section->b_is_complete = 1; p_demux_data->p_psi_section->b_is_complete = 1;
} }
/***************************************************************************** /*****************************************************************************
...@@ -247,7 +247,7 @@ void TSFakeOpen( input_thread_t * p_input ) ...@@ -247,7 +247,7 @@ void TSFakeOpen( input_thread_t * p_input )
static void TSEnd( input_thread_t * p_input ) static void TSEnd( input_thread_t * p_input )
{ {
es_descriptor_t * p_pat_es; es_descriptor_t * p_pat_es;
p_pat_es = input_FindES( p_input, 0x00 ); p_pat_es = input_FindES( p_input, 0x00 );
if( p_pat_es != NULL ) if( p_pat_es != NULL )
...@@ -269,54 +269,53 @@ static int TSRead( input_thread_t * p_input, ...@@ -269,54 +269,53 @@ static int TSRead( input_thread_t * p_input,
int i_data; int i_data;
struct iovec * p_iovec; struct iovec * p_iovec;
struct timeval s_wait; struct timeval s_wait;
/* Get iovecs */ /* Get iovecs */
p_iovec = input_NetlistGetiovec( p_input->p_method_data ); p_iovec = input_NetlistGetiovec( p_input->p_method_data );
if ( p_iovec == NULL ) if ( p_iovec == NULL )
{ {
return( -1 ); /* empty netlist */ return( -1 ); /* empty netlist */
} }
/* Init */ /* Init */
p_method = ( thread_ts_data_t * )p_input->p_plugin_data; p_method = ( thread_ts_data_t * )p_input->p_plugin_data;
/* Initialize file descriptor set */ /* Initialize file descriptor set */
FD_ZERO( &(p_method->s_fdset) ); FD_ZERO( &(p_method->fds) );
FD_SET( p_input->i_handle, &(p_method->s_fdset) ); FD_SET( p_input->i_handle, &(p_method->fds) );
/* We'll wait 0.5 second if nothing happens */ /* We'll wait 0.5 second if nothing happens */
s_wait.tv_sec = 0; s_wait.tv_sec = 0;
s_wait.tv_usec = 500000; s_wait.tv_usec = 500000;
/* Reset pointer table */ /* Reset pointer table */
memset( pp_packets, 0, INPUT_READ_ONCE * sizeof(data_packet_t *) ); memset( pp_packets, 0, INPUT_READ_ONCE * sizeof(data_packet_t *) );
/* Fill if some data is available */ /* Fill if some data is available */
i_data = select( p_input->i_handle + 1, &(p_method->s_fdset), NULL, NULL, i_data = select( p_input->i_handle + 1, &(p_method->fds), NULL, NULL,
&s_wait); &s_wait);
if( i_data == -1 ) if( i_data == -1 )
{ {
intf_ErrMsg( "input error: TS select error (%s)", strerror(errno) ); intf_ErrMsg( "input error: TS select error (%s)", strerror(errno) );
return( -1 ); return( -1 );
} }
if( i_data ) if( i_data )
{ {
i_read = readv( p_input->i_handle, p_iovec, INPUT_READ_ONCE ); i_read = readv( p_input->i_handle, p_iovec, INPUT_READ_ONCE );
if( i_read == -1 ) if( i_read == -1 )
{ {
intf_ErrMsg( "input error: TS readv error" ); intf_ErrMsg( "input error: TS readv error" );
return( -1 ); return( -1 );
} }
input_NetlistMviovec( p_input->p_method_data, input_NetlistMviovec( p_input->p_method_data,
(int)(i_read/TS_PACKET_SIZE) , pp_packets ); (int)(i_read/TS_PACKET_SIZE) , pp_packets );
/* check correct TS header */ /* check correct TS header */
for( i_loop=0; i_loop * TS_PACKET_SIZE < i_read; i_loop++ ) for( i_loop=0; i_loop * TS_PACKET_SIZE < i_read; i_loop++ )
{ {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* input_ts.h: structures of the input not exported to other modules * input_ts.h: structures of the input not exported to other modules
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN * Copyright (C) 1999, 2000 VideoLAN
* $Id: input_ts.h,v 1.6 2001/05/31 01:37:08 sam Exp $ * $Id: input_ts.h,v 1.7 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Henri Fallon <henri@via.ecp.fr> * Authors: Henri Fallon <henri@via.ecp.fr>
* *
...@@ -29,6 +29,6 @@ ...@@ -29,6 +29,6 @@
typedef struct thread_ts_data_s { typedef struct thread_ts_data_s {
// FILE * stream; // FILE * stream;
fd_set s_fdset; fd_set fds;
} thread_ts_data_t; } thread_ts_data_t;
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* interface, such as message output. See config.h for output configuration. * interface, such as message output. See config.h for output configuration.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN * Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: intf_msg.c,v 1.35 2001/05/31 01:37:08 sam Exp $ * $Id: intf_msg.c,v 1.36 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* *
...@@ -50,8 +50,10 @@ ...@@ -50,8 +50,10 @@
#include "main.h" #include "main.h"
#ifdef WIN32 #ifdef WIN32
#ifndef snprintf
#define snprintf _snprintf /* snprintf not defined in mingw32 (bug?) */ #define snprintf _snprintf /* snprintf not defined in mingw32 (bug?) */
#endif #endif
#endif
/***************************************************************************** /*****************************************************************************
* intf_msg_item_t * intf_msg_item_t
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* modules_core.h : Module management functions used by the core application. * modules_core.h : Module management functions used by the core application.
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: modules_core.h,v 1.6 2001/05/31 12:45:39 sam Exp $ * $Id: modules_core.h,v 1.1 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* netutils.c: various network functions * netutils.c: various network functions
***************************************************************************** *****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN * Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: netutils.c,v 1.36 2001/05/31 01:37:08 sam Exp $ * $Id: netutils.c,v 1.37 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Vincent Seguin <seguin@via.ecp.fr> * Authors: Vincent Seguin <seguin@via.ecp.fr>
* Benoit Steiner <benny@via.ecp.fr> * Benoit Steiner <benny@via.ecp.fr>
...@@ -262,7 +262,7 @@ int network_ChannelJoin( int i_channel ) ...@@ -262,7 +262,7 @@ int network_ChannelJoin( int i_channel )
struct timeval answer_delay; struct timeval answer_delay;
int i_nbanswer; int i_nbanswer;
char i_answer; char i_answer;
fd_set fd; fd_set fds;
unsigned int i_rc; unsigned int i_rc;
char * psz_channel_server; char * psz_channel_server;
...@@ -369,9 +369,9 @@ int network_ChannelJoin( int i_channel ) ...@@ -369,9 +369,9 @@ int network_ChannelJoin( int i_channel )
*/ */
answer_delay.tv_sec = 5; answer_delay.tv_sec = 5;
answer_delay.tv_usec = 0; answer_delay.tv_usec = 0;
FD_ZERO( &fd ); FD_ZERO( &fds );
FD_SET( i_socket, &fd ); FD_SET( i_socket, &fds );
i_nbanswer = select( i_socket + 1, &fd, NULL, NULL, &answer_delay ); i_nbanswer = select( i_socket + 1, &fds, NULL, NULL, &answer_delay );
switch( i_nbanswer ) switch( i_nbanswer )
{ {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* spu_decoder.c : spu decoder thread * spu_decoder.c : spu decoder thread
***************************************************************************** *****************************************************************************
* Copyright (C) 2000 VideoLAN * Copyright (C) 2000 VideoLAN
* $Id: spu_decoder.c,v 1.46 2001/05/31 01:37:08 sam Exp $ * $Id: spu_decoder.c,v 1.47 2001/06/02 01:09:03 sam Exp $
* *
* Authors: Samuel Hocevar <sam@zoy.org> * Authors: Samuel Hocevar <sam@zoy.org>
* *
...@@ -412,6 +412,7 @@ static int ParseControlSequences( spudec_thread_t *p_spudec, ...@@ -412,6 +412,7 @@ static int ParseControlSequences( spudec_thread_t *p_spudec,
case SPU_CMD_FORCE_DISPLAY: case SPU_CMD_FORCE_DISPLAY:
/* 00 (force displaying) */ /* 00 (force displaying) */
p_spu->i_start = p_spudec->i_pts + ( i_date * 11000 );
b_force_display = 1; b_force_display = 1;
break; break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment