return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
p_sys->i_avcC_length_size, pp_block,
- ParseNALBlockW );
+ ParseNALBlockW, PacketizeDrain );
}
/*****************************************************************************
return PacketizeXXC1( p_dec, VLC_OBJECT(p_dec),
p_sys->i_nal_length_size, pp_block,
- ParseNALBlockW );
+ ParseNALBlockW, PacketizeDrain );
}
static block_t *PacketizeAnnexB(decoder_t *p_dec, block_t **pp_block)
****************************************************************************/
block_t *PacketizeXXC1( void *p_private, vlc_object_t *p_obj,
uint8_t i_nal_length_size, block_t **pp_block,
- pf_annexb_nal_parse pf_nal_parser )
+ pf_annexb_nal_parse pf_nal_parser,
+ pf_annexb_nal_drain pf_nal_drain )
{
block_t *p_block;
block_t *p_ret = NULL;
uint8_t *p;
- if( !pp_block || !*pp_block )
+ if( !pp_block )
+ return pf_nal_drain ? pf_nal_drain( p_private ) : NULL;
+
+ if( !*pp_block )
return NULL;
if( (*pp_block)->i_flags&(BLOCK_FLAG_CORRUPTED) )
{
/* */
typedef block_t * (*pf_annexb_nal_parse)(void *, bool *, block_t *);
+typedef block_t * (*pf_annexb_nal_drain)(void *);
block_t *PacketizeXXC1( void *, vlc_object_t *obj,
uint8_t, block_t **,
- pf_annexb_nal_parse );
+ pf_annexb_nal_parse, pf_annexb_nal_drain );
#endif // HXXX_COMMON_H