X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fpacketizer%2Fvc1.c;h=0293febced9867d7c34926fb8e35e8e958aab344;hb=4a990366f601559a49fe18dddf7c41e004e1c03f;hp=83c7f500822ecb072d0f41aa5aa7efe52cc9da28;hpb=74e5a0727b83ea8bd5ee87dbce7596b990ef14c1;p=vlc diff --git a/modules/packetizer/vc1.c b/modules/packetizer/vc1.c index 83c7f50082..0293febced 100644 --- a/modules/packetizer/vc1.c +++ b/modules/packetizer/vc1.c @@ -35,8 +35,8 @@ #include #include -#include "vlc_bits.h" -#include "vlc_block_helper.h" +#include +#include #include "packetizer_helper.h" /***************************************************************************** @@ -138,6 +138,8 @@ static int Open( vlc_object_t *p_this ) /* Create the output format */ es_format_Copy( &p_dec->fmt_out, &p_dec->fmt_in ); p_dec->p_sys = p_sys = malloc( sizeof( decoder_sys_t ) ); + if( unlikely( !p_sys ) ) + return VLC_ENOMEM; packetizer_Init( &p_sys->packetizer, p_vc1_startcode, sizeof(p_vc1_startcode), @@ -203,7 +205,7 @@ static block_t *Packetize( decoder_t *p_dec, block_t **pp_block ) if( p_sys->b_check_startcode && pp_block && *pp_block ) { /* Fix syntax for (some?) VC1 from asf */ - const int i_startcode = sizeof(p_vc1_startcode); + const unsigned i_startcode = sizeof(p_vc1_startcode); block_t *p_block = *pp_block; if( p_block->i_buffer > 0 && @@ -309,7 +311,7 @@ static void BuildExtraData( decoder_t *p_dec ) if( p_es->i_extra != i_extra ) { p_es->i_extra = i_extra; - p_es->p_extra = realloc( p_dec->fmt_out.p_extra, p_es->i_extra ); + p_es->p_extra = xrealloc( p_es->p_extra, p_es->i_extra ); } memcpy( p_es->p_extra, p_sys->sh.p_sh->p_buffer, p_sys->sh.p_sh->i_buffer ); @@ -490,7 +492,8 @@ static block_t *ParseIDU( decoder_t *p_dec, bool *pb_used_ts, block_t *p_frag ) const int i_display_width = bs_read( &s, 14 )+1; const int i_display_height = bs_read( &s, 14 )+1; - p_es->video.i_aspect = VOUT_ASPECT_FACTOR * i_display_width / i_display_height; + p_es->video.i_sar_num = i_display_width * p_es->video.i_height; + p_es->video.i_sar_den = i_display_height * p_es->video.i_width; if( !p_sys->b_sequence_header ) msg_Dbg( p_dec, "display size %dx%d", i_display_width, i_display_height );