int i_au_prepend;
const uint8_t *p_au_prepend;
+ unsigned i_au_min_size;
+
void *p_private;
packetizer_reset_t pf_reset;
packetizer_parse_t pf_parse;
static inline void packetizer_Init( packetizer_t *p_pack,
const uint8_t *p_startcode, int i_startcode,
const uint8_t *p_au_prepend, int i_au_prepend,
+ unsigned i_au_min_size,
packetizer_reset_t pf_reset,
packetizer_parse_t pf_parse,
packetizer_validate_t pf_validate,
p_pack->i_au_prepend = i_au_prepend;
p_pack->p_au_prepend = p_au_prepend;
+ p_pack->i_au_min_size = i_au_min_size;
p_pack->i_startcode = i_startcode;
p_pack->p_startcode = p_startcode;
p_pack->i_offset = 0;
/* Parse the NAL */
- p_pic = p_pack->pf_parse( p_pack->p_private, &b_used_ts, p_pic );
- if( b_used_ts )
+ if( p_pic->i_buffer < p_pack->i_au_min_size )
+ {
+ block_Release( p_pic );
+ p_pic = NULL;
+ }
+ else
{
- p_block_bytestream->i_dts = -1;
- p_block_bytestream->i_pts = -1;
+ p_pic = p_pack->pf_parse( p_pack->p_private, &b_used_ts, p_pic );
+ if( b_used_ts )
+ {
+ p_block_bytestream->i_dts = VLC_TS_INVALID;
+ p_block_bytestream->i_pts = VLC_TS_INVALID;
+ }
}
if( !p_pic )