diff options
45 files changed, 143 insertions, 173 deletions
diff --git a/TOOLS/vivodump.c b/TOOLS/vivodump.c index 2893fa29a0..5c2e81c23b 100644 --- a/TOOLS/vivodump.c +++ b/TOOLS/vivodump.c @@ -212,8 +212,8 @@ mux->buffer=malloc(mux->buffer_size); mux->h.dwScale=1; mux->h.dwRate=10; -mux->bih=malloc(sizeof(BITMAPINFOHEADER)); -mux->bih->biSize=sizeof(BITMAPINFOHEADER); +mux->bih=malloc(sizeof(*mux->bih)); +mux->bih->biSize=sizeof(*mux->bih); mux->bih->biPlanes=1; mux->bih->biBitCount=24; mux->bih->biCompression=0x6f766976;// 7669766f; diff --git a/libmpcodecs/ad_acm.c b/libmpcodecs/ad_acm.c index 46af4fae7d..1b1184a06a 100644 --- a/libmpcodecs/ad_acm.c +++ b/libmpcodecs/ad_acm.c @@ -71,7 +71,7 @@ static int preinit(sh_audio_t *sh_audio) // priv->handle = NULL; - priv->o_wf = malloc(sizeof(WAVEFORMATEX)); + priv->o_wf = malloc(sizeof(*priv->o_wf)); if (!priv->o_wf) { mp_tmsg(MSGT_DECAUDIO,MSGL_ERR,"Could not load/initialize Win32/ACM audio codec (missing DLL file?).\n"); diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c index 6dd5dcf492..7c398af5b0 100644 --- a/libmpcodecs/ad_ffmpeg.c +++ b/libmpcodecs/ad_ffmpeg.c @@ -129,7 +129,7 @@ static int init(sh_audio_t *sh_audio) if (sh_audio->wf && sh_audio->wf->cbSize > 0) { lavc_context->extradata = av_mallocz(sh_audio->wf->cbSize + FF_INPUT_BUFFER_PADDING_SIZE); lavc_context->extradata_size = sh_audio->wf->cbSize; - memcpy(lavc_context->extradata, (char *)sh_audio->wf + sizeof(WAVEFORMATEX), + memcpy(lavc_context->extradata, sh_audio->wf + 1, lavc_context->extradata_size); } diff --git a/libmpcodecs/ad_mpc.c b/libmpcodecs/ad_mpc.c index 33ed911f72..31463abcb7 100644 --- a/libmpcodecs/ad_mpc.c +++ b/libmpcodecs/ad_mpc.c @@ -134,8 +134,7 @@ static int init(sh_audio_t *sh) { mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Missing extradata!\n"); return 0; } - cd->header = (char *)sh->wf; - cd->header = &cd->header[sizeof(WAVEFORMATEX)]; + cd->header = (char *)(sh->wf + 1); cd->header_len = sh->wf->cbSize; cd->sh = sh; cd->pos = 0; diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c index 30ee162743..1bb7c2e94b 100644 --- a/libmpcodecs/vd_ffmpeg.c +++ b/libmpcodecs/vd_ffmpeg.c @@ -294,10 +294,10 @@ static int init(sh_video_t *sh){ /* AVRn stores huffman table in AVI header */ /* Pegasus MJPEG stores it also in AVI header, but it uses the common MJPG fourcc :( */ - if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER)) + if (!sh->bih || sh->bih->biSize <= sizeof(*sh->bih)) break; avctx->flags |= CODEC_FLAG_EXTERN_HUFF; - avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER); + avctx->extradata_size = sh->bih->biSize-sizeof(*sh->bih); avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); @@ -327,7 +327,7 @@ static int init(sh_video_t *sh){ (sh->format == mmioFOURCC('R', 'V', '1', '3')) ? 0x10003001 : 0x10000000; } else { /* has extra slice header (demux_rm or rm->avi streamcopy) */ - avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER); + avctx->extradata_size = sh->bih->biSize-sizeof(*sh->bih); avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); } @@ -337,9 +337,9 @@ static int init(sh_video_t *sh){ break; default: - if (!sh->bih || sh->bih->biSize <= sizeof(BITMAPINFOHEADER)) + if (!sh->bih || sh->bih->biSize <= sizeof(*sh->bih)) break; - avctx->extradata_size = sh->bih->biSize-sizeof(BITMAPINFOHEADER); + avctx->extradata_size = sh->bih->biSize-sizeof(*sh->bih); avctx->extradata = av_mallocz(avctx->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); memcpy(avctx->extradata, sh->bih+1, avctx->extradata_size); break; @@ -348,10 +348,10 @@ static int init(sh_video_t *sh){ if (sh->bih && (sh->bih->biBitCount <= 8)) { avctx->palctrl = calloc(1, sizeof(AVPaletteControl)); avctx->palctrl->palette_changed = 1; - if (sh->bih->biSize-sizeof(BITMAPINFOHEADER)) + if (sh->bih->biSize-sizeof(*sh->bih)) /* Palette size in biSize */ memcpy(avctx->palctrl->palette, sh->bih+1, - FFMIN(sh->bih->biSize-sizeof(BITMAPINFOHEADER), AVPALETTE_SIZE)); + FFMIN(sh->bih->biSize-sizeof(*sh->bih), AVPALETTE_SIZE)); else /* Palette size in biClrUsed */ memcpy(avctx->palctrl->palette, sh->bih+1, diff --git a/libmpcodecs/vd_qtvideo.c b/libmpcodecs/vd_qtvideo.c index b0340e5020..1847291b0b 100644 --- a/libmpcodecs/vd_qtvideo.c +++ b/libmpcodecs/vd_qtvideo.c @@ -98,7 +98,7 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){ // init driver static int init(sh_video_t *sh){ OSErr result = 1; - int extradata_size = sh->bih ? sh->bih->biSize - sizeof(BITMAPINFOHEADER) : 0; + int extradata_size = sh->bih ? sh->bih->biSize - sizeof(*sh->bih) : 0; void *extradata = sh->bih + 1; if (!sh->ImageDesc) diff --git a/libmpcodecs/vd_realvid.c b/libmpcodecs/vd_realvid.c index 04ac9efba7..c0994952ab 100644 --- a/libmpcodecs/vd_realvid.c +++ b/libmpcodecs/vd_realvid.c @@ -282,11 +282,11 @@ static int init(sh_video_t *sh){ int result; // we export codec id and sub-id from demuxer in bitmapinfohdr: unsigned char* extrahdr=(unsigned char*)(sh->bih+1); - unsigned int extrahdr_size = sh->bih->biSize - sizeof(BITMAPINFOHEADER); + unsigned int extrahdr_size = sh->bih->biSize - sizeof(*sh->bih); struct rv_init_t init_data; if(extrahdr_size < 8) { - mp_msg(MSGT_DECVIDEO,MSGL_ERR,"realvideo: extradata too small (%u)\n", sh->bih->biSize - sizeof(BITMAPINFOHEADER)); + mp_msg(MSGT_DECVIDEO,MSGL_ERR,"realvideo: extradata too small (%u)\n", extrahdr_size); return 0; } init_data = (struct rv_init_t){11, sh->disp_w, sh->disp_h, 0, 0, AV_RB32(extrahdr), 1, AV_RB32(extrahdr + 4)}; // rv30 diff --git a/libmpcodecs/ve_lavc.c b/libmpcodecs/ve_lavc.c index b36dad73ee..258dbf2cc5 100644 --- a/libmpcodecs/ve_lavc.c +++ b/libmpcodecs/ve_lavc.c @@ -927,8 +927,7 @@ static int vf_open(vf_instance_t *vf, char* args){ vf->control=control; vf->query_format=query_format; vf->put_image=put_image; - vf->priv=malloc(sizeof(struct vf_priv_s)); - memset(vf->priv,0,sizeof(struct vf_priv_s)); + vf->priv=calloc(1, sizeof(struct vf_priv_s)); vf->priv->mux=(muxer_stream_t*)args; /* XXX: hack: some of the MJPEG decoder DLL's needs exported huffman @@ -936,40 +935,34 @@ static int vf_open(vf_instance_t *vf, char* args){ huffman tables into the stream, so no problem */ if (lavc_param_vcodec && !strcasecmp(lavc_param_vcodec, "mjpeg")) { - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)+28); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)+28); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)+28); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER)+28; } else if (lavc_param_vcodec && (!strcasecmp(lavc_param_vcodec, "huffyuv") || !strcasecmp(lavc_param_vcodec, "ffvhuff"))) { /* XXX: hack: huffyuv needs to store huffman tables (allthough we dunno the size yet ...) */ - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)+1000); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)+1000); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)+1000); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER)+1000; } else if (lavc_param_vcodec && !strcasecmp(lavc_param_vcodec, "asv1")) { - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)+8); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)+8); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)+8); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER)+8; } else if (lavc_param_vcodec && !strcasecmp(lavc_param_vcodec, "asv2")) { - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)+8); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)+8); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)+8); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER)+8; } else if (lavc_param_vcodec && !strcasecmp(lavc_param_vcodec, "wmv2")) { - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)+4); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)+4); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)+4); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER)+4; } else { - mux_v->bih=malloc(sizeof(BITMAPINFOHEADER)); - memset(mux_v->bih, 0, sizeof(BITMAPINFOHEADER)); + mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)); mux_v->bih->biSize=sizeof(BITMAPINFOHEADER); } mux_v->bih->biWidth=0; diff --git a/libmpcodecs/ve_libdv.c b/libmpcodecs/ve_libdv.c index f1e265398e..99808e34e8 100644 --- a/libmpcodecs/ve_libdv.c +++ b/libmpcodecs/ve_libdv.c @@ -113,8 +113,8 @@ static int vf_open(vf_instance_t *vf, char* args){ vf->priv->enc=dv_encoder_new(0,1,1); // FIXME, parse some options! if(!vf->priv->enc) return 0; - mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)); - mux_v->bih->biSize=sizeof(BITMAPINFOHEADER); + mux_v->bih=calloc(1, sizeof(*mux_v->bih)); + mux_v->bih->biSize=sizeof(*mux_v->bih); mux_v->bih->biWidth=0; mux_v->bih->biHeight=0; mux_v->bih->biCompression=mmioFOURCC('d','v','s','d'); diff --git a/libmpcodecs/ve_nuv.c b/libmpcodecs/ve_nuv.c index 9fe25d4154..807fff5517 100644 --- a/libmpcodecs/ve_nuv.c +++ b/libmpcodecs/ve_nuv.c @@ -225,8 +225,8 @@ static int vf_open(vf_instance_t *vf, char* args){ memcpy(vf->priv, &nuv_priv_dflt,sizeof(struct vf_priv_s)); vf->priv->mux=(muxer_stream_t*)args; - mux_v->bih=calloc(1, sizeof(BITMAPINFOHEADER)); - mux_v->bih->biSize=sizeof(BITMAPINFOHEADER); + mux_v->bih=calloc(1, sizeof(*mux_v->bih)); + mux_v->bih->biSize=sizeof(*mux_v->bih); mux_v->bih->biWidth=0; mux_v->bih->biHeight=0; mux_v->bih->biPlanes=1; diff --git a/libmpcodecs/ve_x264.c b/libmpcodecs/ve_x264.c index c14b71ab55..47a636b3cc 100644 --- a/libmpcodecs/ve_x264.c +++ b/libmpcodecs/ve_x264.c @@ -182,9 +182,9 @@ static int config(struct vf_instance *vf, int width, int height, int d_width, in extradata_size = x264_encoder_headers(mod->x264, &nal, &nnal); - mod->mux->bih= realloc(mod->mux->bih, sizeof(BITMAPINFOHEADER) + extradata_size); + mod->mux->bih= realloc(mod->mux->bih, sizeof(*mod->mux->bih) + extradata_size); memcpy(mod->mux->bih + 1, nal->p_payload, extradata_size); - mod->mux->bih->biSize= sizeof(BITMAPINFOHEADER) + extradata_size; + mod->mux->bih->biSize= sizeof(*mod->mux->bih) + extradata_size; } if (param.i_bframe > 1 && param.i_bframe_pyramid) @@ -290,9 +290,8 @@ static int vf_open(vf_instance_t *vf, char *args) { mod=(h264_module_t*)vf->priv; mod->mux = (muxer_stream_t*)args; - mod->mux->bih = malloc(sizeof(BITMAPINFOHEADER)); - memset(mod->mux->bih, 0, sizeof(BITMAPINFOHEADER)); - mod->mux->bih->biSize = sizeof(BITMAPINFOHEADER); + mod->mux->bih = calloc(1, sizeof(*mod->mux->bih)); + mod->mux->bih->biSize = sizeof(*mod->mux->bih); mod->mux->bih->biPlanes = 1; mod->mux->bih->biBitCount = 24; mod->mux->bih->biCompression = mmioFOURCC('h', '2', '6', '4'); diff --git a/libmpcodecs/ve_xvid4.c b/libmpcodecs/ve_xvid4.c index fc6aa2d23b..778817c25f 100644 --- a/libmpcodecs/ve_xvid4.c +++ b/libmpcodecs/ve_xvid4.c @@ -602,7 +602,7 @@ vf_open(vf_instance_t *vf, char* args) mod->mux = (muxer_stream_t*)args; /* Initialize muxer BITMAP header */ - mod->mux->bih = calloc(1, sizeof(BITMAPINFOHEADER)); + mod->mux->bih = calloc(1, sizeof(*mod->mux->bih)); if(mod->mux->bih == NULL) { mp_msg(MSGT_MENCODER,MSGL_ERR, @@ -610,7 +610,7 @@ vf_open(vf_instance_t *vf, char* args) return BAD; } - mod->mux->bih->biSize = sizeof(BITMAPINFOHEADER); + mod->mux->bih->biSize = sizeof(*mod->mux->bih); mod->mux->bih->biWidth = 0; mod->mux->bih->biHeight = 0; mod->mux->bih->biPlanes = 1; diff --git a/libmpdemux/asfheader.c b/libmpdemux/asfheader.c index b1058ae011..033d065606 100644 --- a/libmpdemux/asfheader.c +++ b/libmpdemux/asfheader.c @@ -344,7 +344,7 @@ static int asf_init_audio_stream(demuxer_t *demuxer,struct asf_priv* asf, sh_aud uint8_t *buffer = *buf; int pos = *ppos; - sh_audio->wf=calloc((streamh->type_size<sizeof(WAVEFORMATEX))?sizeof(WAVEFORMATEX):streamh->type_size,1); + sh_audio->wf=calloc((streamh->type_size<sizeof(*sh_audio->wf))?sizeof(*sh_audio->wf):streamh->type_size,1); memcpy(sh_audio->wf,buffer,streamh->type_size); le2me_WAVEFORMATEX(sh_audio->wf); if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_wave_header(sh_audio->wf,MSGL_V); @@ -493,10 +493,10 @@ int read_asf_header(demuxer_t *demuxer,struct asf_priv* asf){ len=streamh->type_size-(4+4+1+2); ++video_streams; // sh_video->bih=malloc(chunksize); memset(sh_video->bih,0,chunksize); - sh_video->bih=calloc((len<sizeof(BITMAPINFOHEADER))?sizeof(BITMAPINFOHEADER):len,1); + sh_video->bih=calloc((len<sizeof(*sh_video->bih))?sizeof(*sh_video->bih):len,1); memcpy(sh_video->bih,&buffer[4+4+1+2],len); le2me_BITMAPINFOHEADER(sh_video->bih); - if (sh_video->bih->biSize > len && sh_video->bih->biSize > sizeof(BITMAPINFOHEADER)) + if (sh_video->bih->biSize > len && sh_video->bih->biSize > sizeof(*sh_video->bih)) sh_video->bih->biSize = len; if (sh_video->bih->biCompression == mmioFOURCC('D', 'V', 'R', ' ')) { //mp_tmsg(MSGT_DEMUXER, MSGL_WARN, "DVR will probably only work with libavformat, try -demuxer 35 if you have problems\n"); diff --git a/libmpdemux/aviheader.c b/libmpdemux/aviheader.c index 27d1e4a27f..ac3a7f7ae6 100644 --- a/libmpdemux/aviheader.c +++ b/libmpdemux/aviheader.c @@ -265,12 +265,12 @@ while(1){ break; } case ckidSTREAMFORMAT: { // read 'strf' if(last_fccType==streamtypeVIDEO){ - sh_video->bih=calloc(FFMAX(chunksize, sizeof(BITMAPINFOHEADER)), 1); + sh_video->bih=calloc(FFMAX(chunksize, sizeof(*sh_video->bih)), 1); // sh_video->bih=malloc(chunksize); memset(sh_video->bih,0,chunksize); - mp_tmsg(MSGT_HEADER,MSGL_V,"Found 'bih', %u bytes of %d\n",chunksize,sizeof(BITMAPINFOHEADER)); + mp_tmsg(MSGT_HEADER,MSGL_V,"Found 'bih', %u bytes of %d\n",chunksize,sizeof(*sh_video->bih)); stream_read(demuxer->stream,(char*) sh_video->bih,chunksize); le2me_BITMAPINFOHEADER(sh_video->bih); // swap to machine endian - if (sh_video->bih->biSize > chunksize && sh_video->bih->biSize > sizeof(BITMAPINFOHEADER)) + if (sh_video->bih->biSize > chunksize && sh_video->bih->biSize > sizeof(*sh_video->bih)) sh_video->bih->biSize = chunksize; // fixup MS-RLE header (seems to be broken for <256 color files) if(sh_video->bih->biCompression<=1 && sh_video->bih->biSize==40) @@ -320,15 +320,15 @@ while(1){ } } else if(last_fccType==streamtypeAUDIO){ - unsigned wf_size = chunksize<sizeof(WAVEFORMATEX)?sizeof(WAVEFORMATEX):chunksize; + unsigned wf_size = chunksize<sizeof(*sh_audio->wf)?sizeof(*sh_audio->wf):chunksize; sh_audio->wf=calloc(wf_size,1); // sh_audio->wf=malloc(chunksize); memset(sh_audio->wf,0,chunksize); - mp_tmsg(MSGT_HEADER,MSGL_V,"Found 'wf', %d bytes of %d\n",chunksize,sizeof(WAVEFORMATEX)); + mp_tmsg(MSGT_HEADER,MSGL_V,"Found 'wf', %d bytes of %d\n",chunksize,sizeof(*sh_audio->wf)); stream_read(demuxer->stream,(char*) sh_audio->wf,chunksize); le2me_WAVEFORMATEX(sh_audio->wf); if (sh_audio->wf->cbSize != 0 && - wf_size < sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize) { - sh_audio->wf=realloc(sh_audio->wf, sizeof(WAVEFORMATEX)+sh_audio->wf->cbSize); + wf_size < sizeof(*sh_audio->wf)+sh_audio->wf->cbSize) { + sh_audio->wf=realloc(sh_audio->wf, sizeof(*sh_audio->wf)+sh_audio->wf->cbSize); } sh_audio->format=sh_audio->wf->wFormatTag; if (sh_audio->format == 1 && diff --git a/libmpdemux/aviprint.c b/libmpdemux/aviprint.c index f83bcd3756..e7520a42c5 100644 --- a/libmpdemux/aviprint.c +++ b/libmpdemux/aviprint.c @@ -117,12 +117,12 @@ void print_video_header(BITMAPINFOHEADER *h, int verbose_level){ mp_msg(MSGT_HEADER, verbose_level, " biBitCount %d\n", h->biBitCount); mp_msg(MSGT_HEADER, verbose_level, " biCompression %d='%.4s'\n", h->biCompression, (char *)&h->biCompression); mp_msg(MSGT_HEADER, verbose_level, " biSizeImage %d\n", h->biSizeImage); - if (h->biSize > sizeof(BITMAPINFOHEADER)) + if (h->biSize > sizeof(*h)) { int i; uint8_t* p = (uint8_t*)(h + 1); mp_msg(MSGT_HEADER, verbose_level, "Unknown extra header dump: "); - for (i = 0; i < h->biSize-sizeof(BITMAPINFOHEADER); i++) + for (i = 0; i < h->biSize-sizeof(*h); i++) mp_msg(MSGT_HEADER, verbose_level, "[%x] ", *(p+i)); mp_msg(MSGT_HEADER, verbose_level, "\n"); } diff --git a/libmpdemux/demux_audio.c b/libmpdemux/demux_audio.c index 38f1d2afd2..16118a4139 100644 --- a/libmpdemux/demux_audio.c +++ b/libmpdemux/demux_audio.c @@ -333,7 +333,7 @@ static int demux_audio_open(demuxer_t* demuxer) { sh_audio->audio.dwSampleSize= 0; sh_audio->audio.dwScale = mp3_found->mpa_spf; sh_audio->audio.dwRate = mp3_found->mp3_freq; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); sh_audio->wf->wFormatTag = sh_audio->format; sh_audio->wf->nChannels = mp3_found->mp3_chans; sh_audio->wf->nSamplesPerSec = mp3_found->mp3_freq; @@ -394,7 +394,7 @@ static int demux_audio_open(demuxer_t* demuxer) { mp_msg(MSGT_DEMUX,MSGL_ERR,"[demux_audio] Bad wav header length: too long (%d)!!!\n",l); l = 16; } - sh_audio->wf = w = malloc(l > sizeof(WAVEFORMATEX) ? l : sizeof(WAVEFORMATEX)); + sh_audio->wf = w = malloc(l > sizeof(*w) ? l : sizeof(*w)); w->wFormatTag = sh_audio->format = stream_read_word_le(s); w->nChannels = sh_audio->channels = stream_read_word_le(s); w->nSamplesPerSec = sh_audio->samplerate = stream_read_dword_le(s); @@ -413,7 +413,7 @@ static int demux_audio_open(demuxer_t* demuxer) { l,w->cbSize); w->cbSize = l; } - stream_read(s,(char*)((char*)(w)+sizeof(WAVEFORMATEX)),w->cbSize); + stream_read(s,(char*)(w + 1),w->cbSize); l -= w->cbSize; if (w->wFormatTag & 0xfffe && w->cbSize >= 22) sh_audio->format = ((WAVEFORMATEXTENSIBLE *)w)->SubFormat; diff --git a/libmpdemux/demux_avs.c b/libmpdemux/demux_avs.c index 33fc01ab0d..e90e36c1a7 100644 --- a/libmpdemux/demux_avs.c +++ b/libmpdemux/demux_avs.c @@ -299,7 +299,7 @@ static demuxer_t* demux_open_avs(demuxer_t* demuxer) sh_video->fps = (double) AVS->video_info->fps_numerator / (double) AVS->video_info->fps_denominator; sh_video->frametime = 1.0 / sh_video->fps; - sh_video->bih = malloc(sizeof(BITMAPINFOHEADER) + (256 * 4)); + sh_video->bih = malloc(sizeof(*sh_video->bih) + (256 * 4)); sh_video->bih->biCompression = sh_video->format; sh_video->bih->biBitCount = avs_bits_per_pixel(AVS->video_info); //sh_video->bih->biPlanes = 2; @@ -332,7 +332,7 @@ static demuxer_t* demux_open_avs(demuxer_t* demuxer) demuxer->audio->sh = sh_audio; sh_audio->ds = demuxer->audio; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); sh_audio->wf->wFormatTag = sh_audio->format = (AVS->video_info->sample_type == AVS_SAMPLE_FLOAT) ? 0x3 : 0x1; sh_audio->wf->nChannels = sh_audio->channels = AVS->video_info->nchannels; diff --git a/libmpdemux/demux_film.c b/libmpdemux/demux_film.c index e337fe1c14..57d8296d80 100644 --- a/libmpdemux/demux_film.c +++ b/libmpdemux/demux_film.c @@ -325,7 +325,7 @@ static demuxer_t* demux_open_film(demuxer_t* demuxer) demuxer->audio->sh = sh_audio; sh_audio->ds = demuxer->audio; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); // uncompressed PCM format sh_audio->wf->wFormatTag = 1; @@ -356,7 +356,7 @@ static demuxer_t* demux_open_film(demuxer_t* demuxer) demuxer->audio->sh = sh_audio; sh_audio->ds = demuxer->audio; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); // uncompressed PCM format sh_audio->wf->wFormatTag = 1; diff --git a/libmpdemux/demux_gif.c b/libmpdemux/demux_gif.c index 0a59bff5d8..d82728ffb6 100644 --- a/libmpdemux/demux_gif.c +++ b/libmpdemux/demux_gif.c @@ -279,7 +279,7 @@ static demuxer_t* demux_open_gif(demuxer_t* demuxer) sh_video->fps = 5.0f; sh_video->frametime = 1.0f / sh_video->fps; - sh_video->bih = malloc(sizeof(BITMAPINFOHEADER) + (256 * 4)); + sh_video->bih = malloc(sizeof(*sh_video->bih) + (256 * 4)); sh_video->bih->biCompression = sh_video->format; sh_video->bih->biWidth = priv->w = (uint16_t)gif->SWidth; sh_video->bih->biHeight = priv->h = (uint16_t)gif->SHeight; diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index af77d6aef3..098ee3786d 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -275,7 +275,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { break; stream_type = "audio"; priv->astreams[priv->audio_streams] = i; - wf= calloc(sizeof(WAVEFORMATEX) + codec->extradata_size, 1); + wf= calloc(sizeof(*wf) + codec->extradata_size, 1); // mp4a tag is used for all mp4 files no matter what they actually contain if(codec->codec_tag == MKTAG('m', 'p', '4', 'a')) codec->codec_tag= 0; @@ -351,7 +351,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { if(!sh_video) break; stream_type = "video"; priv->vstreams[priv->video_streams] = i; - bih=calloc(sizeof(BITMAPINFOHEADER) + codec->extradata_size,1); + bih=calloc(sizeof(*bih) + codec->extradata_size,1); if(codec->codec_id == CODEC_ID_RAWVIDEO) { switch (codec->pix_fmt) { @@ -361,7 +361,7 @@ static void handle_stream(demuxer_t *demuxer, AVFormatContext *avfc, int i) { } if(!codec->codec_tag) codec->codec_tag= mp_av_codec_get_tag(mp_bmp_taglists, codec->codec_id); - bih->biSize= sizeof(BITMAPINFOHEADER) + codec->extradata_size; + bih->biSize= sizeof(*bih) + codec->extradata_size; bih->biWidth= codec->width; bih->biHeight= codec->height; bih->biBitCount= codec->bits_per_coded_sample; diff --git a/libmpdemux/demux_lmlm4.c b/libmpdemux/demux_lmlm4.c index 7f95e36de0..05cec05282 100644 --- a/libmpdemux/demux_lmlm4.c +++ b/libmpdemux/demux_lmlm4.c @@ -309,8 +309,7 @@ static demuxer_t* demux_open_lmlm4(demuxer_t* demuxer){ sh_video->disp_h = 480; sh_video->format = mmioFOURCC('D','I','V','X'); - sh_video->bih = malloc(sizeof(BITMAPINFOHEADER)); - memset(sh_video->bih, 0, sizeof(BITMAPINFOHEADER)); + sh_video->bih = calloc(1, sizeof(*sh_video->bih)); /* these are false values */ sh_video->bih->biSize = 40; @@ -325,8 +324,7 @@ static demuxer_t* demux_open_lmlm4(demuxer_t* demuxer){ demuxer->audio->sh = sh_audio; sh_audio->ds = demuxer->audio; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh_audio->wf, 0, sizeof(WAVEFORMATEX)); + sh_audio->wf = calloc(1, sizeof(*sh_audio->wf)); sh_audio->samplerate = 48000; sh_audio->wf->wBitsPerSample = 16; diff --git a/libmpdemux/demux_mf.c b/libmpdemux/demux_mf.c index cc6f6be6a8..e4405aedad 100644 --- a/libmpdemux/demux_mf.c +++ b/libmpdemux/demux_mf.c @@ -159,8 +159,7 @@ static demuxer_t* demux_open_mf(demuxer_t* demuxer){ sh_video->frametime = 1 / sh_video->fps; // emulate BITMAPINFOHEADER: - sh_video->bih=malloc(sizeof(BITMAPINFOHEADER)); - memset(sh_video->bih,0,sizeof(BITMAPINFOHEADER)); + sh_video->bih=calloc(1, sizeof(*sh_video->bih)); sh_video->bih->biSize=40; sh_video->bih->biWidth = mf_w; sh_video->bih->biHeight = mf_h; diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c index 589acc8695..dd75061f6c 100644 --- a/libmpdemux/demux_mkv.c +++ b/libmpdemux/demux_mkv.c @@ -1177,7 +1177,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track, BITMAPINFOHEADER *src; if (track->private_data == NULL - || track->private_size < sizeof(BITMAPINFOHEADER)) + || track->private_size < sizeof(*bih)) return 1; src = (BITMAPINFOHEADER *) track->private_data; @@ -1193,17 +1193,17 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track, bih->biYPelsPerMeter = le2me_32(src->biYPelsPerMeter); bih->biClrUsed = le2me_32(src->biClrUsed); bih->biClrImportant = le2me_32(src->biClrImportant); - memcpy((char *) bih + sizeof(BITMAPINFOHEADER), - (char *) src + sizeof(BITMAPINFOHEADER), - track->private_size - sizeof(BITMAPINFOHEADER)); + memcpy(bih + 1, + src + 1, + track->private_size - sizeof(*bih)); if (track->v_width == 0) track->v_width = bih->biWidth; if (track->v_height == 0) track->v_height = bih->biHeight; } else { - bih = calloc(1, sizeof(BITMAPINFOHEADER)); - bih->biSize = sizeof(BITMAPINFOHEADER); + bih = calloc(1, sizeof(*bih)); + bih->biSize = sizeof(*bih); bih->biWidth = track->v_width; bih->biHeight = track->v_height; bih->biBitCount = 24; @@ -1221,7 +1221,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track, src = (uint8_t *) track->private_data + RVPROPERTIES_SIZE; cnt = track->private_size - RVPROPERTIES_SIZE; - bih = realloc(bih, sizeof(BITMAPINFOHEADER) + 8 + cnt); + bih = realloc(bih, sizeof(*bih) + 8 + cnt); bih->biSize = 48 + cnt; bih->biPlanes = 1; type2 = AV_RB32(src - 4); @@ -1324,8 +1324,8 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, sh_a->lang = strdup(track->language); sh_a->default_track = track->default_track; sh_a->ds = demuxer->audio; - sh_a->wf = malloc(sizeof(WAVEFORMATEX)); - if (track->ms_compat && (track->private_size >= sizeof(WAVEFORMATEX))) { + sh_a->wf = malloc(sizeof(*sh_a->wf)); + if (track->ms_compat && (track->private_size >= sizeof(*sh_a->wf))) { WAVEFORMATEX *wf = (WAVEFORMATEX *) track->private_data; sh_a->wf = realloc(sh_a->wf, track->private_size); sh_a->wf->wFormatTag = le2me_16(wf->wFormatTag); @@ -1334,9 +1334,9 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, sh_a->wf->nAvgBytesPerSec = le2me_32(wf->nAvgBytesPerSec); sh_a->wf->nBlockAlign = le2me_16(wf->nBlockAlign); sh_a->wf->wBitsPerSample = le2me_16(wf->wBitsPerSample); - sh_a->wf->cbSize = track->private_size - sizeof(WAVEFORMATEX); + sh_a->wf->cbSize = track->private_size - sizeof(*sh_a->wf); memcpy(sh_a->wf + 1, wf + 1, - track->private_size - sizeof(WAVEFORMATEX)); + track->private_size - sizeof(*sh_a->wf)); if (track->a_sfreq == 0.0) track->a_sfreq = sh_a->wf->nSamplesPerSec; if (track->a_channels == 0) @@ -1345,7 +1345,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, track->a_bps = sh_a->wf->wBitsPerSample; track->a_formattag = sh_a->wf->wFormatTag; } else { - memset(sh_a->wf, 0, sizeof(WAVEFORMATEX)); + memset(sh_a->wf, 0, sizeof(*sh_a->wf)); if (!strcmp(track->codec_id, MKV_A_MP3) || !strcmp(track->codec_id, MKV_A_MP2)) track->a_formattag = 0x0055; @@ -1489,7 +1489,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, } } else if (track->a_formattag == mmioFOURCC('v', 'r', 'b', 's')) { /* VORBIS */ sh_a->wf->cbSize = track->private_size; - sh_a->wf = realloc(sh_a->wf, sizeof(WAVEFORMATEX) + sh_a->wf->cbSize); + sh_a->wf = realloc(sh_a->wf, sizeof(*sh_a->wf) + sh_a->wf->cbSize); memcpy((unsigned char *) (sh_a->wf + 1), track->private_data, sh_a->wf->cbSize); } else if (track->private_size >= RAPROPERTIES4_SIZE @@ -1520,7 +1520,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, codecdata_length = AV_RB32(src); src += 4; sh_a->wf->cbSize = codecdata_length; - sh_a->wf = realloc(sh_a->wf, sizeof(WAVEFORMATEX) + sh_a->wf->cbSize); + sh_a->wf = realloc(sh_a->wf, sizeof(*sh_a->wf) + sh_a->wf->cbSize); memcpy(((char *) (sh_a->wf + 1)), src, codecdata_length); switch (track->a_formattag) { @@ -1571,8 +1571,8 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, size = track->private_size; } else { sh_a->format = mmioFOURCC('f', 'L', 'a', 'C'); - ptr = track->private_data + sizeof(WAVEFORMATEX); - size = track->private_size - sizeof(WAVEFORMATEX); + ptr = track->private_data + sizeof(*sh_a->wf); + size = track->private_size - sizeof(*sh_a->wf); } if (size < 4 || ptr[0] != 'f' || ptr[1] != 'L' || ptr[2] != 'a' || ptr[3] != 'C') { @@ -1586,7 +1586,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track, } } else if (track->a_formattag == mmioFOURCC('W', 'V', 'P', 'K') || track->a_formattag == mmioFOURCC('T', 'R', 'H', 'D')) { /* do nothing, still works */ } else if (!track->ms_compat - || (track->private_size < sizeof(WAVEFORMATEX))) { + || (track->private_size < sizeof(*sh_a->wf))) { free_sh_audio(demuxer, track->id); return 1; } @@ -2003,8 +2003,7 @@ static void handle_realaudio(demuxer_t *demuxer, mkv_track_t *track, track->audio_filepos = demuxer->filepos; if (++(track->sub_packet_cnt) == sph) { int apk_usize = - ((WAVEFORMATEX *) ((sh_audio_t *) demuxer->audio->sh)->wf)-> - nBlockAlign; + ((sh_audio_t *) demuxer->audio->sh)->wf->nBlockAlign; track->sub_packet_cnt = 0; // Release all the audio packets for (x = 0; x < sph * w / apk_usize; x++) { diff --git a/libmpdemux/demux_mng.c b/libmpdemux/demux_mng.c index 719f11e35b..525972936a 100644 --- a/libmpdemux/demux_mng.c +++ b/libmpdemux/demux_mng.c @@ -443,7 +443,7 @@ static demuxer_t * demux_mng_open(demuxer_t * demuxer) sh_video->frametime = 1.0f / sh_video->fps; // set video frame parameters - sh_video->bih = malloc(sizeof(BITMAPINFOHEADER)); + sh_video->bih = malloc(sizeof(*sh_video->bih)); sh_video->bih->biCompression = sh_video->format; sh_video->bih->biWidth = mng_priv->width; sh_video->bih->biHeight = mng_priv->height; 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; diff --git a/libmpdemux/demux_nemesi.c b/libmpdemux/demux_nemesi.c index 3d2d413a4a..2b2f6d2438 100644 --- a/libmpdemux/demux_nemesi.c +++ b/libmpdemux/demux_nemesi.c @@ -233,11 +233,11 @@ static demuxer_t* demux_open_rtp(demuxer_t* demuxer) sess, &buff, NULL); if (buff.len) { - wf = calloc(1,sizeof(WAVEFORMATEX)+buff.len); + wf = calloc(1,sizeof(*wf)+buff.len); wf->cbSize = buff.len; memcpy(wf+1, buff.data, buff.len); } else { - wf = calloc(1,sizeof(WAVEFORMATEX)); + wf = calloc(1,sizeof(*wf)); } sh_audio->wf = wf; @@ -269,12 +269,12 @@ static demuxer_t* demux_open_rtp(demuxer_t* demuxer) sess, &buff, &fps); if (buff.len) { - bih = calloc(1,sizeof(BITMAPINFOHEADER)+buff.len); - bih->biSize = sizeof(BITMAPINFOHEADER)+buff.len; + bih = calloc(1,sizeof(*bih)+buff.len); + bih->biSize = sizeof(*bih)+buff.len; memcpy(bih+1, buff.data, buff.len); } else { - bih = calloc(1,sizeof(BITMAPINFOHEADER)); - bih->biSize = sizeof(BITMAPINFOHEADER); + bih = calloc(1,sizeof(*bih)); + bih->biSize = sizeof(*bih); } sh_video = new_sh_video(demuxer,0); diff --git a/libmpdemux/demux_nsv.c b/libmpdemux/demux_nsv.c index 1d0856a80d..a5257ef083 100644 --- a/libmpdemux/demux_nsv.c +++ b/libmpdemux/demux_nsv.c @@ -225,8 +225,8 @@ static demuxer_t* demux_open_nsv ( demuxer_t* demuxer ) // new video stream! parse header sh_video->disp_w=hdr[12]|(hdr[13]<<8); sh_video->disp_h=hdr[14]|(hdr[15]<<8); - sh_video->bih=calloc(1,sizeof(BITMAPINFOHEADER)); - sh_video->bih->biSize=sizeof(BITMAPINFOHEADER); + sh_video->bih=calloc(1,sizeof(*sh_video->bih)); + sh_video->bih->biSize=sizeof(*sh_video->bih); sh_video->bih->biPlanes=1; sh_video->bih->biBitCount=24; sh_video->bih->biWidth=hdr[12]|(hdr[13]<<8); diff --git a/libmpdemux/demux_nut.c b/libmpdemux/demux_nut.c index 3c7f89b8d7..efa20e0c47 100644 --- a/libmpdemux/demux_nut.c +++ b/libmpdemux/demux_nut.c @@ -110,7 +110,7 @@ static demuxer_t * demux_open_nut(demuxer_t * demuxer) { for (i = 0; s[i].type != -1 && i < 2; i++) switch(s[i].type) { case NUT_AUDIO_CLASS: { WAVEFORMATEX *wf = - calloc(sizeof(WAVEFORMATEX) + + calloc(sizeof(*wf) + s[i].codec_specific_len, 1); sh_audio_t* sh_audio = new_sh_audio(demuxer, i); int j; @@ -146,7 +146,7 @@ static demuxer_t * demux_open_nut(demuxer_t * demuxer) { } case NUT_VIDEO_CLASS: { BITMAPINFOHEADER * bih = - calloc(sizeof(BITMAPINFOHEADER) + + calloc(sizeof(*bih) + s[i].codec_specific_len, 1); sh_video_t * sh_video = new_sh_video(demuxer, i); int j; @@ -170,7 +170,7 @@ static demuxer_t * demux_open_nut(demuxer_t * demuxer) { s[i].sample_width / (float)s[i].sample_height; sh_video->i_bps = 0; // FIXME - bih->biSize = sizeof(BITMAPINFOHEADER) + + bih->biSize = sizeof(*bih) + s[i].codec_specific_len; bih->biWidth = s[i].width; bih->biHeight = s[i].height; diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c index 3d2901b9c1..fe6bd27601 100644 --- a/libmpdemux/demux_ogg.c +++ b/libmpdemux/demux_ogg.c @@ -719,7 +719,7 @@ static void fixup_vorbis_wf(sh_audio_t *sh, ogg_demuxer_t *od) os->vi_initialized = 1; len = op[0].bytes + op[1].bytes + op[2].bytes; - sh->wf = calloc(1, sizeof(WAVEFORMATEX) + len + len / 255 + 64); + sh->wf = calloc(1, sizeof(*sh->wf) + len + len / 255 + 64); ptr = (unsigned char*)(sh->wf + 1); ptr[0] = 2; @@ -735,7 +735,7 @@ static void fixup_vorbis_wf(sh_audio_t *sh, ogg_demuxer_t *od) } sh->wf->cbSize = offset; mp_msg(MSGT_DEMUX, MSGL_V, "demux_ogg, extradata size: %d\n", sh->wf->cbSize); - sh->wf = realloc(sh->wf, sizeof(WAVEFORMATEX) + sh->wf->cbSize); + sh->wf = realloc(sh->wf, sizeof(*sh->wf) + sh->wf->cbSize); if (op[0].bytes >= 29) { unsigned int br; @@ -869,7 +869,7 @@ int demux_ogg_open(demuxer_t *demuxer) ogg_d->num_sub, n_audio - 1); } else if (pack.bytes >= 80 && !strncmp(pack.packet, "Speex", 5)) { sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio); - sh_a->wf = calloc(1, sizeof(WAVEFORMATEX) + pack.bytes); + sh_a->wf = calloc(1, sizeof(*sh_a->wf) + pack.bytes); sh_a->format = FOURCC_SPEEX; sh_a->samplerate = sh_a->wf->nSamplesPerSec = AV_RL32(&pack.packet[36]); sh_a->channels = sh_a->wf->nChannels = AV_RL32(&pack.packet[48]); @@ -906,8 +906,8 @@ int demux_ogg_open(demuxer_t *demuxer) } else { sh_v = new_sh_video_vid(demuxer, ogg_d->num_sub, n_video); - sh_v->bih = calloc(1, sizeof(BITMAPINFOHEADER)); - sh_v->bih->biSize = sizeof(BITMAPINFOHEADER); + sh_v->bih = calloc(1, sizeof(*sh_v->bih)); + sh_v->bih->biSize = sizeof(*sh_v->bih); sh_v->bih->biCompression = sh_v->format = FOURCC_THEORA; sh_v->fps = ((double)inf.fps_numerator) / (double)inf.fps_denominator; sh_v->frametime = ((double)inf.fps_denominator) / (double)inf.fps_numerator; @@ -950,7 +950,7 @@ int demux_ogg_open(demuxer_t *demuxer) ogg_d->subs[ogg_d->num_sub].id = n_audio; n_audio++; ogg_d->subs[ogg_d->num_sub].flac = 2; - sh_a->wf = calloc(1, sizeof(WAVEFORMATEX) + 34); + sh_a->wf = calloc(1, sizeof(*sh_a->wf) + 34); sh_a->wf->wFormatTag = sh_a->format; sh_a->wf->cbSize = 34; memcpy(&sh_a->wf[1], &pack.packet[17], 34); @@ -965,8 +965,8 @@ int demux_ogg_open(demuxer_t *demuxer) // Old video header if (AV_RL32(pack.packet + 96) == 0x05589f80 && pack.bytes >= 184) { sh_v = new_sh_video_vid(demuxer, ogg_d->num_sub, n_video); - sh_v->bih = calloc(1, sizeof(BITMAPINFOHEADER)); - sh_v->bih->biSize = sizeof(BITMAPINFOHEADER); + sh_v->bih = calloc(1, sizeof(*sh_v->bih)); + sh_v->bih->biSize = sizeof(*sh_v->bih); sh_v->bih->biCompression = sh_v->format = mmioFOURCC(pack.packet[68], pack.packet[69], pack.packet[70], pack.packet[71]); sh_v->frametime = AV_RL64(pack.packet + 164) * 0.0000001; @@ -994,7 +994,7 @@ int demux_ogg_open(demuxer_t *demuxer) sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio); extra_size = AV_RL16(pack.packet + 140); - sh_a->wf = calloc(1, sizeof(WAVEFORMATEX) + extra_size); + sh_a->wf = calloc(1, sizeof(*sh_a->wf) + extra_size); sh_a->format = sh_a->wf->wFormatTag = AV_RL16(pack.packet + 124); sh_a->channels = sh_a->wf->nChannels = AV_RL16(pack.packet + 126); sh_a->samplerate = sh_a->wf->nSamplesPerSec = AV_RL32(pack.packet + 128); @@ -1004,7 +1004,7 @@ int demux_ogg_open(demuxer_t *demuxer) sh_a->samplesize = (sh_a->wf->wBitsPerSample + 7) / 8; sh_a->wf->cbSize = extra_size; if (extra_size > 0) - memcpy(((char *)sh_a->wf) + sizeof(WAVEFORMATEX), + memcpy(sh_a->wf + 1, pack.packet + 142, extra_size); ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels; @@ -1027,8 +1027,8 @@ int demux_ogg_open(demuxer_t *demuxer) /// New video header if (strncmp(st->streamtype, "video", 5) == 0) { sh_v = new_sh_video_vid(demuxer, ogg_d->num_sub, n_video); - sh_v->bih = calloc(1, sizeof(BITMAPINFOHEADER)); - sh_v->bih->biSize = sizeof(BITMAPINFOHEADER); + sh_v->bih = calloc(1, sizeof(*sh_v->bih)); + sh_v->bih->biSize = sizeof(*sh_v->bih); sh_v->bih->biCompression = sh_v->format = mmioFOURCC(st->subtype[0], st->subtype[1], st->subtype[2], st->subtype[3]); sh_v->frametime = AV_RL64(&st->time_unit) * 0.0000001; @@ -1070,7 +1070,7 @@ int demux_ogg_open(demuxer_t *demuxer) } sh_a = new_sh_audio_aid(demuxer, ogg_d->num_sub, n_audio); - sh_a->wf = calloc(1, sizeof(WAVEFORMATEX) + extra_size); + sh_a->wf = calloc(1, sizeof(*sh_a->wf) + extra_size); sh_a->format = sh_a->wf->wFormatTag = strtol(buffer, NULL, 16); sh_a->channels = sh_a->wf->nChannels = AV_RL16(&st->sh.audio.channels); sh_a->samplerate = sh_a->wf->nSamplesPerSec = AV_RL64(&st->samples_per_unit); @@ -1080,7 +1080,7 @@ int demux_ogg_open(demuxer_t *demuxer) sh_a->samplesize = (sh_a->wf->wBitsPerSample + 7) / 8; sh_a->wf->cbSize = extra_size; if (extra_size) - memcpy(((char *)sh_a->wf)+sizeof(WAVEFORMATEX), + memcpy(sh_a->wf+1, ((char *)(st+1))+extra_offset, extra_size); ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels; diff --git a/libmpdemux/demux_rawaudio.c b/libmpdemux/demux_rawaudio.c index 949b2d5d7f..495f8e9817 100644 --- a/libmpdemux/demux_rawaudio.c +++ b/libmpdemux/demux_rawaudio.c @@ -51,7 +51,7 @@ static demuxer_t* demux_rawaudio_open(demuxer_t* demuxer) { WAVEFORMATEX* w; sh_audio = new_sh_audio(demuxer,0); - sh_audio->wf = w = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = w = malloc(sizeof(*w)); w->wFormatTag = sh_audio->format = format; w->nChannels = sh_audio->channels = channels; w->nSamplesPerSec = sh_audio->samplerate = samplerate; diff --git a/libmpdemux/demux_rawdv.c b/libmpdemux/demux_rawdv.c index 6c3cdffd3a..f0b081318c 100644 --- a/libmpdemux/demux_rawdv.c +++ b/libmpdemux/demux_rawdv.c @@ -189,7 +189,7 @@ static demuxer_t* demux_open_rawdv(demuxer_t* demuxer) sh_video->frametime = 1.0/sh_video->fps; // emulate BITMAPINFOHEADER for win32 decoders: - sh_video->bih=calloc(1, sizeof(BITMAPINFOHEADER)); + sh_video->bih=calloc(1, sizeof(*sh_video->bih)); sh_video->bih->biSize=40; sh_video->bih->biWidth = dv_decoder->width; sh_video->bih->biHeight = dv_decoder->height; @@ -214,8 +214,7 @@ static demuxer_t* demux_open_rawdv(demuxer_t* demuxer) // custom fourcc for internal MPlayer use sh_audio->format = mmioFOURCC('R', 'A', 'D', 'V'); - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh_audio->wf, 0, sizeof(WAVEFORMATEX)); + sh_audio->wf = calloc(1, sizeof(*sh_audio->wf)); sh_audio->wf->wFormatTag = sh_audio->format; sh_audio->wf->nChannels = dv_decoder->audio->num_channels; sh_audio->wf->wBitsPerSample = 16; diff --git a/libmpdemux/demux_real.c b/libmpdemux/demux_real.c index 4d95311726..80180b8a41 100644 --- a/libmpdemux/demux_real.c +++ b/libmpdemux/demux_real.c @@ -474,8 +474,7 @@ static int real_check_file(demuxer_t* demuxer) if (c != MKTAG('.', 'R', 'M', 'F')) return 0; /* bad magic */ - priv = malloc(sizeof(real_priv_t)); - memset(priv, 0, sizeof(real_priv_t)); + priv = calloc(1, sizeof(real_priv_t)); demuxer->priv = priv; return DEMUXER_TYPE_REAL; @@ -784,7 +783,7 @@ got_audio: if (++(priv->sub_packet_cnt) < sph) audioreorder_getnextpk = 1; else { - int apk_usize = ((WAVEFORMATEX*)((sh_audio_t*)ds->sh)->wf)->nBlockAlign; + int apk_usize = ((sh_audio_t*)ds->sh)->wf->nBlockAlign; audioreorder_getnextpk = 0; priv->sub_packet_cnt = 0; // Release all the audio packets @@ -1373,8 +1372,7 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) } /* Emulate WAVEFORMATEX struct: */ - sh->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh->wf, 0, sizeof(WAVEFORMATEX)); + sh->wf = calloc(1, sizeof(*sh->wf)); sh->wf->nChannels = sh->channels; sh->wf->wBitsPerSample = sh->samplesize*8; sh->wf->nSamplesPerSec = sh->samplerate; @@ -1411,7 +1409,7 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) goto skip_this_chunk; } sh->wf->cbSize = codecdata_length; - sh->wf = realloc(sh->wf, sizeof(WAVEFORMATEX)+sh->wf->cbSize); + sh->wf = realloc(sh->wf, sizeof(*sh->wf)+sh->wf->cbSize); stream_read(demuxer->stream, ((char*)(sh->wf+1)), codecdata_length); // extras if (priv->intl_id[stream_id] == MKTAG('g', 'e', 'n', 'r')) sh->wf->nBlockAlign = sub_packet_size; @@ -1479,8 +1477,7 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) mp_tmsg(MSGT_DEMUX, MSGL_INFO, "[%s] Audio stream found, -aid %d\n", "real", stream_id); /* Emulate WAVEFORMATEX struct: */ - sh->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh->wf, 0, sizeof(WAVEFORMATEX)); + sh->wf = calloc(1, sizeof(*sh->wf)); sh->wf->nChannels = 0;//sh->channels; sh->wf->wBitsPerSample = 16; sh->wf->nSamplesPerSec = 0;//sh->samplerate; @@ -1518,9 +1515,8 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) mp_msg(MSGT_DEMUX,MSGL_V,"video fourcc: %.4s (%x)\n", (char *)&sh->format, sh->format); /* emulate BITMAPINFOHEADER */ - sh->bih = malloc(sizeof(BITMAPINFOHEADER)); - memset(sh->bih, 0, sizeof(BITMAPINFOHEADER)); - sh->bih->biSize = sizeof(BITMAPINFOHEADER); + sh->bih = calloc(1, sizeof(*sh->bih)); + sh->bih->biSize = sizeof(*sh->bih); sh->disp_w = sh->bih->biWidth = stream_read_word(demuxer->stream); sh->disp_h = sh->bih->biHeight = stream_read_word(demuxer->stream); sh->bih->biPlanes = 1; @@ -1555,10 +1551,10 @@ static demuxer_t* demux_open_real(demuxer_t* demuxer) { // read and store codec extradata unsigned int cnt = codec_data_size - (stream_tell(demuxer->stream) - codec_pos); - if (cnt > 0x7fffffff - sizeof(BITMAPINFOHEADER)) { + if (cnt > 0x7fffffff - sizeof(*sh->bih)) { mp_msg(MSGT_DEMUX, MSGL_ERR,"Extradata too big (%u)\n", cnt); } else { - sh->bih = realloc(sh->bih, sizeof(BITMAPINFOHEADER) + cnt); + sh->bih = realloc(sh->bih, sizeof(*sh->bih) + cnt); sh->bih->biSize += cnt; stream_read(demuxer->stream, ((unsigned char*)(sh->bih+1)), cnt); } diff --git a/libmpdemux/demux_realaud.c b/libmpdemux/demux_realaud.c index 1d586dcbd7..7284d4d7af 100644 --- a/libmpdemux/demux_realaud.c +++ b/libmpdemux/demux_realaud.c @@ -286,8 +286,7 @@ static demuxer_t* demux_open_ra(demuxer_t* demuxer) } /* Fill WAVEFORMATEX */ - sh->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh->wf, 0, sizeof(WAVEFORMATEX)); + sh->wf = calloc(1, sizeof(*sh->wf)); sh->wf->nChannels = sh->channels; sh->wf->wBitsPerSample = sh->samplesize; sh->wf->nSamplesPerSec = sh->samplerate; diff --git a/libmpdemux/demux_roq.c b/libmpdemux/demux_roq.c index 9ce6f901ae..a9bd1f291c 100644 --- a/libmpdemux/demux_roq.c +++ b/libmpdemux/demux_roq.c @@ -176,7 +176,7 @@ static demuxer_t* demux_open_roq(demuxer_t* demuxer) sh_audio->ds = demuxer->audio; // go through the bother of making a WAVEFORMATEX structure - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); // custom fourcc for internal MPlayer use sh_audio->format = mmioFOURCC('R', 'o', 'Q', 'A'); diff --git a/libmpdemux/demux_smjpeg.c b/libmpdemux/demux_smjpeg.c index b7cf056fbe..8933e8c8f5 100644 --- a/libmpdemux/demux_smjpeg.c +++ b/libmpdemux/demux_smjpeg.c @@ -128,8 +128,7 @@ static demuxer_t* demux_open_smjpeg(demuxer_t* demuxer){ demuxer->video->sh = sh_video; sh_video->ds = demuxer->video; - sh_video->bih = malloc(sizeof(BITMAPINFOHEADER)); - memset(sh_video->bih, 0, sizeof(BITMAPINFOHEADER)); + sh_video->bih = calloc(1, sizeof(*sh_video->bih)); stream_skip(demuxer->stream, 4); /* number of frames */ // sh_video->fps = 24; @@ -153,8 +152,7 @@ static demuxer_t* demux_open_smjpeg(demuxer_t* demuxer){ demuxer->audio->sh = sh_audio; sh_audio->ds = demuxer->audio; - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); - memset(sh_audio->wf, 0, sizeof(WAVEFORMATEX)); + sh_audio->wf = calloc(1, sizeof(*sh_audio->wf)); sh_audio->samplerate = stream_read_word(demuxer->stream); sh_audio->wf->wBitsPerSample = stream_read_char(demuxer->stream); diff --git a/libmpdemux/demux_ts.c b/libmpdemux/demux_ts.c index 2bb5c3c558..b98d766470 100644 --- a/libmpdemux/demux_ts.c +++ b/libmpdemux/demux_ts.c @@ -360,7 +360,7 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es) if(es->extradata && es->extradata_len) { - sh->wf = malloc(sizeof (WAVEFORMATEX) + es->extradata_len); + sh->wf = malloc(sizeof(*sh->wf) + es->extradata_len); sh->wf->cbSize = es->extradata_len; memcpy(sh->wf + 1, es->extradata, es->extradata_len); } @@ -384,8 +384,8 @@ static void ts_add_stream(demuxer_t * demuxer, ES_stream_t *es) if(sh->format == VIDEO_AVC && es->extradata && es->extradata_len) { int w = 0, h = 0; - sh->bih = calloc(1, sizeof(BITMAPINFOHEADER) + es->extradata_len); - sh->bih->biSize= sizeof(BITMAPINFOHEADER) + es->extradata_len; + sh->bih = calloc(1, sizeof(*sh->bih) + es->extradata_len); + sh->bih->biSize= sizeof(*sh->bih) + es->extradata_len; sh->bih->biCompression = sh->format; memcpy(sh->bih + 1, es->extradata, es->extradata_len); mp_msg(MSGT_DEMUXER,MSGL_DBG2, "EXTRADATA(%d BYTES): \n", es->extradata_len); diff --git a/libmpdemux/demux_viv.c b/libmpdemux/demux_viv.c index d628a09d3c..1d9999940f 100644 --- a/libmpdemux/demux_viv.c +++ b/libmpdemux/demux_viv.c @@ -613,8 +613,7 @@ static demuxer_t* demux_open_vivo(demuxer_t* demuxer){ sh->disp_h = height; // emulate BITMAPINFOHEADER: - sh->bih=malloc(sizeof(BITMAPINFOHEADER)); - memset(sh->bih,0,sizeof(BITMAPINFOHEADER)); + sh->bih=calloc(1, sizeof(*sh->bih)); sh->bih->biSize=40; if (priv->width) sh->bih->biWidth = priv->width; @@ -679,8 +678,7 @@ if (demuxer->audio->id >= -1){ } // Emulate WAVEFORMATEX struct: - sh->wf=malloc(sizeof(WAVEFORMATEX)); - memset(sh->wf,0,sizeof(WAVEFORMATEX)); + sh->wf=calloc(1, sizeof(*sh->wf)); sh->wf->wFormatTag=sh->format; sh->wf->nChannels=1; /* 1 channels for both Siren and G.723 */ diff --git a/libmpdemux/demux_vqf.c b/libmpdemux/demux_vqf.c index 9a90f33fb3..94d7cf4096 100644 --- a/libmpdemux/demux_vqf.c +++ b/libmpdemux/demux_vqf.c @@ -49,9 +49,8 @@ static demuxer_t* demux_open_vqf(demuxer_t* demuxer) { s = demuxer->stream; sh_audio = new_sh_audio(demuxer,0); - sh_audio->wf = w = malloc(sizeof(WAVEFORMATEX)+sizeof(headerInfo)); + sh_audio->wf = w = calloc(1, sizeof(*sh_audio->wf)+sizeof(headerInfo)); hi = (headerInfo *)&w[1]; - memset(hi,0,sizeof(headerInfo)); w->wFormatTag = 0x1; sh_audio->format = mmioFOURCC('T','W','I','N'); /* TWinVQ */ w->nChannels = sh_audio->channels = 2; diff --git a/libmpdemux/demux_xmms.c b/libmpdemux/demux_xmms.c index f779338a0e..0e37554681 100644 --- a/libmpdemux/demux_xmms.c +++ b/libmpdemux/demux_xmms.c @@ -265,7 +265,7 @@ static int demux_xmms_open(demuxer_t* demuxer) { xmms_channels=0; sh_audio = new_sh_audio(demuxer,0); - sh_audio->wf = w = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = w = malloc(sizeof(*w)); w->wFormatTag = sh_audio->format = format; demuxer->movi_start = 0; diff --git a/libmpdemux/demux_y4m.c b/libmpdemux/demux_y4m.c index 7f390deacc..d1b6749820 100644 --- a/libmpdemux/demux_y4m.c +++ b/libmpdemux/demux_y4m.c @@ -257,7 +257,7 @@ static demuxer_t* demux_open_y4m(demuxer_t* demuxer){ priv->framenum = 0; priv->si = malloc(sizeof(y4m_stream_info_t)); - sh->bih=calloc(1, sizeof(BITMAPINFOHEADER)); + sh->bih=calloc(1, sizeof(*sh->bih)); demuxer->video->sh=sh; sh->ds=demuxer->video; diff --git a/libmpdemux/muxer_avi.c b/libmpdemux/muxer_avi.c index 6428ce86bf..8017ef611e 100644 --- a/libmpdemux/muxer_avi.c +++ b/libmpdemux/muxer_avi.c @@ -276,7 +276,7 @@ static void write_avi_list(stream_t *stream,unsigned int id,int len){ stream_write_buffer(stream, &le_id, 4); } -#define WFSIZE(wf) (sizeof(WAVEFORMATEX)+(wf)->cbSize) +#define WFSIZE(wf) (sizeof(*wf)+(wf)->cbSize) static void avifile_write_header(muxer_t *muxer){ uint32_t riff[3]; diff --git a/libmpdemux/video.c b/libmpdemux/video.c index b8a26d61d2..1f249ff804 100644 --- a/libmpdemux/video.c +++ b/libmpdemux/video.c @@ -383,12 +383,12 @@ mpeg_header_parser: } if(mp_vc1_decode_sequence_header(&picture, &videobuffer[4], videobuf_len-4)) { - sh_video->bih = calloc(1, sizeof(BITMAPINFOHEADER) + videobuf_len); + sh_video->bih = calloc(1, sizeof(*sh_video->bih) + videobuf_len); if(sh_video->bih == NULL) { - mp_msg(MSGT_DECVIDEO,MSGL_ERR,"Couldn't alloc %d bytes for VC-1 extradata!\n", sizeof(BITMAPINFOHEADER) + videobuf_len); + mp_msg(MSGT_DECVIDEO,MSGL_ERR,"Couldn't alloc %d bytes for VC-1 extradata!\n", sizeof(*sh_video->bih) + videobuf_len); return 0; } - sh_video->bih->biSize= sizeof(BITMAPINFOHEADER) + videobuf_len; + sh_video->bih->biSize= sizeof(*sh_video->bih) + videobuf_len; memcpy(sh_video->bih + 1, videobuffer, videobuf_len); sh_video->bih->biCompression = sh_video->format; sh_video->bih->biWidth = sh_video->disp_w = picture.display_picture_width; diff --git a/loader/afl.c b/loader/afl.c index e9f52e157e..a138a7e259 100644 --- a/loader/afl.c +++ b/loader/afl.c @@ -401,15 +401,15 @@ MMRESULT WINAPI acmStreamOpen(PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pw if (was == NULL) return MMSYSERR_NOMEM; was->drvInst.cbStruct = sizeof(was->drvInst); - was->drvInst.pwfxSrc = (PWAVEFORMATEX)((LPSTR)was + sizeof(*was)); + was->drvInst.pwfxSrc = (PWAVEFORMATEX)(was + 1); memcpy(was->drvInst.pwfxSrc, pwfxSrc, wfxSrcSize); // LHACM is checking for 0x1 // but if this will not help // was->drvInst.pwfxSrc->wFormatTag = 1; - was->drvInst.pwfxDst = (PWAVEFORMATEX)((LPSTR)was + sizeof(*was) + wfxSrcSize); + was->drvInst.pwfxDst = (PWAVEFORMATEX)((LPSTR)(was + 1) + wfxSrcSize); memcpy(was->drvInst.pwfxDst, pwfxDst, wfxDstSize); if (pwfltr) { - was->drvInst.pwfltr = (PWAVEFILTER)((LPSTR)was + sizeof(*was) + wfxSrcSize + wfxDstSize); + was->drvInst.pwfltr = (PWAVEFILTER)((LPSTR)(was + 1) + wfxSrcSize + wfxDstSize); memcpy(was->drvInst.pwfltr, pwfltr, sizeof(WAVEFILTER)); } else { was->drvInst.pwfltr = NULL; diff --git a/stream/tv.c b/stream/tv.c index 55b7033adb..76f4850999 100644 --- a/stream/tv.c +++ b/stream/tv.c @@ -815,7 +815,7 @@ static demuxer_t* demux_open_tv(demuxer_t *demuxer) sh_audio->channels; // emulate WF for win32 codecs: - sh_audio->wf = malloc(sizeof(WAVEFORMATEX)); + sh_audio->wf = malloc(sizeof(*sh_audio->wf)); sh_audio->wf->wFormatTag = sh_audio->format; sh_audio->wf->nChannels = sh_audio->channels; sh_audio->wf->wBitsPerSample = sh_audio->samplesize * 8; diff --git a/stream/tvi_def.h b/stream/tvi_def.h index 01c2222621..d6a4600ae8 100644 --- a/stream/tvi_def.h +++ b/stream/tvi_def.h @@ -51,13 +51,13 @@ static tvi_handle_t *new_handle(void) if (!h) return NULL; - h->priv = malloc(sizeof(priv_t)); + h->priv = calloc(1, sizeof(priv_t)); if (!h->priv) { free(h); return NULL; } - memset(h->priv, 0, sizeof(priv_t)); + h->functions = &functions; h->seq = 0; h->chanlist = -1; |