Mercurial > mplayer.hg
annotate libao2/audio_plugin.h @ 10956:fdcd0d571912
support for selecting which plane to use for metrics in the pullup
core (one of the chroma planes could be used for much lower cpu load
at the expense of some accuracy) and turning off verbose mode.
author | rfelker |
---|---|
date | Sun, 28 Sep 2003 03:37:42 +0000 |
parents | 12b1790038b0 |
children | 815f03b7cee5 |
rev | line source |
---|---|
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
1 #ifndef __audio_plugin_h__ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
2 #define __audio_plugin_h__ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
3 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
4 // Functions supplied by plugins |
3096 | 5 typedef struct ao_plugin_functions_s |
6 { | |
7 ao_info_t *info; | |
9633
12b1790038b0
64bit libao2 fix by Jens Axboe <mplayer-dev@kernel.dk>
alex
parents:
6795
diff
changeset
|
8 int (*control)(int cmd, void *arg); |
3096 | 9 int (*init)(); |
10 void (*uninit)(); | |
11 void (*reset)(); | |
12 int (*play)(); | |
13 } ao_plugin_functions_t; | |
14 | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
15 // Global data for all audio plugins |
3096 | 16 typedef struct ao_plugin_data_s |
17 { | |
18 void* data; /* current data block read only ok to change */ | |
19 int len; /* setup and current buffer length */ | |
20 int rate; /* setup data rate */ | |
21 int channels; /* setup number of channels */ | |
22 int format; /* setup format */ | |
23 double sz_mult; /* Buffer size multiplier */ | |
3107 | 24 double sz_fix; /* Fix (as in static) extra buffer size */ |
3096 | 25 float delay_mult; /* Delay multiplier */ |
26 float delay_fix; /* Fix delay */ | |
27 }ao_plugin_data_t; | |
28 | |
3335 | 29 extern volatile ao_plugin_data_t ao_plugin_data; |
3096 | 30 |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
31 // Plugin confuguration data set by cmd-line parameters |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
32 typedef struct ao_plugin_cfg_s |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
33 { |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
34 char* plugin_list; // List of used plugins read from cfg |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
35 int pl_format_type; // Output format |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
36 int pl_delay_len; // Number of samples to delay sound output |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
37 int pl_resample_fout; // Output frequency from resampling |
4859 | 38 int pl_volume_volume; // Initial volume setting |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
39 float pl_extrastereo_mul; // Stereo enhancer multiplier |
5063 | 40 int pl_volume_softclip; // Enable soft clipping |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
41 } ao_plugin_cfg_t; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
42 |
4859 | 43 extern ao_plugin_cfg_t ao_plugin_cfg; |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
44 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
45 // Configuration defaults |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
46 #define CFG_DEFAULTS { \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
47 NULL, \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
48 AFMT_S16_LE, \ |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
49 0, \ |
4859 | 50 48000, \ |
5063 | 51 101, \ |
52 2.5, \ | |
53 0 \ | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
54 }; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
55 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
56 // This block should not be available in the pl_xxxx files |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
57 // due to compilation issues |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
58 #ifndef PLUGIN |
6430 | 59 #define NPL 8+1 // Number of PLugins ( +1 list ends with NULL ) |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
60 // List of plugins |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
61 extern ao_plugin_functions_t audio_plugin_delay; |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
62 extern ao_plugin_functions_t audio_plugin_format; |
3315 | 63 extern ao_plugin_functions_t audio_plugin_surround; |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
64 extern ao_plugin_functions_t audio_plugin_resample; |
4859 | 65 extern ao_plugin_functions_t audio_plugin_volume; |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
66 extern ao_plugin_functions_t audio_plugin_extrastereo; |
4941 | 67 extern ao_plugin_functions_t audio_plugin_volnorm; |
6430 | 68 extern ao_plugin_functions_t audio_plugin_eq; |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
69 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
70 #define AO_PLUGINS { \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
71 &audio_plugin_delay, \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
72 &audio_plugin_format, \ |
3315 | 73 &audio_plugin_surround, \ |
3631
5f5189ac6a41
Added plugin for fractional resampling (alpha code)
anders
parents:
3335
diff
changeset
|
74 &audio_plugin_resample, \ |
4859 | 75 &audio_plugin_volume, \ |
4927
3022570ad7d4
Extrastereo plugin: increases linearly the difference between left and right
pl
parents:
4859
diff
changeset
|
76 &audio_plugin_extrastereo, \ |
4941 | 77 &audio_plugin_volnorm, \ |
6430 | 78 &audio_plugin_eq, \ |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
79 NULL \ |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
80 } |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
81 #endif /* PLUGIN */ |
3107 | 82 |
83 | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
84 // Control parameters used by the plugins |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
85 #define AOCONTROL_PLUGIN_SET_LEN 1 // All plugins must respond to this parameter |
6795 | 86 #define AOCONTROL_PLUGIN_ES_SET 4 // set extra stereo coefficient |
87 #define AOCONTROL_PLUGIN_ES_GET 5 // get extra stereo coefficient | |
3194
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
88 |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
89 #endif |
1648d11fc36c
commandline configuration of audio plugins now through struct, format conversion plugin added
anders
parents:
3107
diff
changeset
|
90 |