Commit 44ed9d3c authored by Christophe Massiot's avatar Christophe Massiot

* ./configure : better detection of IPv6, fixed solaris handling

* ./src/input/* : fixed a memory leak
parent 30b91066
This diff is collapsed.
...@@ -102,6 +102,9 @@ case "x${target_os}" in ...@@ -102,6 +102,9 @@ case "x${target_os}" in
x11_LDFLAGS="${x11_LDFLAGS} -lsocket" x11_LDFLAGS="${x11_LDFLAGS} -lsocket"
xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket" xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket"
;; ;;
xsolaris*)
SYS=solaris
;;
xbeos) xbeos)
SYS=beos SYS=beos
save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${save_CFLAGS}" save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${save_CFLAGS}"
...@@ -871,11 +874,18 @@ dnl ipv6 plugin - not for QNX yet ...@@ -871,11 +874,18 @@ dnl ipv6 plugin - not for QNX yet
dnl dnl
if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32" if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
then then
AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"],[ have_ipv6=0
AC_CHECK_FUNC(inet_pton,[have_ipv6=1],[
AC_CHECK_LIB(resolv,inet_pton, AC_CHECK_LIB(resolv,inet_pton,
[PLUGINS="${PLUGINS} ipv6" [have_ipv6=1
ipv6_LDFLAGS="${ipv6_LDFLAGS} -lresolv"]) ipv6_LDFLAGS="${ipv6_LDFLAGS} -lresolv"])
]) ])
AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=0])
if test x$have_ipv6 = x1; then
PLUGINS="${PLUGINS} ipv6"
fi
fi fi
if test "x${SYS}" = "xmingw32" if test "x${SYS}" = "xmingw32"
then then
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* decoders. * decoders.
***************************************************************************** *****************************************************************************
* Copyright (C) 1998-2001 VideoLAN * Copyright (C) 1998-2001 VideoLAN
* $Id: input.c,v 1.206 2002/07/21 18:57:02 sigmunau Exp $ * $Id: input.c,v 1.207 2002/07/24 23:11:55 massiot Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -56,7 +56,6 @@ ...@@ -56,7 +56,6 @@
static int RunThread ( input_thread_t *p_input ); static int RunThread ( input_thread_t *p_input );
static int InitThread ( input_thread_t *p_input ); static int InitThread ( input_thread_t *p_input );
static void ErrorThread ( input_thread_t *p_input ); static void ErrorThread ( input_thread_t *p_input );
static void CloseThread ( input_thread_t *p_input );
static void EndThread ( input_thread_t *p_input ); static void EndThread ( input_thread_t *p_input );
/***************************************************************************** /*****************************************************************************
...@@ -572,30 +571,22 @@ static void EndThread( input_thread_t * p_input ) ...@@ -572,30 +571,22 @@ static void EndThread( input_thread_t * p_input )
input_DumpStream( p_input ); input_DumpStream( p_input );
/* Tell we're dead */
p_input->b_dead = 1;
/* Free all ES and destroy all decoder threads */ /* Free all ES and destroy all decoder threads */
input_EndStream( p_input ); input_EndStream( p_input );
/* Free demultiplexer's data */ /* Free demultiplexer's data */
p_input->pf_end( p_input ); p_input->pf_end( p_input );
module_Unneed( p_input->p_demux_module ); module_Unneed( p_input->p_demux_module );
/* Close the access plug-in */
CloseThread( p_input );
}
/***************************************************************************** /* Close the access plug-in */
* CloseThread: close the target
*****************************************************************************/
static void CloseThread( input_thread_t * p_input )
{
p_input->pf_close( p_input ); p_input->pf_close( p_input );
module_Unneed( p_input->p_access_module ); module_Unneed( p_input->p_access_module );
input_AccessEnd( p_input ); input_AccessEnd( p_input );
free( p_input->psz_source ); free( p_input->psz_source );
/* Tell we're dead */
p_input->b_dead = 1;
} }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* input_ext-plugins.c: useful functions for access and demux plug-ins * input_ext-plugins.c: useful functions for access and demux plug-ins
***************************************************************************** *****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN * Copyright (C) 2001, 2002 VideoLAN
* $Id: input_ext-plugins.c,v 1.16 2002/07/21 23:40:24 sam Exp $ * $Id: input_ext-plugins.c,v 1.17 2002/07/24 23:11:55 massiot Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -548,7 +548,6 @@ ssize_t input_FillBuffer( input_thread_t * p_input ) ...@@ -548,7 +548,6 @@ ssize_t input_FillBuffer( input_thread_t * p_input )
p_input->i_bufsize ); p_input->i_bufsize );
if( i_ret < 0 ) i_ret = 0; if( i_ret < 0 ) i_ret = 0;
/* We take back the lock before fiddling with buffers */
p_input->p_data_buffer = p_buf; p_input->p_data_buffer = p_buf;
p_input->p_current_data = (byte_t *)p_buf + sizeof(data_buffer_t); p_input->p_current_data = (byte_t *)p_buf + sizeof(data_buffer_t);
p_input->p_last_data = p_input->p_current_data + i_remains + i_ret; p_input->p_last_data = p_input->p_current_data + i_remains + i_ret;
...@@ -603,6 +602,11 @@ ssize_t input_SplitBuffer( input_thread_t * p_input, ...@@ -603,6 +602,11 @@ ssize_t input_SplitBuffer( input_thread_t * p_input,
} }
} }
if ( !i_size )
{
return 0;
}
*pp_data = input_ShareBuffer( p_input->p_method_data, *pp_data = input_ShareBuffer( p_input->p_method_data,
p_input->p_data_buffer ); p_input->p_data_buffer );
......
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