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
297aefb7
Commit
297aefb7
authored
Aug 04, 2011
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
aout: move packet FIFO management to plugins that need it
parent
af6b8c3b
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
45 additions
and
52 deletions
+45
-52
include/vlc_aout.h
include/vlc_aout.h
+0
-1
modules/audio_output/adummy.c
modules/audio_output/adummy.c
+0
-2
modules/audio_output/alsa.c
modules/audio_output/alsa.c
+6
-5
modules/audio_output/audioqueue.c
modules/audio_output/audioqueue.c
+3
-2
modules/audio_output/auhal.c
modules/audio_output/auhal.c
+4
-2
modules/audio_output/directx.c
modules/audio_output/directx.c
+5
-3
modules/audio_output/file.c
modules/audio_output/file.c
+0
-5
modules/audio_output/jack.c
modules/audio_output/jack.c
+6
-4
modules/audio_output/opensles_android.c
modules/audio_output/opensles_android.c
+0
-1
modules/audio_output/oss.c
modules/audio_output/oss.c
+10
-11
modules/audio_output/portaudio.c
modules/audio_output/portaudio.c
+3
-1
modules/audio_output/pulse.c
modules/audio_output/pulse.c
+0
-2
modules/audio_output/waveout.c
modules/audio_output/waveout.c
+4
-2
src/audio_output/aout_internal.h
src/audio_output/aout_internal.h
+0
-2
src/audio_output/output.c
src/audio_output/output.c
+2
-9
src/libvlccore.sym
src/libvlccore.sym
+2
-0
No files found.
include/vlc_aout.h
View file @
297aefb7
...
@@ -175,7 +175,6 @@ struct audio_output
...
@@ -175,7 +175,6 @@ struct audio_output
void
(
*
pf_flush
)(
audio_output_t
*
,
bool
);
/**< Flush/drain callback
void
(
*
pf_flush
)(
audio_output_t
*
,
bool
);
/**< Flush/drain callback
(optional, may be NULL) */
(optional, may be NULL) */
aout_volume_cb
pf_volume_set
;
/**< Volume setter (or NULL) */
aout_volume_cb
pf_volume_set
;
/**< Volume setter (or NULL) */
int
i_nb_samples
;
};
};
/**
/**
...
...
modules/audio_output/adummy.c
View file @
297aefb7
...
@@ -44,7 +44,6 @@ vlc_module_begin ()
...
@@ -44,7 +44,6 @@ vlc_module_begin ()
add_shortcut
(
"dummy"
)
add_shortcut
(
"dummy"
)
vlc_module_end
()
vlc_module_end
()
#define FRAME_SIZE 2048
#define A52_FRAME_NB 1536
#define A52_FRAME_NB 1536
/*****************************************************************************
/*****************************************************************************
...
@@ -73,7 +72,6 @@ static int Open( vlc_object_t * p_this )
...
@@ -73,7 +72,6 @@ static int Open( vlc_object_t * p_this )
}
}
else
else
p_aout
->
format
.
i_format
=
HAVE_FPU
?
VLC_CODEC_FL32
:
VLC_CODEC_S16N
;
p_aout
->
format
.
i_format
=
HAVE_FPU
?
VLC_CODEC_FL32
:
VLC_CODEC_S16N
;
p_aout
->
i_nb_samples
=
A52_FRAME_NB
;
/* Create the variable for the audio-device */
/* Create the variable for the audio-device */
var_Create
(
p_aout
,
"audio-device"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
var_Create
(
p_aout
,
"audio-device"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
...
...
modules/audio_output/alsa.c
View file @
297aefb7
...
@@ -52,6 +52,7 @@
...
@@ -52,6 +52,7 @@
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
snd_pcm_t
*
p_snd_pcm
;
snd_pcm_t
*
p_snd_pcm
;
unsigned
int
i_period_time
;
unsigned
int
i_period_time
;
...
@@ -344,7 +345,7 @@ static int Open (vlc_object_t *obj)
...
@@ -344,7 +345,7 @@ static int Open (vlc_object_t *obj)
pcm_format
=
SND_PCM_FORMAT_S16
;
pcm_format
=
SND_PCM_FORMAT_S16
;
channels
=
2
;
channels
=
2
;
p_aout
->
i_nb_samples
=
i_period_size
=
ALSA_SPDIF_PERIOD_SIZE
;
i_period_size
=
ALSA_SPDIF_PERIOD_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
...
@@ -355,7 +356,7 @@ static int Open (vlc_object_t *obj)
...
@@ -355,7 +356,7 @@ static int Open (vlc_object_t *obj)
i_buffer_size
=
ALSA_DEFAULT_BUFFER_SIZE
;
i_buffer_size
=
ALSA_DEFAULT_BUFFER_SIZE
;
channels
=
aout_FormatNbChannels
(
&
p_aout
->
format
);
channels
=
aout_FormatNbChannels
(
&
p_aout
->
format
);
p_aout
->
i_nb_samples
=
i_period_size
=
ALSA_DEFAULT_PERIOD_SIZE
;
i_period_size
=
ALSA_DEFAULT_PERIOD_SIZE
;
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
}
}
...
@@ -433,7 +434,6 @@ static int Open (vlc_object_t *obj)
...
@@ -433,7 +434,6 @@ static int Open (vlc_object_t *obj)
snd_strerror
(
val
)
);
snd_strerror
(
val
)
);
goto
error
;
goto
error
;
}
}
p_aout
->
i_nb_samples
=
i_period_size
;
/* Set buffer size. */
/* Set buffer size. */
val
=
snd_pcm_hw_params_set_buffer_size_near
(
p_sys
->
p_snd_pcm
,
p_hw
,
val
=
snd_pcm_hw_params_set_buffer_size_near
(
p_sys
->
p_snd_pcm
,
p_hw
,
...
@@ -466,8 +466,7 @@ static int Open (vlc_object_t *obj)
...
@@ -466,8 +466,7 @@ static int Open (vlc_object_t *obj)
/* Get Initial software parameters */
/* Get Initial software parameters */
snd_pcm_sw_params_current
(
p_sys
->
p_snd_pcm
,
p_sw
);
snd_pcm_sw_params_current
(
p_sys
->
p_snd_pcm
,
p_sw
);
snd_pcm_sw_params_set_avail_min
(
p_sys
->
p_snd_pcm
,
p_sw
,
snd_pcm_sw_params_set_avail_min
(
p_sys
->
p_snd_pcm
,
p_sw
,
i_period_size
);
p_aout
->
i_nb_samples
);
/* start playing when one period has been written */
/* start playing when one period has been written */
val
=
snd_pcm_sw_params_set_start_threshold
(
p_sys
->
p_snd_pcm
,
p_sw
,
val
=
snd_pcm_sw_params_set_start_threshold
(
p_sys
->
p_snd_pcm
,
p_sw
,
ALSA_DEFAULT_PERIOD_SIZE
);
ALSA_DEFAULT_PERIOD_SIZE
);
...
@@ -495,6 +494,7 @@ static int Open (vlc_object_t *obj)
...
@@ -495,6 +494,7 @@ static int Open (vlc_object_t *obj)
p_sys
->
start_date
=
0
;
p_sys
->
start_date
=
0
;
vlc_sem_init
(
&
p_sys
->
wait
,
0
);
vlc_sem_init
(
&
p_sys
->
wait
,
0
);
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
i_period_size
);
/* Create ALSA thread and wait for its readiness. */
/* Create ALSA thread and wait for its readiness. */
if
(
vlc_clone
(
&
p_sys
->
thread
,
ALSAThread
,
p_aout
,
if
(
vlc_clone
(
&
p_sys
->
thread
,
ALSAThread
,
p_aout
,
...
@@ -549,6 +549,7 @@ static void Close (vlc_object_t *obj)
...
@@ -549,6 +549,7 @@ static void Close (vlc_object_t *obj)
vlc_cancel
(
p_sys
->
thread
);
vlc_cancel
(
p_sys
->
thread
);
vlc_join
(
p_sys
->
thread
,
NULL
);
vlc_join
(
p_sys
->
thread
,
NULL
);
vlc_sem_destroy
(
&
p_sys
->
wait
);
vlc_sem_destroy
(
&
p_sys
->
wait
);
aout_PacketDestroy
(
p_aout
);
snd_pcm_drop
(
p_sys
->
p_snd_pcm
);
snd_pcm_drop
(
p_sys
->
p_snd_pcm
);
snd_pcm_close
(
p_sys
->
p_snd_pcm
);
snd_pcm_close
(
p_sys
->
p_snd_pcm
);
...
...
modules/audio_output/audioqueue.c
View file @
297aefb7
...
@@ -35,7 +35,6 @@
...
@@ -35,7 +35,6 @@
#include <AudioToolBox/AudioToolBox.h>
#include <AudioToolBox/AudioToolBox.h>
#define FRAME_SIZE 2048
#define NUMBER_OF_BUFFERS 3
#define NUMBER_OF_BUFFERS 3
/*****************************************************************************
/*****************************************************************************
...
@@ -46,6 +45,7 @@
...
@@ -46,6 +45,7 @@
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
AudioQueueRef
audioQueue
;
AudioQueueRef
audioQueue
;
};
};
...
@@ -121,7 +121,7 @@ static int Open ( vlc_object_t *p_this )
...
@@ -121,7 +121,7 @@ static int Open ( vlc_object_t *p_this )
p_aout
->
format
.
i_format
=
VLC_CODEC_S16L
;
p_aout
->
format
.
i_format
=
VLC_CODEC_S16L
;
p_aout
->
format
.
i_physical_channels
=
AOUT_CHAN_LEFT
|
AOUT_CHAN_RIGHT
;
p_aout
->
format
.
i_physical_channels
=
AOUT_CHAN_LEFT
|
AOUT_CHAN_RIGHT
;
p_aout
->
format
.
i_rate
=
44100
;
p_aout
->
format
.
i_rate
=
44100
;
p_aout
->
format
.
i_nb_samples
=
FRAME_SIZE
;
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
FRAME_SIZE
)
;
p_aout
->
pf_play
=
aout_PacketPlay
;
p_aout
->
pf_play
=
aout_PacketPlay
;
p_aout
->
pf_pause
=
aout_PacketPause
;
p_aout
->
pf_pause
=
aout_PacketPause
;
p_aout
->
pf_flush
=
aout_PacketFlush
;
p_aout
->
pf_flush
=
aout_PacketFlush
;
...
@@ -144,6 +144,7 @@ static void Close ( vlc_object_t *p_this )
...
@@ -144,6 +144,7 @@ static void Close ( vlc_object_t *p_this )
AudioQueueStop
(
p_sys
->
audioQueue
,
false
);
AudioQueueStop
(
p_sys
->
audioQueue
,
false
);
msg_Dbg
(
p_aout
,
"Disposing of AudioQueue"
);
msg_Dbg
(
p_aout
,
"Disposing of AudioQueue"
);
AudioQueueDispose
(
p_sys
->
audioQueue
,
false
);
AudioQueueDispose
(
p_sys
->
audioQueue
,
false
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
...
modules/audio_output/auhal.c
View file @
297aefb7
...
@@ -79,6 +79,7 @@
...
@@ -79,6 +79,7 @@
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
AudioDeviceID
i_default_dev
;
/* Keeps DeviceID of defaultOutputDevice */
AudioDeviceID
i_default_dev
;
/* Keeps DeviceID of defaultOutputDevice */
AudioDeviceID
i_selected_dev
;
/* Keeps DeviceID of the selected device */
AudioDeviceID
i_selected_dev
;
/* Keeps DeviceID of the selected device */
AudioDeviceIOProcID
i_procID
;
/* DeviceID of current device */
AudioDeviceIOProcID
i_procID
;
/* DeviceID of current device */
...
@@ -566,7 +567,7 @@ static int OpenAnalog( audio_output_t *p_aout )
...
@@ -566,7 +567,7 @@ static int OpenAnalog( audio_output_t *p_aout )
/* Do the last VLC aout setups */
/* Do the last VLC aout setups */
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
p_aout
->
i_nb_samples
=
FRAMESIZE
;
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
FRAMESIZE
)
;
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
/* set the IOproc callback */
/* set the IOproc callback */
...
@@ -782,9 +783,9 @@ static int OpenSPDIF( audio_output_t * p_aout )
...
@@ -782,9 +783,9 @@ static int OpenSPDIF( audio_output_t * p_aout )
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
i_nb_samples
=
p_aout
->
format
.
i_frame_length
;
p_aout
->
format
.
i_rate
=
(
unsigned
int
)
p_sys
->
stream_format
.
mSampleRate
;
p_aout
->
format
.
i_rate
=
(
unsigned
int
)
p_sys
->
stream_format
.
mSampleRate
;
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
A52_FRAME_NB
);
aout_VolumeNoneInit
(
p_aout
);
aout_VolumeNoneInit
(
p_aout
);
/* Add IOProc callback */
/* Add IOProc callback */
...
@@ -904,6 +905,7 @@ static void Close( vlc_object_t * p_this )
...
@@ -904,6 +905,7 @@ static void Close( vlc_object_t * p_this )
if
(
err
!=
noErr
)
msg_Err
(
p_aout
,
"Could not release hogmode: [%4.4s]"
,
(
char
*
)
&
err
);
if
(
err
!=
noErr
)
msg_Err
(
p_aout
,
"Could not release hogmode: [%4.4s]"
,
(
char
*
)
&
err
);
}
}
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
...
modules/audio_output/directx.c
View file @
297aefb7
...
@@ -64,6 +64,7 @@ typedef struct notification_thread_t
...
@@ -64,6 +64,7 @@ typedef struct notification_thread_t
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
HINSTANCE
hdsound_dll
;
/* handle of the opened dsound dll */
HINSTANCE
hdsound_dll
;
/* handle of the opened dsound dll */
char
*
psz_device
;
/* user defined device name */
char
*
psz_device
;
/* user defined device name */
...
@@ -224,7 +225,6 @@ static int OpenAudio( vlc_object_t *p_this )
...
@@ -224,7 +225,6 @@ static int OpenAudio( vlc_object_t *p_this )
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
/* Calculate the frame size in bytes */
/* Calculate the frame size in bytes */
p_aout
->
i_nb_samples
=
A52_FRAME_NB
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
sys
->
i_frame_size
=
p_aout
->
format
.
i_bytes_per_frame
;
p_aout
->
sys
->
i_frame_size
=
p_aout
->
format
.
i_bytes_per_frame
;
...
@@ -241,6 +241,7 @@ static int OpenAudio( vlc_object_t *p_this )
...
@@ -241,6 +241,7 @@ static int OpenAudio( vlc_object_t *p_this )
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
A52_FRAME_NB
);
aout_VolumeNoneInit
(
p_aout
);
aout_VolumeNoneInit
(
p_aout
);
}
}
else
else
...
@@ -294,8 +295,8 @@ static int OpenAudio( vlc_object_t *p_this )
...
@@ -294,8 +295,8 @@ static int OpenAudio( vlc_object_t *p_this )
}
}
/* Calculate the frame size in bytes */
/* Calculate the frame size in bytes */
p_aout
->
i_nb_samples
=
FRAME_SIZE
;
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
FRAME_SIZE
);
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
}
}
...
@@ -613,6 +614,7 @@ static void CloseAudio( vlc_object_t *p_this )
...
@@ -613,6 +614,7 @@ static void CloseAudio( vlc_object_t *p_this )
if
(
p_sys
->
hdsound_dll
)
FreeLibrary
(
p_sys
->
hdsound_dll
);
if
(
p_sys
->
hdsound_dll
)
FreeLibrary
(
p_sys
->
hdsound_dll
);
free
(
p_aout
->
sys
->
p_device_guid
);
free
(
p_aout
->
sys
->
p_device_guid
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
@@ -1042,7 +1044,7 @@ static void* DirectSoundThread( void *data )
...
@@ -1042,7 +1044,7 @@ static void* DirectSoundThread( void *data )
{
{
DWORD
l_read
;
DWORD
l_read
;
int
l_queued
=
0
,
l_free_slots
;
int
l_queued
=
0
,
l_free_slots
;
unsigned
i_frame_siz
=
p_
aout
->
i_nb_
samples
;
unsigned
i_frame_siz
=
p_
sys
->
packet
.
samples
;
mtime_t
mtime
=
mdate
();
mtime_t
mtime
=
mdate
();
int
i
;
int
i
;
...
...
modules/audio_output/file.c
View file @
297aefb7
...
@@ -36,7 +36,6 @@
...
@@ -36,7 +36,6 @@
#include <vlc_codecs.h>
/* WAVEHEADER */
#include <vlc_codecs.h>
/* WAVEHEADER */
#include <vlc_fs.h>
#include <vlc_fs.h>
#define FRAME_SIZE 2048
#define A52_FRAME_NB 1536
#define A52_FRAME_NB 1536
/*****************************************************************************
/*****************************************************************************
...
@@ -193,16 +192,12 @@ static int Open( vlc_object_t * p_this )
...
@@ -193,16 +192,12 @@ static int Open( vlc_object_t * p_this )
p_aout
->
format
.
i_format
=
format_int
[
i
];
p_aout
->
format
.
i_format
=
format_int
[
i
];
if
(
AOUT_FMT_NON_LINEAR
(
&
p_aout
->
format
)
)
if
(
AOUT_FMT_NON_LINEAR
(
&
p_aout
->
format
)
)
{
{
p_aout
->
i_nb_samples
=
A52_FRAME_NB
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
aout_VolumeNoneInit
(
p_aout
);
aout_VolumeNoneInit
(
p_aout
);
}
}
else
else
{
p_aout
->
i_nb_samples
=
FRAME_SIZE
;
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
}
/* Channels number */
/* Channels number */
i_channels
=
var_CreateGetInteger
(
p_this
,
"audiofile-channels"
);
i_channels
=
var_CreateGetInteger
(
p_this
,
"audiofile-channels"
);
...
...
modules/audio_output/jack.c
View file @
297aefb7
...
@@ -50,6 +50,7 @@ typedef jack_default_audio_sample_t jack_sample_t;
...
@@ -50,6 +50,7 @@ typedef jack_default_audio_sample_t jack_sample_t;
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
jack_client_t
*
p_jack_client
;
jack_client_t
*
p_jack_client
;
jack_port_t
**
p_jack_ports
;
jack_port_t
**
p_jack_ports
;
jack_sample_t
**
p_jack_buffers
;
jack_sample_t
**
p_jack_buffers
;
...
@@ -135,12 +136,13 @@ static int Open( vlc_object_t *p_this )
...
@@ -135,12 +136,13 @@ static int Open( vlc_object_t *p_this )
p_aout
->
pf_play
=
aout_PacketPlay
;
p_aout
->
pf_play
=
aout_PacketPlay
;
p_aout
->
pf_pause
=
aout_PacketPause
;
p_aout
->
pf_pause
=
aout_PacketPause
;
p_aout
->
pf_flush
=
aout_PacketFlush
;
p_aout
->
pf_flush
=
aout_PacketFlush
;
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
jack_get_buffer_size
(
p_sys
->
p_jack_client
)
);
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
/* JACK only supports fl32 format */
/* JACK only supports fl32 format */
p_aout
->
format
.
i_format
=
VLC_CODEC_FL32
;
p_aout
->
format
.
i_format
=
VLC_CODEC_FL32
;
// TODO add buffer size callback
// TODO add buffer size callback
p_aout
->
i_nb_samples
=
jack_get_buffer_size
(
p_sys
->
p_jack_client
);
p_aout
->
format
.
i_rate
=
jack_get_sample_rate
(
p_sys
->
p_jack_client
);
p_aout
->
format
.
i_rate
=
jack_get_sample_rate
(
p_sys
->
p_jack_client
);
p_sys
->
i_channels
=
aout_FormatNbChannels
(
&
p_aout
->
format
);
p_sys
->
i_channels
=
aout_FormatNbChannels
(
&
p_aout
->
format
);
...
@@ -223,9 +225,8 @@ static int Open( vlc_object_t *p_this )
...
@@ -223,9 +225,8 @@ static int Open( vlc_object_t *p_this )
free
(
pp_in_ports
);
free
(
pp_in_ports
);
}
}
msg_Dbg
(
p_aout
,
"JACK audio output initialized (%d channels, buffer "
msg_Dbg
(
p_aout
,
"JACK audio output initialized (%d channels, rate=%d)"
,
"size=%d, rate=%d)"
,
p_sys
->
i_channels
,
p_sys
->
i_channels
,
p_aout
->
format
.
i_rate
);
p_aout
->
i_nb_samples
,
p_aout
->
format
.
i_rate
);
error_out:
error_out:
/* Clean up, if an error occurred */
/* Clean up, if an error occurred */
...
@@ -352,5 +353,6 @@ static void Close( vlc_object_t *p_this )
...
@@ -352,5 +353,6 @@ static void Close( vlc_object_t *p_this )
}
}
free
(
p_sys
->
p_jack_ports
);
free
(
p_sys
->
p_jack_ports
);
free
(
p_sys
->
p_jack_buffers
);
free
(
p_sys
->
p_jack_buffers
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
modules/audio_output/opensles_android.c
View file @
297aefb7
...
@@ -257,7 +257,6 @@ static int Open( vlc_object_t * p_this )
...
@@ -257,7 +257,6 @@ static int Open( vlc_object_t * p_this )
// we want 16bit signed data little endian.
// we want 16bit signed data little endian.
p_aout
->
format
.
i_format
=
VLC_CODEC_S16L
;
p_aout
->
format
.
i_format
=
VLC_CODEC_S16L
;
p_aout
->
i_nb_samples
=
2048
;
p_aout
->
format
.
i_physical_channels
=
AOUT_CHAN_LEFT
|
AOUT_CHAN_RIGHT
;
p_aout
->
format
.
i_physical_channels
=
AOUT_CHAN_LEFT
|
AOUT_CHAN_RIGHT
;
p_aout
->
pf_play
=
Play
;
p_aout
->
pf_play
=
Play
;
p_aout
->
pf_pause
=
NULL
;
p_aout
->
pf_pause
=
NULL
;
...
...
modules/audio_output/oss.c
View file @
297aefb7
...
@@ -70,6 +70,7 @@
...
@@ -70,6 +70,7 @@
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
int
i_fd
;
int
i_fd
;
int
i_fragstotal
;
int
i_fragstotal
;
mtime_t
max_buffer_duration
;
mtime_t
max_buffer_duration
;
...
@@ -381,10 +382,10 @@ static int Open( vlc_object_t *p_this )
...
@@ -381,10 +382,10 @@ static int Open( vlc_object_t *p_this )
}
}
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
p_aout
->
format
.
i_format
=
VLC_CODEC_SPDIFL
;
p_aout
->
i_nb_samples
=
A52_FRAME_NB
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
A52_FRAME_NB
);
aout_VolumeNoneInit
(
p_aout
);
aout_VolumeNoneInit
(
p_aout
);
}
}
...
@@ -485,22 +486,19 @@ static int Open( vlc_object_t *p_this )
...
@@ -485,22 +486,19 @@ static int Open( vlc_object_t *p_this )
free
(
p_sys
);
free
(
p_sys
);
return
VLC_EGENERIC
;
return
VLC_EGENERIC
;
}
}
else
{
/* Number of fragments actually allocated */
p_aout
->
sys
->
i_fragstotal
=
audio_buf
.
fragstotal
;
/* Maximum duration the soundcard's buffer can hold */
/* Number of fragments actually allocated */
p_aout
->
sys
->
max_buffer_duration
=
p_aout
->
sys
->
i_fragstotal
=
audio_buf
.
fragstotal
;
/* Maximum duration the soundcard's buffer can hold */
p_aout
->
sys
->
max_buffer_duration
=
(
mtime_t
)
audio_buf
.
fragstotal
*
audio_buf
.
fragsize
*
1000000
(
mtime_t
)
audio_buf
.
fragstotal
*
audio_buf
.
fragsize
*
1000000
/
p_aout
->
format
.
i_bytes_per_frame
/
p_aout
->
format
.
i_bytes_per_frame
/
p_aout
->
format
.
i_rate
/
p_aout
->
format
.
i_rate
*
p_aout
->
format
.
i_frame_length
;
*
p_aout
->
format
.
i_frame_length
;
p_aout
->
i_nb_samples
=
audio_buf
.
fragsize
/
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
p_aout
->
format
.
i_bytes_per_frame
;
audio_buf
.
fragsize
/
p_aout
->
format
.
i_bytes_per_frame
);
}
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
}
}
...
@@ -532,6 +530,7 @@ static void Close( vlc_object_t * p_this )
...
@@ -532,6 +530,7 @@ static void Close( vlc_object_t * p_this )
ioctl
(
p_sys
->
i_fd
,
SNDCTL_DSP_RESET
,
NULL
);
ioctl
(
p_sys
->
i_fd
,
SNDCTL_DSP_RESET
,
NULL
);
close
(
p_sys
->
i_fd
);
close
(
p_sys
->
i_fd
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
...
modules/audio_output/portaudio.c
View file @
297aefb7
...
@@ -63,6 +63,7 @@ typedef struct
...
@@ -63,6 +63,7 @@ typedef struct
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
audio_output_t
*
p_aout
;
audio_output_t
*
p_aout
;
PaStream
*
p_stream
;
PaStream
*
p_stream
;
...
@@ -328,6 +329,7 @@ static void Close ( vlc_object_t *p_this )
...
@@ -328,6 +329,7 @@ static void Close ( vlc_object_t *p_this )
#endif
#endif
msg_Dbg
(
p_aout
,
"portaudio closed"
);
msg_Dbg
(
p_aout
,
"portaudio closed"
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
@@ -501,8 +503,8 @@ static int PAOpenStream( audio_output_t *p_aout )
...
@@ -501,8 +503,8 @@ static int PAOpenStream( audio_output_t *p_aout )
/* Calculate the frame size in bytes */
/* Calculate the frame size in bytes */
p_sys
->
i_sample_size
=
4
*
i_channels
;
p_sys
->
i_sample_size
=
4
*
i_channels
;
p_aout
->
i_nb_samples
=
FRAME_SIZE
;
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_PacketInit
(
p_aout
,
&
p_sys
->
packet
,
FRAME_SIZE
);
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
/* Check for channel reordering */
/* Check for channel reordering */
...
...
modules/audio_output/pulse.c
View file @
297aefb7
...
@@ -791,8 +791,6 @@ static int Open(vlc_object_t *obj)
...
@@ -791,8 +791,6 @@ static int Open(vlc_object_t *obj)
"prebuf=%u, minreq=%u"
,
"prebuf=%u, minreq=%u"
,
pba
->
maxlength
,
pba
->
tlength
,
pba
->
prebuf
,
pba
->
minreq
);
pba
->
maxlength
,
pba
->
tlength
,
pba
->
prebuf
,
pba
->
minreq
);
aout
->
i_nb_samples
=
pba
->
minreq
/
pa_frame_size
(
&
ss
);
var_Create
(
aout
,
"audio-device"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
var_Create
(
aout
,
"audio-device"
,
VLC_VAR_INTEGER
|
VLC_VAR_HASCHOICE
);
var_Change
(
aout
,
"audio-device"
,
VLC_VAR_SETTEXT
,
var_Change
(
aout
,
"audio-device"
,
VLC_VAR_SETTEXT
,
&
(
vlc_value_t
){
.
psz_string
=
(
char
*
)
_
(
"Audio device"
)
},
&
(
vlc_value_t
){
.
psz_string
=
(
char
*
)
_
(
"Audio device"
)
},
...
...
modules/audio_output/waveout.c
View file @
297aefb7
...
@@ -111,6 +111,7 @@ vlc_module_end ()
...
@@ -111,6 +111,7 @@ vlc_module_end ()
*****************************************************************************/
*****************************************************************************/
struct
aout_sys_t
struct
aout_sys_t
{
{
aout_packet_t
packet
;
uint32_t
i_wave_device_id
;
/* ID of selected output device */
uint32_t
i_wave_device_id
;
/* ID of selected output device */
HWAVEOUT
h_waveout
;
/* handle to waveout instance */
HWAVEOUT
h_waveout
;
/* handle to waveout instance */
...
@@ -234,12 +235,12 @@ static int Open( vlc_object_t *p_this )
...
@@ -234,12 +235,12 @@ static int Open( vlc_object_t *p_this )
}
}
/* Calculate the frame size in bytes */
/* Calculate the frame size in bytes */
p_aout
->
i_nb_samples
=
A52_FRAME_NB
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_bytes_per_frame
=
AOUT_SPDIF_SIZE
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
format
.
i_frame_length
=
A52_FRAME_NB
;
p_aout
->
sys
->
i_buffer_size
=
p_aout
->
sys
->
i_buffer_size
=
p_aout
->
format
.
i_bytes_per_frame
;
p_aout
->
format
.
i_bytes_per_frame
;
aout_PacketInit
(
p_aout
,
&
p_aout
->
p_sys
->
packet
,
A52_FRAME_NB
);
aout_VolumeNoneInit
(
p_aout
);
aout_VolumeNoneInit
(
p_aout
);
}
}
else
else
...
@@ -281,11 +282,11 @@ static int Open( vlc_object_t *p_this )
...
@@ -281,11 +282,11 @@ static int Open( vlc_object_t *p_this )
}
}
/* Calculate the frame size in bytes */
/* Calculate the frame size in bytes */
p_aout
->
i_nb_samples
=
FRAME_SIZE
;
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
p_aout
->
sys
->
i_buffer_size
=
FRAME_SIZE
*
p_aout
->
sys
->
i_buffer_size
=
FRAME_SIZE
*
p_aout
->
format
.
i_bytes_per_frame
;
p_aout
->
format
.
i_bytes_per_frame
;
aout_PacketInit
(
p_aout
,
&
p_aout
->
p_sys
->
packet
,
FRAME_SIZE
);
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
/* Check for hardware volume support */
/* Check for hardware volume support */
...
@@ -566,6 +567,7 @@ static void Close( vlc_object_t *p_this )
...
@@ -566,6 +567,7 @@ static void Close( vlc_object_t *p_this )
CloseHandle
(
p_sys
->
new_buffer_event
);
CloseHandle
(
p_sys
->
new_buffer_event
);
free
(
p_sys
->
p_silence_buffer
);
free
(
p_sys
->
p_silence_buffer
);
aout_PacketDestroy
(
p_aout
);
free
(
p_sys
);
free
(
p_sys
);
}
}
...
...
src/audio_output/aout_internal.h
View file @
297aefb7
...
@@ -107,8 +107,6 @@ typedef struct
...
@@ -107,8 +107,6 @@ typedef struct
/* Filters between mixer and output */
/* Filters between mixer and output */
filter_t
*
filters
[
AOUT_MAX_FILTERS
];
filter_t
*
filters
[
AOUT_MAX_FILTERS
];
int
nb_filters
;
int
nb_filters
;
aout_packet_t
packet
;
}
aout_owner_t
;
}
aout_owner_t
;
typedef
struct
typedef
struct
...
...
src/audio_output/output.c
View file @
297aefb7
...
@@ -161,9 +161,6 @@ int aout_OutputNew( audio_output_t *p_aout,
...
@@ -161,9 +161,6 @@ int aout_OutputNew( audio_output_t *p_aout,
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrepare
(
&
p_aout
->
format
);
aout_FormatPrint
(
p_aout
,
"output"
,
&
p_aout
->
format
);
aout_FormatPrint
(
p_aout
,
"output"
,
&
p_aout
->
format
);
/* Prepare FIFO. */
aout_PacketInit
(
p_aout
,
&
owner
->
packet
,
p_aout
->
i_nb_samples
);
/* Choose the mixer format. */
/* Choose the mixer format. */
owner
->
mixer_format
=
p_aout
->
format
;
owner
->
mixer_format
=
p_aout
->
format
;
if
(
AOUT_FMT_NON_LINEAR
(
&
p_aout
->
format
))
if
(
AOUT_FMT_NON_LINEAR
(
&
p_aout
->
format
))
...
@@ -218,7 +215,6 @@ void aout_OutputDelete( audio_output_t * p_aout )
...
@@ -218,7 +215,6 @@ void aout_OutputDelete( audio_output_t * p_aout )
aout_VolumeNoneInit
(
p_aout
);
/* clear volume callback */
aout_VolumeNoneInit
(
p_aout
);
/* clear volume callback */
owner
->
module
=
NULL
;
owner
->
module
=
NULL
;
aout_FiltersDestroyPipeline
(
owner
->
filters
,
owner
->
nb_filters
);
aout_FiltersDestroyPipeline
(
owner
->
filters
,
owner
->
nb_filters
);
aout_PacketDestroy
(
p_aout
);
}
}
/*****************************************************************************
/*****************************************************************************
...
@@ -370,8 +366,7 @@ void aout_VolumeHardSet (audio_output_t *aout, float volume, bool mute)
...
@@ -370,8 +366,7 @@ void aout_VolumeHardSet (audio_output_t *aout, float volume, bool mute)
static
inline
aout_packet_t
*
aout_packet
(
audio_output_t
*
aout
)
static
inline
aout_packet_t
*
aout_packet
(
audio_output_t
*
aout
)
{
{
aout_owner_t
*
owner
=
aout_owner
(
aout
);
return
(
aout_packet_t
*
)(
aout
->
sys
);
return
&
owner
->
packet
;
}
}
void
aout_PacketInit
(
audio_output_t
*
aout
,
aout_packet_t
*
p
,
unsigned
samples
)
void
aout_PacketInit
(
audio_output_t
*
aout
,
aout_packet_t
*
p
,
unsigned
samples
)
...
@@ -444,9 +439,7 @@ static block_t *aout_OutputSlice (audio_output_t *p_aout)
...
@@ -444,9 +439,7 @@ static block_t *aout_OutputSlice (audio_output_t *p_aout)
{
{
aout_packet_t
*
p
=
aout_packet
(
p_aout
);
aout_packet_t
*
p
=
aout_packet
(
p_aout
);
aout_fifo_t
*
p_fifo
=
&
p
->
partial
;
aout_fifo_t
*
p_fifo
=
&
p
->
partial
;
const
unsigned
samples
=
p_aout
->
i_nb_samples
;
const
unsigned
samples
=
p
->
samples
;
/* FIXME: Remove this silly constraint. Just pass buffers as they come to
* "smart" audio outputs. */
assert
(
samples
>
0
);
assert
(
samples
>
0
);
vlc_assert_locked
(
&
p_aout
->
lock
);
vlc_assert_locked
(
&
p_aout
->
lock
);
...
...
src/libvlccore.sym
View file @
297aefb7
...
@@ -21,6 +21,8 @@ aout_FormatPrepare
...
@@ -21,6 +21,8 @@ aout_FormatPrepare
aout_FormatPrint
aout_FormatPrint
aout_FormatPrintChannels
aout_FormatPrintChannels
aout_OutputNextBuffer
aout_OutputNextBuffer
aout_PacketInit
aout_PacketDestroy
aout_PacketPlay
aout_PacketPlay
aout_PacketPause
aout_PacketPause
aout_PacketFlush
aout_PacketFlush
...
...
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