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);