comparison libmpcodecs/ad_faad.c @ 9321:6fa743f3094b

libfaad2 v1.0, v1.1, v1.2 detection, and API change workaround in ad_faad.c based on patch by Andre Schulz <andre@0wnage.de>
author arpi
date Fri, 07 Feb 2003 21:04:35 +0000
parents 7ee8239bfcc0
children bae3e8c81ada
comparison
equal deleted inserted replaced
9320:c5bb811fa7fc 9321:6fa743f3094b
83 #endif 83 #endif
84 84
85 sh->a_in_buffer_len = demux_read_data(sh->ds, sh->a_in_buffer, sh->a_in_buffer_size); 85 sh->a_in_buffer_len = demux_read_data(sh->ds, sh->a_in_buffer, sh->a_in_buffer_size);
86 86
87 /* init the codec */ 87 /* init the codec */
88 #if (FAADVERSION <= 11)
88 faac_init = faacDecInit(faac_hdec, sh->a_in_buffer, 89 faac_init = faacDecInit(faac_hdec, sh->a_in_buffer,
89 &faac_samplerate, &faac_channels); 90 &faac_samplerate, &faac_channels);
91 #else
92 faac_init = faacDecInit(faac_hdec, sh->a_in_buffer,
93 sh->a_in_buffer_len, &faac_samplerate, &faac_channels);
94 #endif
90 95
91 sh->a_in_buffer_len -= (faac_init > 0)?faac_init:0; // how many bytes init consumed 96 sh->a_in_buffer_len -= (faac_init > 0)?faac_init:0; // how many bytes init consumed
92 // XXX FIXME: shouldn't we memcpy() here in a_in_buffer ?? --A'rpi 97 // XXX FIXME: shouldn't we memcpy() here in a_in_buffer ?? --A'rpi
93 98
94 } else { // We have ES DS in codecdata 99 } else { // We have ES DS in codecdata
162 #endif 167 #endif
163 168
164 if(!sh->codecdata_len){ 169 if(!sh->codecdata_len){
165 // raw aac stream: 170 // raw aac stream:
166 do { 171 do {
172 #if (FAADVERSION <= 11)
167 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, sh->a_in_buffer+j); 173 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, sh->a_in_buffer+j);
174 #else
175 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, sh->a_in_buffer+j, sh->a_in_buffer_len);
176 #endif
177
168 /* update buffer index after faacDecDecode */ 178 /* update buffer index after faacDecDecode */
169 if(faac_finfo.bytesconsumed >= sh->a_in_buffer_len) { 179 if(faac_finfo.bytesconsumed >= sh->a_in_buffer_len) {
170 sh->a_in_buffer_len=0; 180 sh->a_in_buffer_len=0;
171 } else { 181 } else {
172 sh->a_in_buffer_len-=faac_finfo.bytesconsumed; 182 sh->a_in_buffer_len-=faac_finfo.bytesconsumed;
182 } else { 192 } else {
183 // packetized (.mp4) aac stream: 193 // packetized (.mp4) aac stream:
184 unsigned char* bufptr=NULL; 194 unsigned char* bufptr=NULL;
185 int buflen=ds_get_packet(sh->ds, &bufptr); 195 int buflen=ds_get_packet(sh->ds, &bufptr);
186 if(buflen<=0) break; 196 if(buflen<=0) break;
197 #if (FAADVERSION <= 11)
187 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, bufptr); 198 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, bufptr);
199 #else
200 faac_sample_buffer = faacDecDecode(faac_hdec, &faac_finfo, bufptr, buflen);
201 #endif
188 // printf("FAAC decoded %d of %d (err: %d) \n",faac_finfo.bytesconsumed,buflen,faac_finfo.error); 202 // printf("FAAC decoded %d of %d (err: %d) \n",faac_finfo.bytesconsumed,buflen,faac_finfo.error);
189 } 203 }
190 204
191 if(faac_finfo.error > 0) { 205 if(faac_finfo.error > 0) {
192 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"FAAD: Failed to decode frame: %s \n", 206 mp_msg(MSGT_DECAUDIO,MSGL_WARN,"FAAD: Failed to decode frame: %s \n",