Commit 3ebf4f30 authored by zorglub's avatar zorglub
Browse files

Fix some crashes

parent 87e02f76
...@@ -1419,12 +1419,18 @@ static int transcode_audio_process( sout_stream_t *p_stream, ...@@ -1419,12 +1419,18 @@ static int transcode_audio_process( sout_stream_t *p_stream,
block_t *p_block, *p_audio_block; block_t *p_block, *p_audio_block;
int i; int i;
*out = NULL; *out = NULL;
input_thread_t *p_input = NULL;
if( p_stream->p_parent->p_parent && p_stream->p_parent->p_parent->
i_object_type == VLC_OBJECT_INPUT )
p_input = (input_thread_t *)p_stream->p_parent->p_parent;
while( (p_audio_buf = id->p_decoder->pf_decode_audio( id->p_decoder, while( (p_audio_buf = id->p_decoder->pf_decode_audio( id->p_decoder,
&in )) ) &in )) )
{ {
stats_UpdateInteger( p_stream->p_parent->p_parent, STATS_DECODED_AUDIO, if( p_input )
1, NULL ); stats_UpdateInteger( p_input, p_input->counters.p_decoded_audio,
1, NULL );
if( p_sys->b_master_sync ) if( p_sys->b_master_sync )
{ {
mtime_t i_dts = date_Get( &id->interpolated_pts ) + 1; mtime_t i_dts = date_Get( &id->interpolated_pts ) + 1;
...@@ -2006,12 +2012,18 @@ static int transcode_video_process( sout_stream_t *p_stream, ...@@ -2006,12 +2012,18 @@ static int transcode_video_process( sout_stream_t *p_stream,
int i_duplicate = 1, i; int i_duplicate = 1, i;
picture_t *p_pic, *p_pic2 = NULL; picture_t *p_pic, *p_pic2 = NULL;
*out = NULL; *out = NULL;
input_thread_t *p_input = NULL;
if( p_stream->p_parent->p_parent && p_stream->p_parent->p_parent->
i_object_type == VLC_OBJECT_INPUT )
p_input = (input_thread_t *)p_stream->p_parent->p_parent;
while( (p_pic = id->p_decoder->pf_decode_video( id->p_decoder, &in )) ) while( (p_pic = id->p_decoder->pf_decode_video( id->p_decoder, &in )) )
{ {
subpicture_t *p_subpic = 0; subpicture_t *p_subpic = 0;
stats_UpdateInteger( p_stream->p_parent->p_parent, STATS_DECODED_VIDEO, if( p_input )
1, NULL ); stats_UpdateInteger( p_input, p_input->counters.p_decoded_video,
1, NULL );
if( p_stream->p_sout->i_out_pace_nocontrol && p_sys->b_hurry_up ) if( p_stream->p_sout->i_out_pace_nocontrol && p_sys->b_hurry_up )
{ {
......
...@@ -81,7 +81,7 @@ counter_t * __stats_CounterCreate( vlc_object_t *p_this, ...@@ -81,7 +81,7 @@ counter_t * __stats_CounterCreate( vlc_object_t *p_this,
int __stats_Update( vlc_object_t *p_this, counter_t *p_counter, int __stats_Update( vlc_object_t *p_this, counter_t *p_counter,
vlc_value_t val, vlc_value_t *val_new ) vlc_value_t val, vlc_value_t *val_new )
{ {
if( !p_this->p_libvlc->b_stats ) return VLC_EGENERIC; if( !p_this->p_libvlc->b_stats || !p_counter ) return VLC_EGENERIC;
return CounterUpdate( p_this, p_counter, val, val_new ); return CounterUpdate( p_this, p_counter, val, val_new );
} }
...@@ -94,7 +94,7 @@ int __stats_Update( vlc_object_t *p_this, counter_t *p_counter, ...@@ -94,7 +94,7 @@ int __stats_Update( vlc_object_t *p_this, counter_t *p_counter,
*/ */
int __stats_Get( vlc_object_t *p_this, counter_t *p_counter, vlc_value_t *val ) int __stats_Get( vlc_object_t *p_this, counter_t *p_counter, vlc_value_t *val )
{ {
if( !p_this->p_libvlc->b_stats || p_counter->i_samples == 0 ) if( !p_this->p_libvlc->b_stats || !p_counter || p_counter->i_samples == 0 )
{ {
val->i_int = val->f_float = 0.0; val->i_int = val->f_float = 0.0;
return VLC_EGENERIC; return VLC_EGENERIC;
......
Supports Markdown
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