diff options
Diffstat (limited to 'libmpdemux/demux_mov.c')
-rw-r--r-- | libmpdemux/demux_mov.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/libmpdemux/demux_mov.c b/libmpdemux/demux_mov.c index eca214caa0..432d0cad18 100644 --- a/libmpdemux/demux_mov.c +++ b/libmpdemux/demux_mov.c @@ -336,11 +336,10 @@ typedef struct { static int mov_check_file(demuxer_t* demuxer){ int flags=0; int no=0; - mov_priv_t* priv=malloc(sizeof(mov_priv_t)); + mov_priv_t* priv=calloc(1, sizeof(mov_priv_t)); mp_msg(MSGT_DEMUX,MSGL_V,"Checking for MOV\n"); - memset(priv,0,sizeof(mov_priv_t)); priv->current_sub = -1; while(1){ @@ -916,8 +915,7 @@ quit_vorbis_block: fclose(f); } #endif // Emulate WAVEFORMATEX struct: - sh->wf=malloc(sizeof(WAVEFORMATEX) + (is_vorbis ? sh->codecdata_len : 0)); - memset(sh->wf,0,sizeof(WAVEFORMATEX)); + sh->wf=calloc(1, sizeof(*sh->wf) + (is_vorbis ? sh->codecdata_len : 0)); sh->wf->nChannels=sh->channels; sh->wf->wBitsPerSample=(trak->stdata[18]<<8)+trak->stdata[19]; // sh->wf->nSamplesPerSec=trak->timescale; @@ -1161,8 +1159,7 @@ static int gen_sh_video(sh_video_t* sh, mov_track_t* trak, int timescale) { // emulate BITMAPINFOHEADER: if (palette_count) { - sh->bih=malloc(sizeof(BITMAPINFOHEADER) + palette_count * 4); - memset(sh->bih,0,sizeof(BITMAPINFOHEADER) + palette_count * 4); + sh->bih=calloc(1, sizeof(*sh->bih) + palette_count * 4); sh->bih->biSize=40 + palette_count * 4; // fetch the relevant fields flag = AV_RB16(&trak->stdata[hdr_ptr]); @@ -1246,20 +1243,18 @@ static int gen_sh_video(sh_video_t* sh, mov_track_t* trak, int timescale) { else { if (trak->fourcc == mmioFOURCC('a','v','c','1')) { - if (trak->stream_header_len > 0xffffffff - sizeof(BITMAPINFOHEADER)) { + if (trak->stream_header_len > 0xffffffff - sizeof(*sh->bih)) { mp_msg(MSGT_DEMUXER, MSGL_ERR, "Invalid extradata size %d, skipping\n",trak->stream_header_len); trak->stream_header_len = 0; } - sh->bih=malloc(sizeof(BITMAPINFOHEADER) + trak->stream_header_len); - memset(sh->bih,0,sizeof(BITMAPINFOHEADER) + trak->stream_header_len); + sh->bih=calloc(1, sizeof(*sh->bih) + trak->stream_header_len); sh->bih->biSize=40 + trak->stream_header_len; memcpy(((unsigned char *)sh->bih)+40, trak->stream_header, trak->stream_header_len); free (trak->stream_header); trak->stream_header_len = 0; trak->stream_header = NULL; } else { - sh->bih=malloc(sizeof(BITMAPINFOHEADER)); - memset(sh->bih,0,sizeof(BITMAPINFOHEADER)); + sh->bih=calloc(1, sizeof(*sh->bih)); sh->bih->biSize=40; } } @@ -1328,8 +1323,7 @@ static void lschunks(demuxer_t* demuxer,int level,off_t endpos,mov_track_t* trak return; } if(!priv->track_db) mp_msg(MSGT_DEMUX, MSGL_V, "--------------\n"); - trak=malloc(sizeof(mov_track_t)); - memset(trak,0,sizeof(mov_track_t)); + trak=calloc(1, sizeof(mov_track_t)); mp_msg(MSGT_DEMUX,MSGL_V,"MOV: Track #%d:\n",priv->track_db); trak->id=priv->track_db; priv->tracks[priv->track_db]=trak; |