Mercurial > mplayer.hg
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 |