mirror of https://github.com/mpv-player/mpv
make the internal sdl mixer optional, idea by Reimar Doffinger
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12674 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
ba3c4568fb
commit
309e81bcee
|
@ -35,6 +35,9 @@ static ao_info_t info =
|
|||
|
||||
LIBAO_EXTERN(sdl)
|
||||
|
||||
// turn this on if you want to use the slower SDL_MixAudio
|
||||
#undef USE_SDL_INTERNAL_MIXER
|
||||
|
||||
// Samplesize used by the SDLlib AudioSpec struct
|
||||
#ifdef WIN32
|
||||
#define SAMPLESIZE 2048
|
||||
|
@ -53,7 +56,9 @@ static unsigned int buf_read=0;
|
|||
static unsigned int buf_write=0;
|
||||
static unsigned int buf_read_pos=0;
|
||||
static unsigned int buf_write_pos=0;
|
||||
#ifdef USE_SDL_INTERNAL_MIXER
|
||||
static unsigned char volume=SDL_MIX_MAXVOLUME;
|
||||
#endif
|
||||
static int full_buffers=0;
|
||||
static int buffered_bytes=0;
|
||||
|
||||
|
@ -87,7 +92,11 @@ static int read_buffer(unsigned char* data,int len){
|
|||
x=BUFFSIZE-buf_read_pos;
|
||||
if(x>len) x=len;
|
||||
if (x>buffered_bytes) x=buffered_bytes;
|
||||
#ifdef USE_SDL_INTERNAL_MIXER
|
||||
SDL_MixAudio(data+len2,buffer[buf_read]+buf_read_pos,x,volume);
|
||||
#else
|
||||
memcpy(data+len2,buffer[buf_read]+buf_read_pos,x);
|
||||
#endif
|
||||
len2+=x; len-=x;
|
||||
buffered_bytes-=x; buf_read_pos+=x;
|
||||
if(buf_read_pos>=BUFFSIZE){
|
||||
|
@ -121,6 +130,7 @@ static void setenv(const char *name, const char *val, int _xx)
|
|||
|
||||
// to set/get/query special features/parameters
|
||||
static int control(int cmd,void *arg){
|
||||
#ifdef USE_SDL_INTERNAL_MIXER
|
||||
switch (cmd) {
|
||||
case AOCONTROL_GET_VOLUME:
|
||||
{
|
||||
|
@ -137,7 +147,8 @@ static int control(int cmd,void *arg){
|
|||
return CONTROL_OK;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
#endif
|
||||
return CONTROL_UNKNOWN;
|
||||
}
|
||||
|
||||
// SDL Callback function
|
||||
|
|
Loading…
Reference in New Issue