* stream_output.h : stream output module
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: stream_output.h,v 1.20 2004/01/25 18:17:08 zorglub Exp $
+ * $Id: stream_output.h,v 1.21 2004/02/22 16:08:47 fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
VLC_EXPORT( sout_buffer_t *, sout_FifoShow, ( sout_fifo_t * ) );
-#define sout_InputNew( a, b ) __sout_InputNew( VLC_OBJECT(a), b )
-VLC_EXPORT( sout_packetizer_input_t *, __sout_InputNew, ( vlc_object_t *, es_format_t * ) );
+VLC_EXPORT( sout_packetizer_input_t *, sout_InputNew,( sout_instance_t *, es_format_t * ) );
VLC_EXPORT( int, sout_InputDelete, ( sout_packetizer_input_t * ) );
VLC_EXPORT( int, sout_InputSendBuffer, ( sout_packetizer_input_t *, sout_buffer_t* ) );
* input_dec.c: Functions for the management of decoders
*****************************************************************************
* Copyright (C) 1999-2004 VideoLAN
- * $Id: input_dec.c,v 1.89 2004/01/30 17:49:21 fenrir Exp $
+ * $Id: input_dec.c,v 1.90 2004/02/22 16:08:47 fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Gildas Bazin <gbazin@netcourrier.com>
vout_thread_t *p_vout;
- sout_packetizer_input_t *p_sout;
+ sout_instance_t *p_sout;
+ sout_packetizer_input_t *p_sout_input;
/* Current format in use by the output */
video_format_t video;
p_dec->p_owner->p_aout = NULL;
p_dec->p_owner->p_aout_input = NULL;
p_dec->p_owner->p_vout = NULL;
- p_dec->p_owner->p_sout = NULL;
+ p_dec->p_owner->p_sout = p_input->stream.p_sout;
+ p_dec->p_owner->p_sout_input = NULL;
p_dec->p_owner->p_es_descriptor = p_es;
/* decoder fifo */
if( ( p_dec->p_owner->p_fifo = block_FifoNew( p_dec ) ) == NULL )
while( (p_sout_block = p_dec->pf_packetize( p_dec, &p_block )) )
{
- if( !p_dec->p_owner->p_sout )
+ if( !p_dec->p_owner->p_sout_input )
{
es_format_Copy( &p_dec->p_owner->sout, &p_dec->fmt_out );
if( p_dec->p_owner->p_es_descriptor->p_pgrm )
p_dec->p_owner->sout.psz_language = strdup( p_dec->fmt_in.psz_language );
}
- p_dec->p_owner->p_sout =
- sout_InputNew( p_dec, &p_dec->p_owner->sout );
+ p_dec->p_owner->p_sout_input =
+ sout_InputNew( p_dec->p_owner->p_sout, &p_dec->p_owner->sout );
- if( p_dec->p_owner->p_sout == NULL )
+ if( p_dec->p_owner->p_sout_input == NULL )
{
msg_Err( p_dec, "cannot create packetizer output" );
p_dec->b_error = VLC_TRUE;
sout_buffer_t *p_sout_buffer;
p_sout_buffer =
- sout_BufferNew( p_dec->p_owner->p_sout->p_sout,
+ sout_BufferNew( p_dec->p_owner->p_sout_input->p_sout,
p_sout_block->i_buffer );
if( p_sout_buffer == NULL )
{
block_Release( p_sout_block );
- sout_InputSendBuffer( p_dec->p_owner->p_sout, p_sout_buffer );
+ sout_InputSendBuffer( p_dec->p_owner->p_sout_input, p_sout_buffer );
p_sout_block = p_next;
}
vout_Request( p_dec, p_dec->p_owner->p_vout, 0, 0, 0, 0 );
}
- if( p_dec->p_owner->p_sout )
+ if( p_dec->p_owner->p_sout_input )
{
- sout_InputDelete( p_dec->p_owner->p_sout );
+ sout_InputDelete( p_dec->p_owner->p_sout_input );
if( p_dec->p_owner->sout.i_extra ) free(p_dec->p_owner->sout.p_extra);
}
* stream_output.c : stream output module
*****************************************************************************
* Copyright (C) 2002-2004 VideoLAN
- * $Id: stream_output.c,v 1.39 2004/01/27 14:05:33 gbazin Exp $
+ * $Id: stream_output.c,v 1.40 2004/02/22 16:08:47 fenrir Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Laurent Aimar <fenrir@via.ecp.fr>
/*****************************************************************************
* Packetizer/Input
*****************************************************************************/
-sout_packetizer_input_t *__sout_InputNew( vlc_object_t *p_this,
- es_format_t *p_fmt )
+sout_packetizer_input_t *sout_InputNew( sout_instance_t *p_sout,
+ es_format_t *p_fmt )
{
- sout_instance_t *p_sout = NULL;
sout_packetizer_input_t *p_input;
- /* search an stream output */
- if( !( p_sout = vlc_object_find( p_this, VLC_OBJECT_SOUT, FIND_ANYWHERE ) ) )
- {
- /* can't happen ... */
- msg_Err( p_this, "cannot find any stream ouput" );
- return NULL;
- }
-
msg_Dbg( p_sout, "adding a new input" );
/* *** create a packetizer input *** */
/* *** add it to the stream chain */
vlc_mutex_lock( &p_sout->lock );
- p_input->id = p_sout->p_stream->pf_add( p_sout->p_stream,
- p_fmt );
+ p_input->id = p_sout->p_stream->pf_add( p_sout->p_stream, p_fmt );
vlc_mutex_unlock( &p_sout->lock );
- vlc_object_release( p_sout );
-
if( p_input->id == NULL )
{
free( p_input );
- return( NULL );
+ return NULL;
}
return( p_input );