if( !psz_sout && psz_path )
{
- char *psz_file = input_CreateFilename( VLC_OBJECT(p_input), psz_path, INPUT_RECORD_PREFIX, NULL );
+ char *psz_file = input_CreateFilename( p_input, psz_path, INPUT_RECORD_PREFIX, NULL );
if( psz_file )
{
if( asprintf( &psz_sout, "#record{dst-prefix='%s'}", psz_file ) < 0 )
p_es->p_dec_record = input_DecoderNew( p_input, &p_es->fmt, p_es->p_pgrm->p_clock, p_sys->p_sout_record );
if( p_es->p_dec_record && p_sys->b_buffering )
- input_DecoderStartBuffering( p_es->p_dec_record );
+ input_DecoderStartWait( p_es->p_dec_record );
}
}
else
if( !p_es->p_dec )
continue;
- input_DecoderStartBuffering( p_es->p_dec );
+ input_DecoderStartWait( p_es->p_dec );
if( p_es->p_dec_record )
- input_DecoderStartBuffering( p_es->p_dec_record );
+ input_DecoderStartWait( p_es->p_dec_record );
}
for( int i = 0; i < p_sys->i_pgrm; i++ )
if( !p_es->p_dec || p_es->fmt.i_cat == SPU_ES )
continue;
- input_DecoderWaitBuffering( p_es->p_dec );
+ input_DecoderWait( p_es->p_dec );
if( p_es->p_dec_record )
- input_DecoderWaitBuffering( p_es->p_dec_record );
+ input_DecoderWait( p_es->p_dec_record );
}
- msg_Dbg( p_sys->p_input, "Decoder buffering done in %d ms",
+ msg_Dbg( p_sys->p_input, "Decoder wait done in %d ms",
(int)(mdate() - i_decoder_buffering_start)/1000 );
/* Here is a good place to destroy unused vout with every demuxer */
if( !p_es->p_dec )
continue;
- input_DecoderStopBuffering( p_es->p_dec );
+ input_DecoderStopWait( p_es->p_dec );
if( p_es->p_dec_record )
- input_DecoderStopBuffering( p_es->p_dec_record );
+ input_DecoderStopWait( p_es->p_dec_record );
}
}
static void EsOutDecodersChangePause( es_out_t *out, bool b_paused, mtime_t i_date )
if( p_es->p_dec )
{
if( p_sys->b_buffering )
- input_DecoderStartBuffering( p_es->p_dec );
+ input_DecoderStartWait( p_es->p_dec );
if( !p_es->p_master && p_sys->p_sout_record )
{
p_es->p_dec_record = input_DecoderNew( p_input, &p_es->fmt, p_es->p_pgrm->p_clock, p_sys->p_sout_record );
if( p_es->p_dec_record && p_sys->b_buffering )
- input_DecoderStartBuffering( p_es->p_dec_record );
+ input_DecoderStartWait( p_es->p_dec_record );
}
}
EsOutIsExtraBufferingAllowed( out ),
i_pcr, mdate() );
+ if( !p_sys->p_pgrm )
+ return VLC_SUCCESS;
+
if( p_sys->b_buffering )
{
/* Check buffering state on master clock update */
{
const int i_id = (int)va_arg( args, int );
es_out_id_t *p_es = EsOutGetFromID( out, i_id );
- int i_new_query;
+ int i_new_query = 0;
switch( i_query )
{