Mercurial > mplayer.hg
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); |