Mercurial > mplayer.hg
comparison dec_audio.c @ 1058:cab5ba9ffc6c
fixed AFMT_ stuff (inclue afmt.h)
author | arpi_esp |
---|---|
date | Fri, 08 Jun 2001 23:31:06 +0000 |
parents | b36fb1ae4b53 |
children | 3f490fad9bdf |
comparison
equal
deleted
inserted
replaced
1057:555f58131861 | 1058:cab5ba9ffc6c |
---|---|
1 | 1 |
2 #include <stdio.h> | 2 #include <stdio.h> |
3 #include <stdlib.h> | 3 #include <stdlib.h> |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 | 6 #include "libao2/afmt.h" |
7 #ifdef USE_OSS_AUDIO | |
8 #include <sys/soundcard.h> | |
9 #endif | |
10 #ifdef USE_SUN_AUDIO | |
11 #include <sys/types.h> | |
12 #include <sys/audioio.h> | |
13 #define AFMT_MU_LAW AUDIO_ENCODING_ULAW | |
14 #define AFMT_A_LAW AUDIO_ENCODING_ALAW | |
15 #define AFMT_S16_LE AUDIO_ENCODING_LINEAR | |
16 #define AFMT_IMA_ADPCM AUDIO_ENCODING_DVI | |
17 #define AFMT_U8 AUDIO_ENCODING_LINEAR8 | |
18 #endif | |
19 | 7 |
20 extern int verbose; // defined in mplayer.c | 8 extern int verbose; // defined in mplayer.c |
21 | 9 |
22 #ifdef USE_FAKE_MONO | 10 #ifdef USE_FAKE_MONO |
23 int fakemono=0; | 11 int fakemono=0; |
170 sh_audio->samplerate=h->nSamplesPerSec; | 158 sh_audio->samplerate=h->nSamplesPerSec; |
171 sh_audio->samplesize=(h->wBitsPerSample+7)/8; | 159 sh_audio->samplesize=(h->wBitsPerSample+7)/8; |
172 switch(sh_audio->format){ // hardware formats: | 160 switch(sh_audio->format){ // hardware formats: |
173 case 0x6: sh_audio->sample_format=AFMT_A_LAW;break; | 161 case 0x6: sh_audio->sample_format=AFMT_A_LAW;break; |
174 case 0x7: sh_audio->sample_format=AFMT_MU_LAW;break; | 162 case 0x7: sh_audio->sample_format=AFMT_MU_LAW;break; |
175 #if !defined(__NetBSD__) | |
176 case 0x11: sh_audio->sample_format=AFMT_IMA_ADPCM;break; | 163 case 0x11: sh_audio->sample_format=AFMT_IMA_ADPCM;break; |
177 #endif | |
178 #if !defined(__sun) && !defined(__NetBSD__) | |
179 case 0x50: sh_audio->sample_format=AFMT_MPEG;break; | 164 case 0x50: sh_audio->sample_format=AFMT_MPEG;break; |
180 #endif | |
181 // case 0x2000: sh_audio->sample_format=AFMT_AC3; | 165 // case 0x2000: sh_audio->sample_format=AFMT_AC3; |
182 default: sh_audio->sample_format=(sh_audio->samplesize==2)?AFMT_S16_LE:AFMT_U8; | 166 default: sh_audio->sample_format=(sh_audio->samplesize==2)?AFMT_S16_LE:AFMT_U8; |
183 } | 167 } |
184 break; | 168 break; |
185 } | 169 } |
276 int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen){ | 260 int decode_audio(sh_audio_t *sh_audio,unsigned char *buf,int minlen,int maxlen){ |
277 int len=-1; | 261 int len=-1; |
278 switch(sh_audio->codec->driver){ | 262 switch(sh_audio->codec->driver){ |
279 case 1: // MPEG layer 2 or 3 | 263 case 1: // MPEG layer 2 or 3 |
280 len=MP3_DecodeFrame(buf,-1); | 264 len=MP3_DecodeFrame(buf,-1); |
281 sh_audio->channels=2; // hack | |
282 break; | 265 break; |
283 case 2: // AVI PCM | 266 case 2: // AVI PCM |
284 { len=demux_read_data(sh_audio->ds,buf,minlen); | 267 len=demux_read_data(sh_audio->ds,buf,minlen); |
285 break; | 268 break; |
286 } | |
287 case 8: // DVD PCM | 269 case 8: // DVD PCM |
288 { int j; | 270 { int j; |
289 len=demux_read_data(sh_audio->ds,buf,minlen); | 271 len=demux_read_data(sh_audio->ds,buf,minlen); |
290 //if(i&1){ printf("Warning! pcm_audio_size&1 !=0 (%d)\n",i);i&=~1; } | 272 //if(i&1){ printf("Warning! pcm_audio_size&1 !=0 (%d)\n",i);i&=~1; } |
291 // swap endian: | 273 // swap endian: |