From: Laurent Aimar Date: Tue, 28 Apr 2009 19:46:37 +0000 (+0200) Subject: Added and used a packetizer_Header for packetizers. X-Git-Tag: 1.0.0-rc1~176 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=d813da5e18facf3287555fdc5ea22b3d516578b1;p=vlc Added and used a packetizer_Header for packetizers. --- diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c index d1f7f88262..534ee7bcbe 100644 --- a/modules/packetizer/h264.c +++ b/modules/packetizer/h264.c @@ -355,19 +355,8 @@ static int Open( vlc_object_t *p_this ) /* */ if( p_dec->fmt_in.i_extra > 0 ) - { - block_t *p_init = block_New( p_dec, p_dec->fmt_in.i_extra ); - block_t *p_pic; - - memcpy( p_init->p_buffer, p_dec->fmt_in.p_extra, - p_dec->fmt_in.i_extra ); - - while( ( p_pic = Packetize( p_dec, &p_init ) ) ) - { - /* Should not occur because we should only receive SPS/PPS */ - block_Release( p_pic ); - } - } + packetizer_Header( &p_sys->packetizer, + p_dec->fmt_in.p_extra, p_dec->fmt_in.i_extra ); } return VLC_SUCCESS; diff --git a/modules/packetizer/packetizer_helper.h b/modules/packetizer/packetizer_helper.h index 33e9c77cda..1128a4dc0d 100644 --- a/modules/packetizer/packetizer_helper.h +++ b/modules/packetizer/packetizer_helper.h @@ -182,5 +182,19 @@ static inline block_t *packetizer_Packetize( packetizer_t *p_pack, block_t **pp_ } } +static inline void packetizer_Header( packetizer_t *p_pack, + const uint8_t *p_header, int i_header ) +{ + block_t *p_init = block_Alloc( i_header ); + if( !p_init ) + return; + + memcpy( p_init->p_buffer, p_header, i_header ); + + block_t *p_pic; + while( ( p_pic = packetizer_Packetize( p_pack, &p_init ) ) ) + block_Release( p_pic ); /* Should not happen (only sequence header) */ +} + #endif diff --git a/modules/packetizer/vc1.c b/modules/packetizer/vc1.c index 2cd4bc8b71..f8edd3a645 100644 --- a/modules/packetizer/vc1.c +++ b/modules/packetizer/vc1.c @@ -165,16 +165,8 @@ static int Open( vlc_object_t *p_this ) /* */ if( p_dec->fmt_out.i_extra > 0 ) - { - block_t *p_init = block_New( p_dec, p_dec->fmt_out.i_extra ); - - memcpy( p_init->p_buffer, p_dec->fmt_out.p_extra, - p_dec->fmt_out.i_extra ); - - block_t *p_pic; - while( ( p_pic = Packetize( p_dec, &p_init ) ) ) - block_Release( p_pic ); /* Should not happen (only sequence header) */ - } + packetizer_Header( &p_sys->packetizer, + p_dec->fmt_out.p_extra, p_dec->fmt_out.i_extra ); } return VLC_SUCCESS;