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: