comparison libmpcodecs/ad_faad.c @ 32619:34c4e6ff7b17

Fix ad_faad crash when used on an empty audio stream.
author reimar
date Sun, 12 Dec 2010 13:56:35 +0000
parents 4be4c1ecaa4c
children 85f0d7406e07
comparison
equal deleted inserted replaced
32618:de37221dff02 32619:34c4e6ff7b17
125 //faac_conf->defObjectType = LTP; // => MAIN, LC, SSR, LTP available. 125 //faac_conf->defObjectType = LTP; // => MAIN, LC, SSR, LTP available.
126 126
127 faacDecSetConfiguration(faac_hdec, faac_conf); 127 faacDecSetConfiguration(faac_hdec, faac_conf);
128 128
129 sh->a_in_buffer_len = demux_read_data(sh->ds, sh->a_in_buffer, sh->a_in_buffer_size); 129 sh->a_in_buffer_len = demux_read_data(sh->ds, sh->a_in_buffer, sh->a_in_buffer_size);
130 if (!sh->a_in_buffer_len) {
131 // faad init will crash with 0 buffer length
132 mp_msg(MSGT_DECAUDIO, MSGL_FATAL, "Could not get audio data!\n");
133 return 0;
134 }
130 #if CONFIG_FAAD_INTERNAL 135 #if CONFIG_FAAD_INTERNAL
131 /* init the codec, look for LATM */ 136 /* init the codec, look for LATM */
132 faac_init = faacDecInit(faac_hdec, sh->a_in_buffer, 137 faac_init = faacDecInit(faac_hdec, sh->a_in_buffer,
133 sh->a_in_buffer_len, &faac_samplerate, &faac_channels,1); 138 sh->a_in_buffer_len, &faac_samplerate, &faac_channels,1);
134 if (faac_init < 0 && sh->a_in_buffer_len >= 3 && sh->format == mmioFOURCC('M', 'P', '4', 'L')) { 139 if (faac_init < 0 && sh->a_in_buffer_len >= 3 && sh->format == mmioFOURCC('M', 'P', '4', 'L')) {