if( !p_owner->b_buffering )
block_FifoPace( p_owner->p_fifo, 10, SIZE_MAX );
}
+#ifdef __arm__
+ else if( block_FifoSize( p_owner->p_fifo ) > 50000000 /* 50 MB */ )
+#else
else if( block_FifoSize( p_owner->p_fifo ) > 400000000 /* 400 MB, ie ~ 50mb/s for 60s */ )
+#endif
{
/* FIXME: ideally we would check the time amount of data
* in the FIFO instead of its size. */
aout_input_t *p_aout_input = p_owner->p_aout_input;
/* */
- if( p_audio->start_date <= VLC_TS_INVALID ) // FIXME --VLC_TS_INVALID verify audio_output/*
+ if( p_audio->i_pts <= VLC_TS_INVALID ) // FIXME --VLC_TS_INVALID verify audio_output/*
{
msg_Warn( p_dec, "non-dated audio buffer received" );
*pi_lost_sum += 1;
p_owner->buffer.i_count++;
if( p_owner->buffer.i_count > DECODER_MAX_BUFFERING_COUNT ||
- p_audio->start_date - p_owner->buffer.p_audio->start_date > DECODER_MAX_BUFFERING_AUDIO_DURATION )
+ p_audio->i_pts - p_owner->buffer.p_audio->i_pts > DECODER_MAX_BUFFERING_AUDIO_DURATION )
{
p_owner->buffer.b_full = true;
vlc_cond_signal( &p_owner->wait_acknowledge );
}
/* */
- const bool b_dated = p_audio->start_date > VLC_TS_INVALID;
+ const bool b_dated = p_audio->i_pts > VLC_TS_INVALID;
int i_rate = INPUT_RATE_DEFAULT;
- DecoderFixTs( p_dec, &p_audio->start_date, &p_audio->end_date, NULL,
+ DecoderFixTs( p_dec, &p_audio->i_pts, NULL, &p_audio->i_length,
&i_rate, AOUT_MAX_ADVANCE_TIME, false );
vlc_mutex_unlock( &p_owner->lock );
if( !p_aout || !p_aout_input ||
- p_audio->start_date <= VLC_TS_INVALID ||
+ p_audio->i_pts <= VLC_TS_INVALID ||
i_rate < INPUT_RATE_DEFAULT/AOUT_MAX_INPUT_RATE ||
i_rate > INPUT_RATE_DEFAULT*AOUT_MAX_INPUT_RATE )
b_reject = true;
DecoderWaitDate( p_dec, &b_reject,
- p_audio->start_date - AOUT_MAX_PREPARE_TIME );
+ p_audio->i_pts - AOUT_MAX_PREPARE_TIME );
if( !b_reject )
{
i_decoded++;
if( p_owner->i_preroll_end > VLC_TS_INVALID &&
- p_aout_buf->start_date < p_owner->i_preroll_end )
+ p_aout_buf->i_pts < p_owner->i_preroll_end )
{
aout_DecDeleteBuffer( p_aout, p_aout_input, p_aout_buf );
continue;
p_owner->sout.i_id = p_dec->fmt_in.i_id;
if( p_dec->fmt_in.psz_language )
{
- if( p_owner->sout.psz_language )
- free( p_owner->sout.psz_language );
+ free( p_owner->sout.psz_language );
p_owner->sout.psz_language =
strdup( p_dec->fmt_in.psz_language );
}
if( p_owner->p_aout_input == NULL )
{
- const int i_force_dolby = config_GetInt( p_dec, "force-dolby-surround" );
+ const int i_force_dolby = var_InheritInteger( p_dec, "force-dolby-surround" );
audio_sample_format_t format;
aout_input_t *p_aout_input;
aout_instance_t *p_aout;
p_dec->fmt_out.video.i_width != p_owner->video.i_width ||
p_dec->fmt_out.video.i_height != p_owner->video.i_height ||
p_dec->fmt_out.video.i_chroma != p_owner->video.i_chroma ||
- p_dec->fmt_out.video.i_aspect != p_owner->video.i_aspect )
+ (int64_t)p_dec->fmt_out.video.i_sar_num * p_owner->video.i_sar_den !=
+ (int64_t)p_dec->fmt_out.video.i_sar_den * p_owner->video.i_sar_num )
{
vout_thread_t *p_vout;
var_CreateGetBool( p_dec, "hdtv-fix" ) )
{
p_dec->fmt_out.video.i_visible_height = 1080;
- p_dec->fmt_out.video.i_sar_num *= 135;
- p_dec->fmt_out.video.i_sar_den *= 136;
+ if( !(p_dec->fmt_out.video.i_sar_num % 136))
+ {
+ p_dec->fmt_out.video.i_sar_num *= 135;
+ p_dec->fmt_out.video.i_sar_den *= 136;
+ }
msg_Warn( p_dec, "Fixing broken HDTV stream (display_height=1088)");
}
if( !p_dec->fmt_out.video.i_sar_num ||
!p_dec->fmt_out.video.i_sar_den )
{
- p_dec->fmt_out.video.i_sar_num = p_dec->fmt_out.video.i_aspect *
- p_dec->fmt_out.video.i_visible_height;
-
- p_dec->fmt_out.video.i_sar_den = VOUT_ASPECT_FACTOR *
- p_dec->fmt_out.video.i_visible_width;
+ p_dec->fmt_out.video.i_sar_num = 1;
+ p_dec->fmt_out.video.i_sar_den = 1;
}
vlc_ureduce( &p_dec->fmt_out.video.i_sar_num,