[Mplayer-cvslog] CVS: main/libao2 ao_sdl.c,1.8,1.9

Felix Buenemann atmosfear at users.sourceforge.net
Sat Jun 9 09:36:34 CEST 2001


Update of /cvsroot/mplayer/main/libao2
In directory usw-pr-cvs1:/tmp/cvs-serv10721

Modified Files:
	ao_sdl.c 
Log Message:
Better audio format handling.


Index: ao_sdl.c
===================================================================
RCS file: /cvsroot/mplayer/main/libao2/ao_sdl.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** ao_sdl.c	2001/06/05 18:40:44	1.8
--- ao_sdl.c	2001/06/09 07:36:32	1.9
***************
*** 16,19 ****
--- 16,20 ----
  #include "audio_out.h"
  #include "audio_out_internal.h"
+ #include "afmt.h"
  
  #include "../libvo/fastmemcpy.h"
***************
*** 47,51 ****
  
  #define BUFFSIZE 4096
! #define NUM_BUFS 16
  
  static unsigned char *buffer[NUM_BUFS];
--- 48,52 ----
  
  #define BUFFSIZE 4096
! #define NUM_BUFS 16 
  
  static unsigned char *buffer[NUM_BUFS];
***************
*** 133,137 ****
--- 134,141 ----
  void outputaudio(void *unused, Uint8 *stream, int len) {
  	//SDL_MixAudio(stream, read_buffer(buffers, len), len, SDL_MIX_MAXVOLUME);
+ 	//if(!full_buffers) printf("SDL: Buffer underrun!\n");
+ 
  	read_buffer(stream, len);
+ 	//printf("SDL: Full Buffers: %i\n", full_buffers);
  }
  
***************
*** 155,164 ****
  	
  	
  	/* The desired audio frequency in samples-per-second. */
  	aspec.freq     = rate;
  
- 	/* The desired audio format (see SDL_AudioSpec) */
- 	aspec.format   = (format == 16) ? AUDIO_S16 : AUDIO_U8;
- 
  	/* Number of channels (mono/stereo) */
  	aspec.channels = channels;
--- 159,190 ----
  	
  	
+ 	/* The desired audio format (see SDL_AudioSpec) */
+ 	switch(format) {
+ 	    case AFMT_U8:
+ 		aspec.format = AUDIO_U8;
+ 	    break;
+ 	    case AFMT_S16_LE:
+ 		aspec.format = AUDIO_S16LSB;
+ 	    break;
+ 	    case AFMT_S16_BE:
+ 		aspec.format = AUDIO_S16MSB;
+ 	    break;
+ 	    case AFMT_S8:
+ 		aspec.format = AUDIO_S8;
+ 	    break;
+ 	    case AFMT_U16_LE:
+ 		aspec.format = AUDIO_U16LSB;
+ 	    break;
+ 	    case AFMT_U16_BE:
+ 		aspec.format = AUDIO_U16MSB;
+ 	    break;
+ 	    default:
+                 printf("SDL: Unsupported audio format: 0x%x.\n", format);
+                 return 0;
+ 	}
+ 
  	/* The desired audio frequency in samples-per-second. */
  	aspec.freq     = rate;
  
  	/* Number of channels (mono/stereo) */
  	aspec.channels = channels;
***************
*** 204,208 ****
  // stop playing and empty buffers (for seeking/pause)
  static void reset(){
! 	
  	/* Reset ring-buffer state */
  	buf_read=0;
--- 230,236 ----
  // stop playing and empty buffers (for seeking/pause)
  static void reset(){
! 
! 	//printf("SDL: reset called!\n");	
! 
  	/* Reset ring-buffer state */
  	buf_read=0;


_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog



More information about the MPlayer-cvslog mailing list