Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
Commits
8973167f
Commit
8973167f
authored
Dec 10, 2009
by
Pierre d'Herbemont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
auhal: Support 10.6 64bits framework.
parent
18b554b5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
12 deletions
+31
-12
modules/audio_output/auhal.c
modules/audio_output/auhal.c
+31
-12
No files found.
modules/audio_output/auhal.c
View file @
8973167f
...
@@ -40,25 +40,43 @@
...
@@ -40,25 +40,43 @@
#define __MACHINEEXCEPTIONS__
#define __MACHINEEXCEPTIONS__
#include <CoreAudio/CoreAudio.h>
#include <CoreAudio/CoreAudio.h>
#include <AudioUnit/AudioUnit.h>
#include <AudioUnit/AudioUnitProperties.h>
#include <AudioUnit/AudioUnitProperties.h>
#include <AudioUnit/AudioUnitParameters.h>
#include <AudioUnit/AudioUnitParameters.h>
#include <AudioUnit/AudioOutputUnit.h>
#include <AudioUnit/AudioOutputUnit.h>
#include <AudioToolbox/AudioFormat.h>
#include <AudioToolbox/AudioFormat.h>
#ifndef verify_noerr
#define verify_noerr(a) assert((a) == noErr)
#endif
#if AUDIO_UNIT_VERSION < 1060
#define AudioComponent Component
#define AudioComponentDescription ComponentDescription
#define AudioComponentFindNext FindNextComponent
#define AudioComponentInstanceNew OpenAComponent
#define AudioComponentInstanceDispose CloseComponent
#define AudioComponentInstanceNew OpenAComponent
#define AudioComponentInstanceNew OpenAComponent
#else
#include <AudioUnit/AudioComponent.h>
#endif
#define STREAM_FORMAT_MSG( pre, sfm ) \
#define STREAM_FORMAT_MSG( pre, sfm ) \
pre "[%
ld][%4.4s][%ld][%ld][%ld][%ld][%ld][%ld
]", \
pre "[%
u][%4.4s][%u][%u][%u][%u][%u][%u
]", \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mChannelsPerFrame, sfm.mBitsPerChannel
sfm.mChannelsPerFrame, sfm.mBitsPerChannel
#define STREAM_FORMAT_MSG_FULL( pre, sfm ) \
#define STREAM_FORMAT_MSG_FULL( pre, sfm ) \
pre ":\nsamplerate: [%
ld]\nFormatID: [%4.4s]\nFormatFlags: [%ld]\nBypesPerPacket: [%ld]\nFramesPerPacket: [%ld]\nBytesPerFrame: [%ld]\nChannelsPerFrame: [%ld]\nBitsPerChannel[%ld
]", \
pre ":\nsamplerate: [%
u]\nFormatID: [%4.4s]\nFormatFlags: [%u]\nBypesPerPacket: [%u]\nFramesPerPacket: [%u]\nBytesPerFrame: [%u]\nChannelsPerFrame: [%u]\nBitsPerChannel[%u
]", \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
(UInt32)sfm.mSampleRate, (char *)&sfm.mFormatID, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFormatFlags, sfm.mBytesPerPacket, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mFramesPerPacket, sfm.mBytesPerFrame, \
sfm.mChannelsPerFrame, sfm.mBitsPerChannel
sfm.mChannelsPerFrame, sfm.mBitsPerChannel
#define FRAMESIZE 2048
#define BUFSIZE 0xffffff
#define BUFSIZE 0xffffff
#define AOUT_VAR_SPDIF_FLAG 0xf00000
#define AOUT_VAR_SPDIF_FLAG 0xf00000
...
@@ -86,7 +104,7 @@ struct aout_sys_t
...
@@ -86,7 +104,7 @@ struct aout_sys_t
mtime_t
clock_diff
;
/* Difference between VLC clock and Device clock */
mtime_t
clock_diff
;
/* Difference between VLC clock and Device clock */
/* AUHAL specific */
/* AUHAL specific */
Component
au_component
;
/* The Audiocomponent we use */
AudioComponent
au_component
;
/* The Audiocomponent we use */
AudioUnit
au_unit
;
/* The AudioUnit we use */
AudioUnit
au_unit
;
/* The AudioUnit we use */
uint8_t
p_remainder_buffer
[
BUFSIZE
];
uint8_t
p_remainder_buffer
[
BUFSIZE
];
uint32_t
i_read_bytes
;
uint32_t
i_read_bytes
;
...
@@ -129,6 +147,7 @@ static int AudioDeviceCallback ( vlc_object_t *, const char *,
...
@@ -129,6 +147,7 @@ static int AudioDeviceCallback ( vlc_object_t *, const char *,
vlc_value_t
,
vlc_value_t
,
void
*
);
vlc_value_t
,
vlc_value_t
,
void
*
);
/*****************************************************************************
/*****************************************************************************
* Module descriptor
* Module descriptor
*****************************************************************************/
*****************************************************************************/
...
@@ -281,7 +300,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
...
@@ -281,7 +300,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
OSStatus
err
=
noErr
;
OSStatus
err
=
noErr
;
UInt32
i_param_size
=
0
,
i
=
0
;
UInt32
i_param_size
=
0
,
i
=
0
;
int
i_original
;
int
i_original
;
ComponentDescription
desc
;
AudioComponentDescription
desc
;
AudioStreamBasicDescription
DeviceFormat
;
AudioStreamBasicDescription
DeviceFormat
;
AudioChannelLayout
*
layout
;
AudioChannelLayout
*
layout
;
AudioChannelLayout
new_layout
;
AudioChannelLayout
new_layout
;
...
@@ -294,14 +313,14 @@ static int OpenAnalog( aout_instance_t *p_aout )
...
@@ -294,14 +313,14 @@ static int OpenAnalog( aout_instance_t *p_aout )
desc
.
componentFlags
=
0
;
desc
.
componentFlags
=
0
;
desc
.
componentFlagsMask
=
0
;
desc
.
componentFlagsMask
=
0
;
p_sys
->
au_component
=
FindNextComponen
t
(
NULL
,
&
desc
);
p_sys
->
au_component
=
AudioComponentFindNex
t
(
NULL
,
&
desc
);
if
(
p_sys
->
au_component
==
NULL
)
if
(
p_sys
->
au_component
==
NULL
)
{
{
msg_Warn
(
p_aout
,
"we cannot find our HAL component"
);
msg_Warn
(
p_aout
,
"we cannot find our HAL component"
);
return
false
;
return
false
;
}
}
err
=
OpenAComponent
(
p_sys
->
au_component
,
&
p_sys
->
au_unit
);
err
=
AudioComponentInstanceNew
(
p_sys
->
au_component
,
&
p_sys
->
au_unit
);
if
(
err
!=
noErr
)
if
(
err
!=
noErr
)
{
{
msg_Warn
(
p_aout
,
"we cannot open our HAL component"
);
msg_Warn
(
p_aout
,
"we cannot open our HAL component"
);
...
@@ -526,7 +545,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
...
@@ -526,7 +545,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
DeviceFormat
.
mFramesPerPacket
=
1
;
DeviceFormat
.
mFramesPerPacket
=
1
;
DeviceFormat
.
mBytesPerFrame
=
DeviceFormat
.
mBitsPerChannel
*
DeviceFormat
.
mChannelsPerFrame
/
8
;
DeviceFormat
.
mBytesPerFrame
=
DeviceFormat
.
mBitsPerChannel
*
DeviceFormat
.
mChannelsPerFrame
/
8
;
DeviceFormat
.
mBytesPerPacket
=
DeviceFormat
.
mBytesPerFrame
*
DeviceFormat
.
mFramesPerPacket
;
DeviceFormat
.
mBytesPerPacket
=
DeviceFormat
.
mBytesPerFrame
*
DeviceFormat
.
mFramesPerPacket
;
/* Set the desired format */
/* Set the desired format */
i_param_size
=
sizeof
(
AudioStreamBasicDescription
);
i_param_size
=
sizeof
(
AudioStreamBasicDescription
);
verify_noerr
(
AudioUnitSetProperty
(
p_sys
->
au_unit
,
verify_noerr
(
AudioUnitSetProperty
(
p_sys
->
au_unit
,
...
@@ -550,7 +569,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
...
@@ -550,7 +569,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
/* Do the last VLC aout setups */
/* Do the last VLC aout setups */
aout_FormatPrepare
(
&
p_aout
->
output
.
output
);
aout_FormatPrepare
(
&
p_aout
->
output
.
output
);
p_aout
->
output
.
i_nb_samples
=
2048
;
p_aout
->
output
.
i_nb_samples
=
FRAMESIZE
;
aout_VolumeSoftInit
(
p_aout
);
aout_VolumeSoftInit
(
p_aout
);
/* set the IOproc callback */
/* set the IOproc callback */
...
@@ -831,7 +850,7 @@ static void Close( vlc_object_t * p_this )
...
@@ -831,7 +850,7 @@ static void Close( vlc_object_t * p_this )
{
{
verify_noerr
(
AudioOutputUnitStop
(
p_sys
->
au_unit
)
);
verify_noerr
(
AudioOutputUnitStop
(
p_sys
->
au_unit
)
);
verify_noerr
(
AudioUnitUninitialize
(
p_sys
->
au_unit
)
);
verify_noerr
(
AudioUnitUninitialize
(
p_sys
->
au_unit
)
);
verify_noerr
(
CloseComponent
(
p_sys
->
au_unit
)
);
verify_noerr
(
AudioComponentInstanceDispose
(
p_sys
->
au_unit
)
);
}
}
if
(
p_sys
->
b_digital
)
if
(
p_sys
->
b_digital
)
...
@@ -942,7 +961,7 @@ static void Probe( aout_instance_t * p_aout )
...
@@ -942,7 +961,7 @@ static void Probe( aout_instance_t * p_aout )
goto
error
;
goto
error
;
}
}
msg_Dbg
(
p_aout
,
"system has [%
ld
] device(s)"
,
p_sys
->
i_devices
);
msg_Dbg
(
p_aout
,
"system has [%
u
] device(s)"
,
p_sys
->
i_devices
);
/* Allocate DeviceID array */
/* Allocate DeviceID array */
p_devices
=
(
AudioDeviceID
*
)
malloc
(
sizeof
(
AudioDeviceID
)
*
p_sys
->
i_devices
);
p_devices
=
(
AudioDeviceID
*
)
malloc
(
sizeof
(
AudioDeviceID
)
*
p_sys
->
i_devices
);
...
@@ -993,7 +1012,7 @@ static void Probe( aout_instance_t * p_aout )
...
@@ -993,7 +1012,7 @@ static void Probe( aout_instance_t * p_aout )
&
i_param_size
,
psz_name
);
&
i_param_size
,
psz_name
);
if
(
err
)
goto
error
;
if
(
err
)
goto
error
;
msg_Dbg
(
p_aout
,
"DevID: %
#lx
DevName: %s"
,
p_devices
[
i
],
psz_name
);
msg_Dbg
(
p_aout
,
"DevID: %
u
DevName: %s"
,
p_devices
[
i
],
psz_name
);
if
(
!
AudioDeviceHasOutput
(
p_devices
[
i
])
)
if
(
!
AudioDeviceHasOutput
(
p_devices
[
i
])
)
{
{
...
@@ -1325,7 +1344,7 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
...
@@ -1325,7 +1344,7 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
/* We don't have enough data yet */
/* We don't have enough data yet */
aout_buffer_t
*
p_buffer
;
aout_buffer_t
*
p_buffer
;
p_buffer
=
aout_OutputNextBuffer
(
p_aout
,
current_date
,
false
);
p_buffer
=
aout_OutputNextBuffer
(
p_aout
,
current_date
,
false
);
if
(
p_buffer
!=
NULL
)
if
(
p_buffer
!=
NULL
)
{
{
uint32_t
i_second_mData_bytes
=
__MIN
(
p_buffer
->
i_buffer
,
ioData
->
mBuffers
[
0
].
mDataByteSize
-
i_mData_bytes
);
uint32_t
i_second_mData_bytes
=
__MIN
(
p_buffer
->
i_buffer
,
ioData
->
mBuffers
[
0
].
mDataByteSize
-
i_mData_bytes
);
...
...
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