summaryrefslogtreecommitdiff
path: root/src/xine-engine/audio_out.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-engine/audio_out.c')
-rw-r--r--src/xine-engine/audio_out.c67
1 files changed, 50 insertions, 17 deletions
diff --git a/src/xine-engine/audio_out.c b/src/xine-engine/audio_out.c
index 9247e3411..e263b73e5 100644
--- a/src/xine-engine/audio_out.c
+++ b/src/xine-engine/audio_out.c
@@ -17,7 +17,7 @@
* along with self program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: audio_out.c,v 1.171 2004/04/07 18:07:25 mroi Exp $
+ * $Id: audio_out.c,v 1.172 2004/04/26 17:50:12 mroi Exp $
*
* 22-8-2001 James imported some useful AC3 sections from the previous alsa driver.
* (c) 2001 Andy Lo A Foe <andy@alsaplayer.org>
@@ -1843,7 +1843,7 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
int i, err;
pthread_attr_t pth_attrs;
static char *resample_modes[] = {"auto", "off", "on", NULL};
- static char *av_sync_methods[] = {"metronom_feedback", "resample", NULL};
+ static char *av_sync_methods[] = {"metronom feedback", "resample", NULL};
this = xine_xmalloc (sizeof (aos_t)) ;
@@ -1883,26 +1883,59 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
this->av_sync_method_conf = config->register_enum(config, "audio.av_sync_method", 0,
av_sync_methods,
- _("choose method to sync audio and video"),
- _("'resample' might be better if you use a "
- "DXR3/H+ card and (analog) audio is "
- "processed by your sound card"),
- 30, ao_update_av_sync_method, this);
+ _("method to sync audio and video"),
+ _("When playing audio and video, there are at least "
+ "two clocks involved: The system clock, to which "
+ "video frames are synchronized and the clock "
+ "in your sound hardware, which determines the "
+ "speed of the audio playback. These clocks are "
+ "never ticking at the same speed except for some "
+ "rare cases where they are physically identical. "
+ "In general, the two clocks will run drift after "
+ "some time, for which xine offers two ways to "
+ "keep audio and video synchronized:\n\n"
+ "metronom feedback\n"
+ "This is the standard method, which applies a "
+ "countereffecting video drift, as soon as the audio "
+ "drift has accumulated over a threshold.\n\n"
+ "resample\n"
+ "For some video hardware, which is limited to a "
+ "fixed frame rate (like the DXR3 or other decoder "
+ "cards) the above does not work, because the video "
+ "cannot drift. Therefore we resample the audio "
+ "stream to make it longer or shorter to compensate "
+ "the audio drift error. This does not work for "
+ "digital passthrough, where audio data is passed to "
+ "an external decoder in digital form."),
+ 20, ao_update_av_sync_method, this);
config->update_num(config,"audio.av_sync_method",this->av_sync_method_conf);
this->resample_conf = config->register_enum (config, "audio.resample_mode", 0,
resample_modes,
- _("adjust whether resampling is done or not"),
- NULL, 20, NULL, NULL);
+ _("enable resampling"),
+ _("When the sample rate of the decoded audio does not "
+ "match the capabilities of your sound hardware, an "
+ "adaptation called \"resampling\" is required. Here you "
+ "can select, whether resampling is enabled, disabled or "
+ "used automatically when necessary."),
+ 20, NULL, NULL);
this->force_rate = config->register_num (config, "audio.force_rate", 0,
- _("if !=0 always resample to given rate"),
- NULL, 20, NULL, NULL);
+ _("always resample to this rate (0 to disable)"),
+ _("Some audio drivers do not correctly announce the "
+ "capabilities of the audio hardware. By setting a "
+ "value other than zero here, you can force the audio "
+ "stream to be resampled to the given rate."),
+ 20, NULL, NULL);
this->passthrough_offset = config->register_num (config,
"audio.passthrough_offset",
0,
- _("adjust if audio is offsync"),
- NULL, 10, NULL, NULL);
+ _("offset for digital passthrough"),
+ _("If you use an external surround decoder and "
+ "audio is ahead or behind video, you can enter "
+ "a fixed offset here to compensate.\nThe unit of "
+ "the value is one PTS tick, which is the 90000th "
+ "part of a second."), 10, NULL, NULL);
this->compression_factor = 2.0;
this->compression_factor_max = 0.0;
@@ -1968,13 +2001,13 @@ xine_audio_port_t *_x_ao_new_port (xine_t *xine, ao_driver_t *driver,
int vol;
vol = config->register_range (config, "audio.mixer_volume",
- 50, 0, 100, _("Audio volume"),
- NULL, 0, NULL, NULL);
+ 50, 0, 100, _("startup audio volume"),
+ _("The overall audio volume set at xine startup."), 10, NULL, NULL);
if(config->register_bool (config, "audio.remember_volume", 0,
_("restore volume level at startup"),
- _("if this not set, xine will not touch any mixer settings at startup"),
- 0, NULL, NULL)) {
+ _("If disabled, xine will not modify any mixer settings at startup."),
+ 10, NULL, NULL)) {
int prop = 0;
if((ao_get_capabilities(&this->ao)) & AO_CAP_MIXER_VOL)