comparison libmpdemux/demux_avi.c @ 29872:76e81f47bce2

Use calloc instead of initializing each struct member individually to 0.
author reimar
date Mon, 16 Nov 2009 10:44:00 +0000
parents a90c7676bf0e
children 4f740437ed2b
comparison
equal deleted inserted replaced
29871:a90c7676bf0e 29872:76e81f47bce2
435 static demuxer_t* demux_open_avi(demuxer_t* demuxer){ 435 static demuxer_t* demux_open_avi(demuxer_t* demuxer){
436 demux_stream_t *d_audio=demuxer->audio; 436 demux_stream_t *d_audio=demuxer->audio;
437 demux_stream_t *d_video=demuxer->video; 437 demux_stream_t *d_video=demuxer->video;
438 sh_audio_t *sh_audio=NULL; 438 sh_audio_t *sh_audio=NULL;
439 sh_video_t *sh_video=NULL; 439 sh_video_t *sh_video=NULL;
440 avi_priv_t* priv=malloc(sizeof(avi_priv_t)); 440 avi_priv_t* priv=calloc(1, sizeof(avi_priv_t));
441
442 // priv struct:
443 priv->avi_audio_pts=priv->avi_video_pts=0.0f;
444 priv->pts_correction=0.0f;
445 priv->skip_video_frames=0;
446 priv->pts_corr_bytes=0;
447 priv->pts_has_video=priv->pts_corrected=0;
448 priv->video_pack_no=0;
449 priv->audio_block_no=0;
450 priv->audio_block_size=0;
451 priv->isodml = 0;
452 priv->suidx_size = 0;
453 priv->suidx = NULL;
454 priv->warned_unaligned = 0;
455 441
456 demuxer->priv=(void*)priv; 442 demuxer->priv=(void*)priv;
457 443
458 //---- AVI header: 444 //---- AVI header:
459 read_avi_header(demuxer,(demuxer->stream->flags & STREAM_SEEK_BW)?index_mode:-2); 445 read_avi_header(demuxer,(demuxer->stream->flags & STREAM_SEEK_BW)?index_mode:-2);
467 demuxer->video->id=-1; // autodetect 453 demuxer->video->id=-1; // autodetect
468 } 454 }
469 455
470 stream_reset(demuxer->stream); 456 stream_reset(demuxer->stream);
471 stream_seek(demuxer->stream,demuxer->movi_start); 457 stream_seek(demuxer->stream,demuxer->movi_start);
472 priv->idx_pos=0;
473 priv->idx_pos_a=0;
474 priv->idx_pos_v=0;
475 if(priv->idx_size>1){ 458 if(priv->idx_size>1){
476 // decide index format: 459 // decide index format:
477 #if 1 460 #if 1
478 if((AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[0])<demuxer->movi_start || 461 if((AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[0])<demuxer->movi_start ||
479 AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[1])<demuxer->movi_start )&& !priv->isodml) 462 AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[1])<demuxer->movi_start )&& !priv->isodml)
480 priv->idx_offset=demuxer->movi_start-4; 463 priv->idx_offset=demuxer->movi_start-4;
481 else
482 priv->idx_offset=0;
483 #else 464 #else
484 if(AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[0])<demuxer->movi_start) 465 if(AVI_IDX_OFFSET(&((AVIINDEXENTRY *)priv->idx)[0])<demuxer->movi_start)
485 priv->idx_offset=demuxer->movi_start-4; 466 priv->idx_offset=demuxer->movi_start-4;
486 else
487 priv->idx_offset=0;
488 #endif 467 #endif
489 mp_msg(MSGT_DEMUX,MSGL_V,"AVI index offset: 0x%X (movi=0x%X idx0=0x%X idx1=0x%X)\n", 468 mp_msg(MSGT_DEMUX,MSGL_V,"AVI index offset: 0x%X (movi=0x%X idx0=0x%X idx1=0x%X)\n",
490 (int)priv->idx_offset,(int)demuxer->movi_start, 469 (int)priv->idx_offset,(int)demuxer->movi_start,
491 (int)((AVIINDEXENTRY *)priv->idx)[0].dwChunkOffset, 470 (int)((AVIINDEXENTRY *)priv->idx)[0].dwChunkOffset,
492 (int)((AVIINDEXENTRY *)priv->idx)[1].dwChunkOffset); 471 (int)((AVIINDEXENTRY *)priv->idx)[1].dwChunkOffset);