Mercurial > mplayer.hg
diff libmpdemux/demux_mov.c @ 5305:77ac28af44ec
- Add parsing of Sync Layer Descriptor
- Add a function to cleanup malloced mem from mp4_parse_esds
- Fix some weird code from me :)
author | atmos4 |
---|---|
date | Sun, 24 Mar 2002 06:10:13 +0000 |
parents | 534f16f50c17 |
children | fb58b4a8fb18 |
line wrap: on
line diff
--- a/libmpdemux/demux_mov.c Sun Mar 24 03:08:20 2002 +0000 +++ b/libmpdemux/demux_mov.c Sun Mar 24 06:10:13 2002 +0000 @@ -706,21 +706,17 @@ case MOV_FOURCC('e','s','d','s'): { mp_msg(MSGT_DEMUX, MSGL_INFO, "MOV: Found MPEG4 audio Elementary Stream Descriptor atom (%d)!\n", atom_len); if(atom_len >= 8) { - esds_t *esds = (esds_t *)malloc(sizeof(esds_t)); - if(esds && !mp4_parse_esds(&trak->stdata[36], atom_len-8, esds)) { + esds_t esds; + if(!mp4_parse_esds(&trak->stdata[36], atom_len-8, &esds)) { - sh->i_bps = esds->avgBitrate/8; + sh->i_bps = esds.avgBitrate/8; // dump away the codec specific configuration for the AAC decoder - sh->codecdata_len = esds->decoderConfigLen; + sh->codecdata_len = esds.decoderConfigLen; sh->codecdata = (unsigned char *)malloc(sh->codecdata_len); - memcpy(sh->codecdata, esds->decoderConfig, sh->codecdata_len); + memcpy(sh->codecdata, esds.decoderConfig, sh->codecdata_len); } - if(esds) { - if(esds->decoderConfig) - free(esds->decoderConfig); - free(esds); - } + mp4_free_esds(&esds); // freeup esds mem #if 0 { FILE* f=fopen("esds.dat","wb"); fwrite(&trak->stdata[36],atom_len-8,1,f);