Browse Source

support de vout_DatePicture().

pull/2/head
Christophe Massiot 27 years ago
parent
commit
cf49edcd64
  1. 3
      include/vpar_synchro.h
  2. 14
      src/video_parser/vpar_headers.c
  3. 7
      src/video_parser/vpar_synchro.c

3
include/vpar_synchro.h

@ -51,4 +51,5 @@ void vpar_SynchroTrash( struct vpar_thread_s * p_vpar, int i_coding_type,
int i_structure );
void vpar_SynchroDecode( struct vpar_thread_s * p_vpar, int i_coding_type,
int i_structure );
mtime_t vpar_SynchroEnd( struct vpar_thread_s * p_vpar );
void vpar_SynchroEnd( struct vpar_thread_s * p_vpar );
mtime_t vpar_SynchroDate( struct vpar_thread_s * p_vpar );

14
src/video_parser/vpar_headers.c

@ -181,6 +181,11 @@ static void __inline__ ReferenceUpdate( vpar_thread_t * p_vpar,
{
if( p_vpar->sequence.p_forward != NULL )
vout_UnlinkPicture( p_vpar->p_vout, p_vpar->sequence.p_forward );
if( p_vpar->sequence.p_backward != NULL )
{
vout_DatePicture( p_vpar->p_vout, p_vpar->sequence.p_backward,
vpar_SynchroDate( p_vpar ) );
}
p_vpar->sequence.p_forward = p_vpar->sequence.p_backward;
p_vpar->sequence.p_backward = p_newref;
if( p_newref != NULL )
@ -678,9 +683,12 @@ static void PictureHeader( vpar_thread_t * p_vpar )
/* Initialize values. */
vpar_SynchroDecode( p_vpar, p_vpar->picture.i_coding_type, i_structure );
/* kludge to be removed once vpar_SynchroEnd is called properly */
P_picture->date = mdate() + 700000;
if( p_vpar->picture.i_coding_type == B_CODING_TYPE )
{
/* Put date immediately. */
vout_DatePicture( p_vpar->p_vout, P_picture,
vpar_SynchroDate( p_vpar ) );
}
P_picture->i_aspect_ratio = p_vpar->sequence.i_aspect_ratio;
P_picture->i_matrix_coefficients = p_vpar->sequence.i_matrix_coefficients;
p_vpar->picture.i_l_stride = ( p_vpar->sequence.i_width

7
src/video_parser/vpar_synchro.c

@ -177,9 +177,14 @@ void vpar_SynchroDecode( vpar_thread_t * p_vpar, int i_coding_type,
/*****************************************************************************
* vpar_SynchroEnd : Called when the image is totally decoded
*****************************************************************************/
mtime_t vpar_SynchroEnd( vpar_thread_t * p_vpar )
void vpar_SynchroEnd( vpar_thread_t * p_vpar )
{
// return mdate() + 700000;
}
mtime_t vpar_SynchroDate( vpar_thread_t * p_vpar )
{
return mdate() + 700000;
}

Loading…
Cancel
Save