annotate mixer.c @ 10252:d275152390ee

I've found some time to implement the encoding support for the new DivX API. Now it's possible to play and encode movies with the latest DivX release. One thing that doesn't work is the new Video Buffer Verifier (VBV) multipass encoding. The encoder segfaults. Maybe it just isn't supported with the standard profile of the released binary encoder. Andreas Hess <jaska@gmx.net>
author arpi
date Fri, 06 Jun 2003 19:57:37 +0000
parents 6586ec1f6ee4
children 4e8f8efb6906
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
1
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
2 #include <string.h>
9772
6586ec1f6ee4 MINGW32 port
faust3
parents: 9633
diff changeset
3 #ifndef __MINGW32__
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
4 #include <sys/ioctl.h>
9772
6586ec1f6ee4 MINGW32 port
faust3
parents: 9633
diff changeset
5 #endif
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
6 #include <fcntl.h>
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
7 #include <stdio.h>
605
abd7391a31e3 warnings killed
szabii
parents: 556
diff changeset
8 #include <unistd.h>
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
9
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
10 #include "config.h"
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
11 #include "mixer.h"
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
12 #include "libao2/audio_out.h"
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
13
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
14 extern ao_functions_t *audio_out;
1061
0f7be115a4db patch by J¸«ärgen Keil
arpi_esp
parents: 1038
diff changeset
15
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
16 char * mixer_device=NULL;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
17
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
18 int muted = 0;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
19 float mute_l = 0.0f;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
20 float mute_r = 0.0f;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
21
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
22 void mixer_getvolume( float *l,float *r )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
23 {
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
24 ao_control_vol_t vol;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
25 *l=0; *r=0;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
26 if(audio_out){
9633
12b1790038b0 64bit libao2 fix by Jens Axboe <mplayer-dev@kernel.dk>
alex
parents: 6311
diff changeset
27 if(CONTROL_OK != audio_out->control(AOCONTROL_GET_VOLUME,&vol))
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
28 return;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
29 *r=vol.right;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
30 *l=vol.left;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
31 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
32 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
33
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
34 void mixer_setvolume( float l,float r )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
35 {
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
36 ao_control_vol_t vol;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
37 vol.right=r; vol.left=l;
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
38 if(audio_out){
9633
12b1790038b0 64bit libao2 fix by Jens Axboe <mplayer-dev@kernel.dk>
alex
parents: 6311
diff changeset
39 if(CONTROL_OK != audio_out->control(AOCONTROL_SET_VOLUME,&vol))
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
40 return;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
41 }
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
42 muted=0;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
43 }
1061
0f7be115a4db patch by J¸«ärgen Keil
arpi_esp
parents: 1038
diff changeset
44
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
45 #define MIXER_CHANGE 3
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
46
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
47 void mixer_incvolume( void )
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
48 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
49 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
50 mixer_getvolume( &mixer_l,&mixer_r );
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
51 mixer_l += MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
52 if ( mixer_l > 100 ) mixer_l = 100;
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
53 mixer_r += MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
54 if ( mixer_r > 100 ) mixer_r = 100;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
55 mixer_setvolume( mixer_l,mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
56 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
57
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
58 void mixer_decvolume( void )
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
59 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
60 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
61 mixer_getvolume( &mixer_l,&mixer_r );
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
62 mixer_l -= MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
63 if ( mixer_l < 0 ) mixer_l = 0;
1881
d75b24bda7ce Applied fix for mixercontrol w/alsa ossemu by Christian Ohm.
atmos4
parents: 1061
diff changeset
64 mixer_r -= MIXER_CHANGE;
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
65 if ( mixer_r < 0 ) mixer_r = 0;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
66 mixer_setvolume( mixer_l,mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
67 }
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
68
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
69 float mixer_getbothvolume( void )
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
70 {
1038
b36fb1ae4b53 applied solaris8/netbsd/other fixes patch by J¸«ärgen Keil <jk@tools.de>
arpi_esp
parents: 1020
diff changeset
71 float mixer_l, mixer_r;
441
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
72 mixer_getvolume( &mixer_l,&mixer_r );
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
73 return ( mixer_l + mixer_r ) / 2;
c4b4e2aac9de ups, I missed'em..
gabucino
parents:
diff changeset
74 }
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
75
6311
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
76 void mixer_mute( void )
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
77 {
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
78 if ( muted ) mixer_setvolume( mute_l,mute_r );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
79 else
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
80 {
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
81 mixer_getvolume( &mute_l,&mute_r );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
82 mixer_setvolume( 0,0 );
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
83 muted=1;
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
84 }
da2dda48b7ec add mute support ( step 1 ) and fixed panscan bugs (1000l for me)
pontscho
parents: 4788
diff changeset
85 }
4788
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
86
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
87
d678ce495a75 Moved HW dependent mixer stuff to libao and removed master switch
anders
parents: 4749
diff changeset
88