comparison dec_audio.c @ 1289:3f490fad9bdf

some code clanup (first step to libdemuxer)
author arpi
date Sat, 07 Jul 2001 18:46:15 +0000
parents cab5ba9ffc6c
children 36ed1692c0b8
comparison
equal deleted inserted replaced
1288:c311bfd737b1 1289:3f490fad9bdf
29 #include "xa/xa_gsm.h" 29 #include "xa/xa_gsm.h"
30 30
31 #include "loader/DirectShow/DS_AudioDec.h" 31 #include "loader/DirectShow/DS_AudioDec.h"
32 32
33 33
34 static sh_audio_t* ac3_audio_sh=NULL; 34 static sh_audio_t* dec_audio_sh=NULL;
35 35
36 // AC3 decoder buffer callback: 36 // AC3 decoder buffer callback:
37 static void ac3_fill_buffer(uint8_t **start,uint8_t **end){ 37 static void ac3_fill_buffer(uint8_t **start,uint8_t **end){
38 int len=ds_get_packet(ac3_audio_sh->ds,start); 38 int len=ds_get_packet(dec_audio_sh->ds,start);
39 //printf("<ac3:%d>\n",len); 39 //printf("<ac3:%d>\n",len);
40 if(len<0) 40 if(len<0)
41 *start = *end = NULL; 41 *start = *end = NULL;
42 else 42 else
43 *end = *start + len; 43 *end = *start + len;
44 }
45
46 // MP3 decoder buffer callback:
47 int mplayer_audio_read(char *buf,int size){
48 int len;
49 len=demux_read_data(dec_audio_sh->ds,buf,size);
50 return len;
44 } 51 }
45 52
46 53
47 int init_audio(sh_audio_t *sh_audio){ 54 int init_audio(sh_audio_t *sh_audio){
48 55
175 // sh_audio->pcm_bswap=1; 182 // sh_audio->pcm_bswap=1;
176 break; 183 break;
177 } 184 }
178 case 3: { 185 case 3: {
179 // Dolby AC3 audio: 186 // Dolby AC3 audio:
180 ac3_audio_sh=sh_audio; // save sh_audio for the callback: 187 dec_audio_sh=sh_audio; // save sh_audio for the callback:
181 ac3_config.fill_buffer_callback = ac3_fill_buffer; 188 ac3_config.fill_buffer_callback = ac3_fill_buffer;
182 ac3_config.num_output_ch = 2; 189 ac3_config.num_output_ch = 2;
183 ac3_config.flags = 0; 190 ac3_config.flags = 0;
184 #ifdef HAVE_MMX 191 #ifdef HAVE_MMX
185 ac3_config.flags |= AC3_MMX_ENABLE; 192 ac3_config.flags |= AC3_MMX_ENABLE;
219 sh_audio->i_bps=65*(sh_audio->channels*sh_audio->samplerate)/320; // 1:10 226 sh_audio->i_bps=65*(sh_audio->channels*sh_audio->samplerate)/320; // 1:10
220 break; 227 break;
221 } 228 }
222 case 1: { 229 case 1: {
223 // MPEG Audio: 230 // MPEG Audio:
231 dec_audio_sh=sh_audio; // save sh_audio for the callback:
224 #ifdef USE_FAKE_MONO 232 #ifdef USE_FAKE_MONO
225 MP3_Init(fakemono); 233 MP3_Init(fakemono);
226 #else 234 #else
227 MP3_Init(); 235 MP3_Init();
228 #endif 236 #endif