Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
e01aa2ce
Commit
e01aa2ce
authored
Apr 26, 2005
by
Sam Hocevar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* support for --esdserver. doesn't seem to work yet, though...
parent
5d3b8d9d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
12 deletions
+45
-12
modules/audio_output/esd.c
modules/audio_output/esd.c
+45
-12
No files found.
modules/audio_output/esd.c
View file @
e01aa2ce
...
@@ -36,6 +36,9 @@
...
@@ -36,6 +36,9 @@
#include <sys/socket.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <time.h>
#include <esd.h>
#include <esd.h>
/*****************************************************************************
/*****************************************************************************
...
@@ -66,6 +69,7 @@ vlc_module_begin();
...
@@ -66,6 +69,7 @@ vlc_module_begin();
set_description
(
_
(
"EsounD audio output"
)
);
set_description
(
_
(
"EsounD audio output"
)
);
set_shortname
(
"EsounD"
);
set_shortname
(
"EsounD"
);
set_capability
(
"audio output"
,
50
);
set_capability
(
"audio output"
,
50
);
add_string
(
"esdserver"
,
""
,
NULL
,
N_
(
"Esound server"
),
NULL
,
VLC_FALSE
);
set_category
(
CAT_AUDIO
);
set_category
(
CAT_AUDIO
);
set_subcategory
(
SUBCAT_AUDIO_AOUT
);
set_subcategory
(
SUBCAT_AUDIO_AOUT
);
set_callbacks
(
Open
,
Close
);
set_callbacks
(
Open
,
Close
);
...
@@ -79,9 +83,9 @@ static int Open( vlc_object_t *p_this )
...
@@ -79,9 +83,9 @@ static int Open( vlc_object_t *p_this )
{
{
aout_instance_t
*
p_aout
=
(
aout_instance_t
*
)
p_this
;
aout_instance_t
*
p_aout
=
(
aout_instance_t
*
)
p_this
;
struct
aout_sys_t
*
p_sys
;
struct
aout_sys_t
*
p_sys
;
char
*
psz_server
;
int
i_nb_channels
;
int
i_nb_channels
;
int
i_newfd
=
-
1
;
int
i_newfd
;
int
fl
;
/* Allocate structure */
/* Allocate structure */
p_sys
=
malloc
(
sizeof
(
aout_sys_t
)
);
p_sys
=
malloc
(
sizeof
(
aout_sys_t
)
);
...
@@ -122,11 +126,24 @@ static int Open( vlc_object_t *p_this )
...
@@ -122,11 +126,24 @@ static int Open( vlc_object_t *p_this )
/* Force the rate, otherwise the sound is very noisy */
/* Force the rate, otherwise the sound is very noisy */
p_aout
->
output
.
output
.
i_rate
=
ESD_DEFAULT_RATE
;
p_aout
->
output
.
output
.
i_rate
=
ESD_DEFAULT_RATE
;
p_aout
->
output
.
i_nb_samples
=
ESD_BUF_SIZE
*
2
;
/*
o
pen a socket for playing a stream
/*
O
pen a socket for playing a stream
* and try to open /dev/dsp if there's no EsounD */
* and try to open /dev/dsp if there's no EsounD */
p_sys
->
i_fd
=
esd_play_stream_fallback
(
p_sys
->
esd_format
,
psz_server
=
config_GetPsz
(
p_aout
,
"esdserver"
);
p_aout
->
output
.
output
.
i_rate
,
NULL
,
"vlc"
);
if
(
psz_server
&&
*
psz_server
)
{
p_sys
->
i_fd
=
esd_play_stream_fallback
(
p_sys
->
esd_format
,
p_aout
->
output
.
output
.
i_rate
,
psz_server
,
"vlc"
);
}
else
{
p_sys
->
i_fd
=
esd_play_stream_fallback
(
p_sys
->
esd_format
,
p_aout
->
output
.
output
.
i_rate
,
NULL
,
"vlc"
);
}
if
(
p_sys
->
i_fd
<
0
)
if
(
p_sys
->
i_fd
<
0
)
{
{
msg_Err
(
p_aout
,
"cannot open esound socket (format 0x%08x at %d Hz)"
,
msg_Err
(
p_aout
,
"cannot open esound socket (format 0x%08x at %d Hz)"
,
...
@@ -135,16 +152,32 @@ static int Open( vlc_object_t *p_this )
...
@@ -135,16 +152,32 @@ static int Open( vlc_object_t *p_this )
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
p_aout
->
output
.
i_nb_samples
=
ESD_BUF_SIZE
*
2
;
if
(
psz_server
&&
*
psz_server
)
{
struct
timeval
start
,
stop
;
esd_server_info_t
*
p_info
;
gettimeofday
(
&
start
,
NULL
);
p_info
=
esd_get_server_info
(
p_sys
->
i_fd
);
gettimeofday
(
&
stop
,
NULL
);
p_sys
->
latency
=
(
mtime_t
)(
stop
.
tv_sec
-
start
.
tv_sec
)
*
(
mtime_t
)
1000000
;
p_sys
->
latency
+=
stop
.
tv_usec
-
start
.
tv_usec
;
}
else
{
p_sys
->
latency
=
0
;
}
/* ESD latency is calculated for 44100 Hz. We don't have any way to get the
/* ESD latency is calculated for 44100 Hz. We don't have any way to get the
* number of buffered samples, so I assume ESD_BUF_SIZE/2 */
* number of buffered samples, so I assume ESD_BUF_SIZE/2 */
p_sys
->
latency
=
p_sys
->
latency
+
=
(
mtime_t
)(
esd_get_latency
(
i_newfd
=
esd_open_sound
(
NULL
)
)
+
(
mtime_t
)(
esd_get_latency
(
i_newfd
=
esd_open_sound
(
NULL
)
)
ESD_BUF_SIZE
/
2
+
ESD_BUF_SIZE
/
2
*
p_aout
->
output
.
output
.
i_bytes_per_frame
*
p_aout
->
output
.
output
.
i_bytes_per_frame
*
p_aout
->
output
.
output
.
i_rate
*
p_aout
->
output
.
output
.
i_rate
/
ESD_DEFAULT_RATE
)
/
ESD_DEFAULT_RATE
)
*
(
mtime_t
)
1000000
*
(
mtime_t
)
1000000
/
p_aout
->
output
.
output
.
i_bytes_per_frame
/
p_aout
->
output
.
output
.
i_bytes_per_frame
/
p_aout
->
output
.
output
.
i_rate
;
/
p_aout
->
output
.
output
.
i_rate
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment