Commit 0f1869c5 authored by Boris Dorès's avatar Boris Dorès

- input.c : doesn't even try to use the headphone filter for

            unsupported format (S/PDIF, ...)
- m3u.c : support for MRLs
          better detection of absolute path under Windows
- configure.ac.in : off_t was defined twice for mingw32
- fr.po : translation of headphone filter strings
parent 0acdca90
...@@ -117,7 +117,7 @@ case "x${target_os}" in ...@@ -117,7 +117,7 @@ case "x${target_os}" in
if test "x$SYS" = "xmingw32"; then if test "x$SYS" = "xmingw32"; then
# add ws2_32 for closesocket, select, recv # add ws2_32 for closesocket, select, recv
CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long" CPPFLAGS_save="${CPPFLAGS_save}"
CPPFLAGS="${CPPFLAGS_save}" CPPFLAGS="${CPPFLAGS_save}"
LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows" LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32" LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* m3u.c: a meta demux to parse m3u and asx playlists * m3u.c: a meta demux to parse m3u and asx playlists
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: m3u.c,v 1.10 2002/12/14 01:05:53 babal Exp $ * $Id: m3u.c,v 1.11 2003/01/16 21:14:23 babal Exp $
* *
* Authors: Sigmund Augdal <sigmunau@idi.ntnu.no> * Authors: Sigmund Augdal <sigmunau@idi.ntnu.no>
* Gildas Bazin <gbazin@netcourrier.com> * Gildas Bazin <gbazin@netcourrier.com>
...@@ -255,27 +255,54 @@ static void ProcessLine ( input_thread_t *p_input , demux_sys_t *p_m3u ...@@ -255,27 +255,54 @@ static void ProcessLine ( input_thread_t *p_input , demux_sys_t *p_m3u
} }
/* empty line */
if ( !*psz_bol ) return;
/* /*
* From now on, we know we've got a meaningful line * From now on, we know we've got a meaningful line
*/ */
/* Check if the line has an absolute or relative path */ /* check for a protocol name */
/* for URL, we should look for "://"
* for MRL (Media Resource Locator) ([[<access>][/<demux>]:][<source>]),
* we should look for ":"
* so we end up looking simply for ":"*/
/* PB: on some file systems, ':' are valid characters though*/
psz_name = psz_bol; psz_name = psz_bol;
while( *psz_name && strncmp( psz_name, "://", sizeof("://") - 1 ) ) while( *psz_name && *psz_name!=':' )
{ {
psz_name++; psz_name++;
} }
#ifdef WIN32
if ( *psz_name && ( psz_name == psz_bol + 1 ) )
{
/* if it is not an URL,
* as it is unlikely to be an MRL (PB: if it is ?)
* it should be an absolute file name with the drive letter */
if ( *(psz_name+1) == '/' )/* "*:/" */
{
if ( *(psz_name+2) != '/' )/* not "*://" */
while ( *psz_name ) *psz_name++;/* so now (*psz_name==0) */
}
else while ( *psz_name ) *psz_name++;/* "*:*"*/
}
#endif
/* if the line doesn't specify a protocol name,
* check if the line has an absolute or relative path */
#ifndef WIN32 #ifndef WIN32
if( !*psz_name && *psz_bol != '/' ) if( !*psz_name && *psz_bol != '/' )
/* If this line doesn't begin with a '/' */
#else #else
if( !*psz_name && (strlen(psz_bol) < 2 || if( !*psz_name
( *(psz_bol+1) != ':' && && *psz_bol!='/'
strncmp( psz_bol, "\\\\", 2 ) ) ) ) && *psz_bol!='\\'
&& *(psz_bol+1)!=':' )
/* if this line doesn't begin with
* "/" or "\" or "*:" or "*:\" or "*:/" or "\\" */
#endif #endif
{ {
/* the line doesn't specify a protocol name. /* assume the path is relative to the path of the m3u file. */
* If this line doesn't begin with a '/' then assume the path
* is relative to the path of the m3u file. */
char *psz_path = strdup( p_input->psz_name ); char *psz_path = strdup( p_input->psz_name );
#ifndef WIN32 #ifndef WIN32
......
...@@ -216,7 +216,7 @@ msgstr "" ...@@ -216,7 +216,7 @@ msgstr ""
#: src/libvlc.h:93 #: src/libvlc.h:93
msgid "headphone virtual spatialization effect" msgid "headphone virtual spatialization effect"
msgstr "" msgstr "effet de spatialisation virtuelle pour casque stro"
#: src/libvlc.h:95 #: src/libvlc.h:95
msgid "" msgid ""
...@@ -226,16 +226,24 @@ msgid "" ...@@ -226,16 +226,24 @@ msgid ""
"tiring when listening to music for long periods of time.\n" "tiring when listening to music for long periods of time.\n"
"It works with any source format from mono to 5.1." "It works with any source format from mono to 5.1."
msgstr "" msgstr ""
"Cet effet donne l'impression d'tre dans une pice relle avec un "
"ensemble de haut-parleurs en 5.1 en utilisant simplement un casque "
"stro, et procure ainsi une ambiance sonore plus raliste. Ecouter de "
"la musique de faon prolonge devrait galement tre plus confortable "
"et moins fatiguant.\nCela marche avec n'importe quelle format audio, "
"depuis une source mono jusqu' une source 5.1."
#: src/libvlc.h:102 #: src/libvlc.h:102
msgid "characteristic dimension" msgid "characteristic dimension"
msgstr "" msgstr "dimension caractristique"
#: src/libvlc.h:104 #: src/libvlc.h:104
msgid "" msgid ""
"Headphone virtual spatialization effect parameter: distance between front " "Headphone virtual spatialization effect parameter: distance between front "
"left speaker and listener in meters." "left speaker and listener in meters."
msgstr "" msgstr ""
"Parmtre pour l'effet de spatialisation virtuelle pour casque stro: "
"distance entre le haut parleur avant gauche et l'auditeur en mtres."
#: src/libvlc.h:107 #: src/libvlc.h:107
msgid "video output module" msgid "video output module"
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* input.c : internal management of input streams for the audio output * input.c : internal management of input streams for the audio output
***************************************************************************** *****************************************************************************
* Copyright (C) 2002 VideoLAN * Copyright (C) 2002 VideoLAN
* $Id: input.c,v 1.29 2002/12/25 02:23:37 massiot Exp $ * $Id: input.c,v 1.30 2003/01/16 21:14:23 babal Exp $
* *
* Authors: Christophe Massiot <massiot@via.ecp.fr> * Authors: Christophe Massiot <massiot@via.ecp.fr>
* *
...@@ -43,6 +43,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input ) ...@@ -43,6 +43,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
{ {
audio_sample_format_t intermediate_format, headphone_intermediate_format; audio_sample_format_t intermediate_format, headphone_intermediate_format;
aout_filter_t * p_headphone_filter; aout_filter_t * p_headphone_filter;
vlc_bool_t b_use_headphone_filter = VLC_FALSE;
aout_FormatPrint( p_aout, "input", &p_input->input ); aout_FormatPrint( p_aout, "input", &p_input->input );
...@@ -50,13 +51,30 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input ) ...@@ -50,13 +51,30 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
aout_FifoInit( p_aout, &p_input->fifo, p_aout->mixer.mixer.i_rate ); aout_FifoInit( p_aout, &p_input->fifo, p_aout->mixer.mixer.i_rate );
p_input->p_first_byte_to_mix = NULL; p_input->p_first_byte_to_mix = NULL;
/* Create filters. */ /* Prepare format structure */
memcpy( &intermediate_format, &p_aout->mixer.mixer, memcpy( &intermediate_format, &p_aout->mixer.mixer,
sizeof(audio_sample_format_t) ); sizeof(audio_sample_format_t) );
intermediate_format.i_rate = p_input->input.i_rate;
/* Headphone filter add-ons. */
memcpy( &headphone_intermediate_format, &p_aout->mixer.mixer, memcpy( &headphone_intermediate_format, &p_aout->mixer.mixer,
sizeof(audio_sample_format_t) ); sizeof(audio_sample_format_t) );
headphone_intermediate_format.i_rate = p_input->input.i_rate;
if ( config_GetInt( p_aout , "headphone" ) ) if ( config_GetInt( p_aout , "headphone" ) )
{ {
/* Do we use heaphone filter ? */
if ( intermediate_format.i_physical_channels
== ( AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT )
&& ( intermediate_format.i_format != VLC_FOURCC('f','l','3','2')
|| intermediate_format.i_format != VLC_FOURCC('f','i','3','2')
) )
{
b_use_headphone_filter = VLC_TRUE;
}
}
if ( b_use_headphone_filter == VLC_TRUE )
{
/* Split the filter pipeline. */
headphone_intermediate_format.i_physical_channels = p_input->input.i_physical_channels; headphone_intermediate_format.i_physical_channels = p_input->input.i_physical_channels;
headphone_intermediate_format.i_original_channels = p_input->input.i_original_channels; headphone_intermediate_format.i_original_channels = p_input->input.i_original_channels;
headphone_intermediate_format.i_bytes_per_frame = headphone_intermediate_format.i_bytes_per_frame =
...@@ -65,8 +83,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input ) ...@@ -65,8 +83,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
/ aout_FormatNbChannels( &intermediate_format ); / aout_FormatNbChannels( &intermediate_format );
} }
intermediate_format.i_rate = p_input->input.i_rate; /* Create filters. */
headphone_intermediate_format.i_rate = p_input->input.i_rate;
if ( aout_FiltersCreatePipeline( p_aout, p_input->pp_filters, if ( aout_FiltersCreatePipeline( p_aout, p_input->pp_filters,
&p_input->i_nb_filters, &p_input->input, &p_input->i_nb_filters, &p_input->input,
&headphone_intermediate_format ) < 0 ) &headphone_intermediate_format ) < 0 )
...@@ -79,7 +96,8 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input ) ...@@ -79,7 +96,8 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input )
return -1; return -1;
} }
if ( config_GetInt( p_aout , "headphone" ) ) /* Headphone filter add-ons. */
if ( b_use_headphone_filter == VLC_TRUE )
{ {
/* create a vlc object */ /* create a vlc object */
p_headphone_filter = vlc_object_create( p_aout p_headphone_filter = vlc_object_create( p_aout
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment