Skip to content
Snippets Groups Projects
Commit 1ec1fb37 authored by François Cartegnie's avatar François Cartegnie :fingers_crossed:
Browse files

vout: add still frame state

still frames after a discontinuity must not
be revoked by previously sent pts
parent 494e0319
No related branches found
No related tags found
No related merge requests found
......@@ -91,6 +91,7 @@ struct picture_t
/**@{*/
vlc_tick_t date; /**< display date */
bool b_force;
bool b_still;
/**@}*/
/** \name Picture dynamic properties
......
......@@ -1305,6 +1305,8 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
/* Send decoded frame to vout */
if (i_pts != VLC_TICK_INVALID)
{
if(p_frame_info->b_eos)
p_pic->b_still = true;
p_sys->b_first_frame = false;
decoder_QueueVideo( p_dec, p_pic );
}
......
......@@ -1151,6 +1151,11 @@ static void DecoderPlayVideo( decoder_t *p_dec, picture_t *p_picture,
vout_Flush( p_vout, p_picture->date );
p_owner->i_last_rate = i_rate;
}
else if( p_picture->b_still )
{
/* Ensure no earlier higher pts breaks still state */
vout_Flush( p_vout, p_picture->date );
}
vout_PutPicture( p_vout, p_picture );
}
else
......
......@@ -93,6 +93,7 @@ void picture_Reset( picture_t *p_picture )
/* */
p_picture->date = VLC_TICK_INVALID;
p_picture->b_force = false;
p_picture->b_still = false;
p_picture->b_progressive = false;
p_picture->i_nb_fields = 2;
p_picture->b_top_field_first = false;
......@@ -387,6 +388,7 @@ void picture_CopyProperties( picture_t *p_dst, const picture_t *p_src )
{
p_dst->date = p_src->date;
p_dst->b_force = p_src->b_force;
p_dst->b_still = p_src->b_still;
p_dst->b_progressive = p_src->b_progressive;
p_dst->i_nb_fields = p_src->i_nb_fields;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment