mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-17 22:32:51 +00:00
Bug 1274479 - Update libcubeb. r=padenot
This commit is contained in:
parent
935ad653b8
commit
20f697690e
@ -5,4 +5,4 @@ Makefile.in build files for the Mozilla build system.
|
||||
|
||||
The cubeb git repository is: git://github.com/kinetiknz/cubeb.git
|
||||
|
||||
The git commit ID used was e4074131e4d422bfe260d29ab0a49fc368406ef4.
|
||||
The git commit ID used was 92b4afa6ae9f0969e77d59a8f9de9ab36acd7d7f.
|
||||
|
@ -1,136 +0,0 @@
|
||||
diff --git a/media/libcubeb/src/cubeb_audiounit.cpp b/media/libcubeb/src/cubeb_audiounit.cpp
|
||||
--- a/media/libcubeb/src/cubeb_audiounit.cpp
|
||||
+++ b/media/libcubeb/src/cubeb_audiounit.cpp
|
||||
@@ -48,22 +48,16 @@
|
||||
typedef UInt32 AudioFormatFlags;
|
||||
#endif
|
||||
|
||||
#define CUBEB_STREAM_MAX 8
|
||||
|
||||
#define AU_OUT_BUS 0
|
||||
#define AU_IN_BUS 1
|
||||
|
||||
-#if TARGET_OS_IPHONE
|
||||
-#define CUBEB_AUDIOUNIT_SUBTYPE kAudioUnitSubType_RemoteIO
|
||||
-#else
|
||||
-#define CUBEB_AUDIOUNIT_SUBTYPE kAudioUnitSubType_HALOutput
|
||||
-#endif
|
||||
-
|
||||
//#define LOGGING_ENABLED
|
||||
#ifdef LOGGING_ENABLED
|
||||
#define LOG(...) do { \
|
||||
fprintf(stderr, __VA_ARGS__); \
|
||||
fprintf(stderr, "(line: %d)\n", __LINE__); \
|
||||
} while(0)
|
||||
#else
|
||||
#define LOG(...)
|
||||
@@ -905,63 +899,79 @@ audiounit_create_unit(AudioUnit * unit,
|
||||
{
|
||||
AudioComponentDescription desc;
|
||||
AudioComponent comp;
|
||||
UInt32 enable;
|
||||
AudioDeviceID devid;
|
||||
OSStatus rv;
|
||||
|
||||
desc.componentType = kAudioUnitType_Output;
|
||||
- desc.componentSubType = CUBEB_AUDIOUNIT_SUBTYPE;
|
||||
+#if TARGET_OS_IPHONE
|
||||
+ bool use_default_output = false;
|
||||
+ desc.componentSubType = kAudioUnitSubType_RemoteIO;
|
||||
+#else
|
||||
+ // Use the DefaultOutputUnit for output when no device is specified
|
||||
+ // so we retain automatic output device switching when the default
|
||||
+ // changes. Once we have complete support for device notifications
|
||||
+ // and switching, we can use the AUHAL for everything.
|
||||
+ bool use_default_output = device == NULL && !is_input;
|
||||
+ if (use_default_output) {
|
||||
+ desc.componentSubType = kAudioUnitSubType_DefaultOutput;
|
||||
+ } else {
|
||||
+ desc.componentSubType = kAudioUnitSubType_HALOutput;
|
||||
+ }
|
||||
+#endif
|
||||
desc.componentManufacturer = kAudioUnitManufacturer_Apple;
|
||||
desc.componentFlags = 0;
|
||||
desc.componentFlagsMask = 0;
|
||||
comp = AudioComponentFindNext(NULL, &desc);
|
||||
if (comp == NULL) {
|
||||
LOG("Could not find matching audio hardware.");
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
rv = AudioComponentInstanceNew(comp, unit);
|
||||
if (rv != noErr) {
|
||||
PRINT_ERROR_CODE("AudioComponentInstanceNew", rv);
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- enable = 1;
|
||||
- rv = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_EnableIO,
|
||||
- is_input ? kAudioUnitScope_Input : kAudioUnitScope_Output,
|
||||
- is_input ? AU_IN_BUS : AU_OUT_BUS, &enable, sizeof(UInt32));
|
||||
- if (rv != noErr) {
|
||||
- PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_EnableIO", rv);
|
||||
- return CUBEB_ERROR;
|
||||
- }
|
||||
+ if (!use_default_output) {
|
||||
+ enable = 1;
|
||||
+ rv = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_EnableIO,
|
||||
+ is_input ? kAudioUnitScope_Input : kAudioUnitScope_Output,
|
||||
+ is_input ? AU_IN_BUS : AU_OUT_BUS, &enable, sizeof(UInt32));
|
||||
+ if (rv != noErr) {
|
||||
+ PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_EnableIO", rv);
|
||||
+ return CUBEB_ERROR;
|
||||
+ }
|
||||
|
||||
- enable = 0;
|
||||
- rv = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_EnableIO,
|
||||
- is_input ? kAudioUnitScope_Output : kAudioUnitScope_Input,
|
||||
- is_input ? AU_OUT_BUS : AU_IN_BUS, &enable, sizeof(UInt32));
|
||||
- if (rv != noErr) {
|
||||
- PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_EnableIO", rv);
|
||||
- return CUBEB_ERROR;
|
||||
- }
|
||||
+ enable = 0;
|
||||
+ rv = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_EnableIO,
|
||||
+ is_input ? kAudioUnitScope_Output : kAudioUnitScope_Input,
|
||||
+ is_input ? AU_OUT_BUS : AU_IN_BUS, &enable, sizeof(UInt32));
|
||||
+ if (rv != noErr) {
|
||||
+ PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_EnableIO", rv);
|
||||
+ return CUBEB_ERROR;
|
||||
+ }
|
||||
|
||||
- if (device == NULL) {
|
||||
- devid = audiounit_get_default_device_id(is_input ? CUBEB_DEVICE_TYPE_INPUT
|
||||
- : CUBEB_DEVICE_TYPE_OUTPUT);
|
||||
- } else {
|
||||
- devid = reinterpret_cast<intptr_t>(device);
|
||||
- }
|
||||
- int err = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_CurrentDevice,
|
||||
- kAudioUnitScope_Global,
|
||||
- is_input ? AU_IN_BUS : AU_OUT_BUS,
|
||||
- &devid, sizeof(AudioDeviceID));
|
||||
- if (err != noErr) {
|
||||
- PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_CurrentDevice", rv);
|
||||
- return CUBEB_ERROR;
|
||||
+ if (device == NULL) {
|
||||
+ assert(is_input);
|
||||
+ devid = audiounit_get_default_device_id(CUBEB_DEVICE_TYPE_INPUT);
|
||||
+ } else {
|
||||
+ devid = reinterpret_cast<intptr_t>(device);
|
||||
+ }
|
||||
+ int err = AudioUnitSetProperty(*unit, kAudioOutputUnitProperty_CurrentDevice,
|
||||
+ kAudioUnitScope_Global,
|
||||
+ is_input ? AU_IN_BUS : AU_OUT_BUS,
|
||||
+ &devid, sizeof(AudioDeviceID));
|
||||
+ if (err != noErr) {
|
||||
+ PRINT_ERROR_CODE("AudioUnitSetProperty/kAudioOutputUnitProperty_CurrentDevice", rv);
|
||||
+ return CUBEB_ERROR;
|
||||
+ }
|
||||
}
|
||||
|
||||
return CUBEB_OK;
|
||||
}
|
||||
|
||||
static int
|
||||
audiounit_init_input_linear_buffer(cubeb_stream * stream, uint32_t capacity)
|
||||
{
|
@ -396,7 +396,7 @@ void cubeb_destroy(cubeb * context);
|
||||
@param context A pointer to the cubeb context.
|
||||
@param stream An out parameter to be filled with the an opaque pointer to a
|
||||
cubeb stream.
|
||||
@param stream_name A name for this stream.
|
||||
@param stream_name A name for this stream.
|
||||
@param input_device Device for the input side of the stream. If NULL the
|
||||
default input device is used.
|
||||
@param input_stream_params Parameters for the input side of the stream, or
|
||||
@ -405,8 +405,8 @@ void cubeb_destroy(cubeb * context);
|
||||
default output device is used.
|
||||
@param output_stream_params Parameters for the output side of the stream, or
|
||||
NULL if this stream is input only.
|
||||
@param latency Stream latency in frames. Valid range
|
||||
is [1, 96000].
|
||||
@param latency_frames Stream latency in frames. Valid range
|
||||
is [1, 96000].
|
||||
@param data_callback Will be called to preroll data before playback is
|
||||
started by cubeb_stream_start.
|
||||
@param state_callback A pointer to a state callback.
|
||||
|
@ -11,6 +11,29 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef __clang__
|
||||
#ifndef CLANG_ANALYZER_NORETURN
|
||||
#if __has_feature(attribute_analyzer_noreturn)
|
||||
#define CLANG_ANALYZER_NORETURN __attribute__((analyzer_noreturn))
|
||||
#else
|
||||
#define CLANG_ANALYZER_NORETURN
|
||||
#endif // ifndef CLANG_ANALYZER_NORETURN
|
||||
#endif // __has_feature(attribute_analyzer_noreturn)
|
||||
#else // __clang__
|
||||
#define CLANG_ANALYZER_NORETURN
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Crash the caller. */
|
||||
void cubeb_crash() CLANG_ANALYZER_NORETURN;
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
struct cubeb_ops {
|
||||
int (* init)(cubeb ** context, char const * context_name);
|
||||
char const * (* get_backend_id)(cubeb * context);
|
||||
@ -52,12 +75,11 @@ struct cubeb_ops {
|
||||
void * user_ptr);
|
||||
};
|
||||
|
||||
#define XASSERT(expr) do { \
|
||||
if (!(expr)) { \
|
||||
#define XASSERT(expr) do { \
|
||||
if (!(expr)) { \
|
||||
fprintf(stderr, "%s:%d - fatal error: %s\n", __FILE__, __LINE__, #expr); \
|
||||
*((volatile int *) NULL) = 0; \
|
||||
abort(); \
|
||||
} \
|
||||
cubeb_crash(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif /* CUBEB_INTERNAL_0eb56756_4e20_4404_a76d_42bf88cd15a5 */
|
||||
|
@ -33,15 +33,9 @@ int jack_init (cubeb ** context, char const * context_name);
|
||||
#if defined(USE_ALSA)
|
||||
int alsa_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
#if defined(USE_AUDIOQUEUE)
|
||||
int audioqueue_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
#if defined(USE_AUDIOUNIT)
|
||||
int audiounit_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
#if defined(USE_DIRECTSOUND)
|
||||
int directsound_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
#if defined(USE_WINMM)
|
||||
int winmm_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
@ -129,18 +123,12 @@ cubeb_init(cubeb ** context, char const * context_name)
|
||||
#if defined(USE_AUDIOUNIT)
|
||||
audiounit_init,
|
||||
#endif
|
||||
#if defined(USE_AUDIOQUEUE)
|
||||
audioqueue_init,
|
||||
#endif
|
||||
#if defined(USE_WASAPI)
|
||||
wasapi_init,
|
||||
#endif
|
||||
#if defined(USE_WINMM)
|
||||
winmm_init,
|
||||
#endif
|
||||
#if defined(USE_DIRECTSOUND)
|
||||
directsound_init,
|
||||
#endif
|
||||
#if defined(USE_SNDIO)
|
||||
sndio_init,
|
||||
#endif
|
||||
@ -454,3 +442,10 @@ int cubeb_register_device_collection_changed(cubeb * context,
|
||||
return context->ops->register_device_collection_changed(context, devtype, callback, user_ptr);
|
||||
}
|
||||
|
||||
void cubeb_crash()
|
||||
{
|
||||
abort();
|
||||
*((volatile int *) NULL) = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "cubeb_ring_array.h"
|
||||
#include "cubeb_utils.h"
|
||||
#include <algorithm>
|
||||
#include <atomic>
|
||||
|
||||
#if !defined(kCFCoreFoundationVersionNumber10_7)
|
||||
/* From CoreFoundation CFBase.h */
|
||||
@ -180,7 +181,7 @@ struct cubeb_stream {
|
||||
int draining;
|
||||
uint64_t current_latency_frames;
|
||||
uint64_t hw_latency_frames;
|
||||
float panning;
|
||||
std::atomic<float> panning;
|
||||
cubeb_resampler * resampler;
|
||||
};
|
||||
|
||||
@ -409,7 +410,8 @@ audiounit_output_callback(void * user_ptr,
|
||||
stm->frames_queued += outframes;
|
||||
|
||||
AudioFormatFlags outaff = stm->output_desc.mFormatFlags;
|
||||
float panning = (stm->output_desc.mChannelsPerFrame == 2) ? stm->panning : 0.0f;
|
||||
float panning = (stm->output_desc.mChannelsPerFrame == 2) ?
|
||||
stm->panning.load(std::memory_order_relaxed) : 0.0f;
|
||||
|
||||
/* Post process output samples. */
|
||||
if (stm->draining) {
|
||||
@ -1613,11 +1615,7 @@ int audiounit_stream_set_panning(cubeb_stream * stm, float panning)
|
||||
return CUBEB_ERROR_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
{
|
||||
auto_lock lock(stm->mutex);
|
||||
stm->panning = panning;
|
||||
}
|
||||
|
||||
stm->panning.store(panning, std::memory_order_relaxed);
|
||||
return CUBEB_OK;
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,9 @@
|
||||
X(jack_port_get_latency_range) \
|
||||
X(jack_set_process_callback) \
|
||||
X(jack_set_xrun_callback) \
|
||||
X(jack_set_graph_order_callback)
|
||||
X(jack_set_graph_order_callback) \
|
||||
X(jack_set_error_function) \
|
||||
X(jack_set_info_function)
|
||||
|
||||
#define IMPORT_FUNC(x) static decltype(x) * api_##x;
|
||||
JACK_API_VISIT(IMPORT_FUNC);
|
||||
@ -283,8 +285,6 @@ cbjack_graph_order_callback(void * arg)
|
||||
{
|
||||
cubeb * ctx = (cubeb *)arg;
|
||||
int i;
|
||||
uint32_t rate;
|
||||
|
||||
jack_latency_range_t latency_range;
|
||||
jack_nframes_t port_latency, max_latency = 0;
|
||||
|
||||
@ -564,6 +564,11 @@ cbjack_interleave_capture(cubeb_stream * stream, float **in, jack_nframes_t nfra
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
silent_jack_error_callback(char const * /*msg*/)
|
||||
{
|
||||
}
|
||||
|
||||
/*static*/ int
|
||||
jack_init (cubeb ** context, char const * context_name)
|
||||
{
|
||||
@ -582,6 +587,9 @@ jack_init (cubeb ** context, char const * context_name)
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
api_jack_set_error_function(silent_jack_error_callback);
|
||||
api_jack_set_info_function(silent_jack_error_callback);
|
||||
|
||||
ctx->ops = &cbjack_ops;
|
||||
|
||||
ctx->mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
@ -623,13 +631,13 @@ jack_init (cubeb ** context, char const * context_name)
|
||||
}
|
||||
|
||||
static char const *
|
||||
cbjack_get_backend_id(cubeb * context)
|
||||
cbjack_get_backend_id(cubeb * /*context*/)
|
||||
{
|
||||
return "jack";
|
||||
}
|
||||
|
||||
static int
|
||||
cbjack_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
cbjack_get_max_channel_count(cubeb * /*ctx*/, uint32_t * max_channels)
|
||||
{
|
||||
*max_channels = MAX_CHANNELS;
|
||||
return CUBEB_OK;
|
||||
@ -643,7 +651,7 @@ cbjack_get_latency(cubeb_stream * stm, unsigned int * latency_ms)
|
||||
}
|
||||
|
||||
static int
|
||||
cbjack_get_min_latency(cubeb * ctx, cubeb_stream_params params, uint32_t * latency_ms)
|
||||
cbjack_get_min_latency(cubeb * ctx, cubeb_stream_params /*params*/, uint32_t * latency_ms)
|
||||
{
|
||||
*latency_ms = ctx->jack_latency;
|
||||
return CUBEB_OK;
|
||||
@ -703,7 +711,7 @@ cbjack_stream_init(cubeb * context, cubeb_stream ** stream, char const * stream_
|
||||
cubeb_stream_params * input_stream_params,
|
||||
cubeb_devid output_device,
|
||||
cubeb_stream_params * output_stream_params,
|
||||
unsigned int latency_frames,
|
||||
unsigned int /*latency_frames*/,
|
||||
cubeb_data_callback data_callback,
|
||||
cubeb_state_callback state_callback,
|
||||
void * user_ptr)
|
||||
@ -725,6 +733,9 @@ cbjack_stream_init(cubeb * context, cubeb_stream ** stream, char const * stream_
|
||||
return CUBEB_ERROR_INVALID_FORMAT;
|
||||
}
|
||||
|
||||
if (input_device || output_device)
|
||||
return CUBEB_ERROR_NOT_SUPPORTED;
|
||||
|
||||
*stream = NULL;
|
||||
|
||||
// Find a free stream.
|
||||
@ -956,7 +967,7 @@ cbjack_stream_get_current_device(cubeb_stream * stm, cubeb_device ** const devic
|
||||
}
|
||||
|
||||
static int
|
||||
cbjack_stream_device_destroy(cubeb_stream * stream,
|
||||
cbjack_stream_device_destroy(cubeb_stream * /*stream*/,
|
||||
cubeb_device * device)
|
||||
{
|
||||
if (device->input_name)
|
||||
|
@ -150,7 +150,7 @@ template<typename T, typename InputProcessor, typename OutputProcessor>
|
||||
long
|
||||
cubeb_resampler_speex<T, InputProcessor, OutputProcessor>
|
||||
::fill_internal_input(T * input_buffer, long * input_frames_count,
|
||||
T * output_buffer, long output_frames_needed)
|
||||
T * output_buffer, long /*output_frames_needed*/)
|
||||
{
|
||||
assert(input_buffer && input_frames_count && *input_frames_count &&
|
||||
!output_buffer);
|
||||
|
@ -20,7 +20,11 @@ public:
|
||||
{
|
||||
pthread_mutexattr_t attr;
|
||||
pthread_mutexattr_init(&attr);
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
|
||||
#ifdef DEBUG
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
|
||||
#else
|
||||
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_NORMAL);
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
int r =
|
||||
|
@ -760,8 +760,10 @@ refill_callback_output(cubeb_stream * stm)
|
||||
0,
|
||||
output_buffer,
|
||||
output_frames);
|
||||
XASSERT(got >= 0);
|
||||
XASSERT(got == output_frames || stm->draining);
|
||||
|
||||
hr = stm->render_client->ReleaseBuffer(output_frames, 0);
|
||||
hr = stm->render_client->ReleaseBuffer(got, 0);
|
||||
if (FAILED(hr)) {
|
||||
LOG("failed to release buffer: %x\n", hr);
|
||||
return false;
|
||||
@ -1022,7 +1024,7 @@ current_stream_delay(cubeb_stream * stm)
|
||||
double cur_pos = static_cast<double>(pos) / freq;
|
||||
double max_pos = static_cast<double>(stm->frames_written) / stm->output_mix_params.rate;
|
||||
double delay = max_pos - cur_pos;
|
||||
XASSERT(delay >= 0 || stm->draining);
|
||||
XASSERT(delay >= 0);
|
||||
|
||||
return delay;
|
||||
}
|
||||
|
@ -310,6 +310,11 @@ winmm_init(cubeb ** context, char const * context_name)
|
||||
XASSERT(context);
|
||||
*context = NULL;
|
||||
|
||||
/* Don't initialize a context if there are no devices available. */
|
||||
if (waveOutGetNumDevs() == 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
ctx = calloc(1, sizeof(*ctx));
|
||||
XASSERT(ctx);
|
||||
|
||||
@ -533,23 +538,32 @@ winmm_stream_init(cubeb * context, cubeb_stream ** stream, char const * stream_n
|
||||
static void
|
||||
winmm_stream_destroy(cubeb_stream * stm)
|
||||
{
|
||||
DWORD r;
|
||||
int i;
|
||||
int enqueued;
|
||||
|
||||
if (stm->waveout) {
|
||||
MMTIME time;
|
||||
MMRESULT r;
|
||||
int device_valid;
|
||||
int enqueued;
|
||||
|
||||
EnterCriticalSection(&stm->lock);
|
||||
stm->shutdown = 1;
|
||||
|
||||
waveOutReset(stm->waveout);
|
||||
|
||||
/* Don't need this value, we just want the result to detect invalid
|
||||
handle/no device errors than waveOutReset doesn't seem to report. */
|
||||
time.wType = TIME_SAMPLES;
|
||||
r = waveOutGetPosition(stm->waveout, &time, sizeof(time));
|
||||
device_valid = !(r == MMSYSERR_INVALHANDLE || r == MMSYSERR_NODRIVER);
|
||||
|
||||
enqueued = NBUFS - stm->free_buffers;
|
||||
LeaveCriticalSection(&stm->lock);
|
||||
|
||||
/* Wait for all blocks to complete. */
|
||||
while (enqueued > 0) {
|
||||
r = WaitForSingleObject(stm->event, INFINITE);
|
||||
XASSERT(r == WAIT_OBJECT_0);
|
||||
while (device_valid && enqueued > 0) {
|
||||
DWORD rv = WaitForSingleObject(stm->event, INFINITE);
|
||||
XASSERT(rv == WAIT_OBJECT_0);
|
||||
|
||||
EnterCriticalSection(&stm->lock);
|
||||
enqueued = NBUFS - stm->free_buffers;
|
||||
|
@ -73,7 +73,7 @@ void synth_run_float(synth_state* synth, float* audiobuffer, long nframes)
|
||||
}
|
||||
}
|
||||
|
||||
long data_cb_float(cubeb_stream *stream, void *user, const void * inputbuffer, void *outputbuffer, long nframes)
|
||||
long data_cb_float(cubeb_stream * /*stream*/, void * user, const void * /*inputbuffer*/, void * outputbuffer, long nframes)
|
||||
{
|
||||
synth_state *synth = (synth_state *)user;
|
||||
synth_run_float(synth, (float*)outputbuffer, nframes);
|
||||
@ -92,14 +92,14 @@ void synth_run_16bit(synth_state* synth, short* audiobuffer, long nframes)
|
||||
}
|
||||
}
|
||||
|
||||
long data_cb_short(cubeb_stream *stream, void *user, const void * inputbuffer, void *outputbuffer, long nframes)
|
||||
long data_cb_short(cubeb_stream * /*stream*/, void * user, const void * /*inputbuffer*/, void * outputbuffer, long nframes)
|
||||
{
|
||||
synth_state *synth = (synth_state *)user;
|
||||
synth_run_16bit(synth, (short*)outputbuffer, nframes);
|
||||
return nframes;
|
||||
}
|
||||
|
||||
void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
void state_cb(cubeb_stream * /*stream*/, void * /*user*/, cubeb_state /*state*/)
|
||||
{
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ void run_channel_rate_test()
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_audio");
|
||||
|
@ -38,7 +38,7 @@ struct user_state
|
||||
|
||||
|
||||
|
||||
long data_cb(cubeb_stream *stream, void *user, const void * inputbuffer, void *outputbuffer, long nframes)
|
||||
long data_cb(cubeb_stream * stream, void * user, const void * inputbuffer, void * outputbuffer, long nframes)
|
||||
{
|
||||
user_state * u = reinterpret_cast<user_state*>(user);
|
||||
#if (defined(_WIN32) || defined(__WIN32__))
|
||||
@ -70,7 +70,7 @@ long data_cb(cubeb_stream *stream, void *user, const void * inputbuffer, void *o
|
||||
return nframes;
|
||||
}
|
||||
|
||||
void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
void state_cb(cubeb_stream * stream, void * /*user*/, cubeb_state state)
|
||||
{
|
||||
if (stream == NULL)
|
||||
return;
|
||||
@ -89,7 +89,7 @@ void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_duplex");
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
#define LOG(msg) fprintf(stderr, "%s\n", msg);
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
int main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_latency");
|
||||
|
@ -33,7 +33,7 @@ struct user_state
|
||||
bool seen_noise;
|
||||
};
|
||||
|
||||
long data_cb(cubeb_stream *stream, void *user, const void * inputbuffer, void *outputbuffer, long nframes)
|
||||
long data_cb(cubeb_stream * stream, void * user, const void * inputbuffer, void * outputbuffer, long nframes)
|
||||
{
|
||||
user_state * u = reinterpret_cast<user_state*>(user);
|
||||
#if STREAM_FORMAT != CUBEB_SAMPLE_FLOAT32LE
|
||||
@ -58,7 +58,7 @@ long data_cb(cubeb_stream *stream, void *user, const void * inputbuffer, void *o
|
||||
return nframes;
|
||||
}
|
||||
|
||||
void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
void state_cb(cubeb_stream * stream, void * /*user*/, cubeb_state state)
|
||||
{
|
||||
if (stream == NULL)
|
||||
return;
|
||||
@ -77,7 +77,7 @@ void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_record");
|
||||
|
@ -283,7 +283,7 @@ uint32_t fill_with_sine(float * buf, uint32_t rate, uint32_t channels,
|
||||
return initial_phase;
|
||||
}
|
||||
|
||||
long data_cb(cubeb_stream * stm, void * user_ptr,
|
||||
long data_cb(cubeb_stream * /*stm*/, void * user_ptr,
|
||||
const void * input_buffer, void * output_buffer, long frame_count)
|
||||
{
|
||||
osc_state * state = reinterpret_cast<osc_state*>(user_ptr);
|
||||
@ -464,7 +464,7 @@ void test_delay_line()
|
||||
}
|
||||
}
|
||||
|
||||
long test_output_only_noop_data_cb(cubeb_stream * stm, void * user_ptr,
|
||||
long test_output_only_noop_data_cb(cubeb_stream * /*stm*/, void * /*user_ptr*/,
|
||||
const void * input_buffer,
|
||||
void * output_buffer, long frame_count)
|
||||
{
|
||||
@ -500,7 +500,7 @@ void test_output_only_noop()
|
||||
cubeb_resampler_destroy(resampler);
|
||||
}
|
||||
|
||||
long test_drain_data_cb(cubeb_stream * stm, void * user_ptr,
|
||||
long test_drain_data_cb(cubeb_stream * /*stm*/, void * /*user_ptr*/,
|
||||
const void * input_buffer,
|
||||
void * output_buffer, long frame_count)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@ static uint64_t total_frames_written;
|
||||
static int delay_callback;
|
||||
|
||||
static long
|
||||
test_data_callback(cubeb_stream * stm, void * user_ptr, const void * inputbuffer, void * outputbuffer, long nframes)
|
||||
test_data_callback(cubeb_stream * stm, void * user_ptr, const void * /*inputbuffer*/, void * outputbuffer, long nframes)
|
||||
{
|
||||
assert(stm && user_ptr == &dummy && outputbuffer && nframes > 0);
|
||||
#if (defined(_WIN32) || defined(__WIN32__))
|
||||
@ -53,7 +53,7 @@ test_data_callback(cubeb_stream * stm, void * user_ptr, const void * inputbuffer
|
||||
}
|
||||
|
||||
void
|
||||
test_state_callback(cubeb_stream * stm, void * user_ptr, cubeb_state state)
|
||||
test_state_callback(cubeb_stream * /*stm*/, void * /*user_ptr*/, cubeb_state /*state*/)
|
||||
{
|
||||
}
|
||||
|
||||
@ -494,7 +494,7 @@ static int do_drain;
|
||||
static int got_drain;
|
||||
|
||||
static long
|
||||
test_drain_data_callback(cubeb_stream * stm, void * user_ptr, const void * inputbuffer, void * outputbuffer, long nframes)
|
||||
test_drain_data_callback(cubeb_stream * stm, void * user_ptr, const void * /*inputbuffer*/, void * outputbuffer, long nframes)
|
||||
{
|
||||
assert(stm && user_ptr == &dummy && outputbuffer && nframes > 0);
|
||||
if (do_drain == 1) {
|
||||
@ -513,7 +513,7 @@ test_drain_data_callback(cubeb_stream * stm, void * user_ptr, const void * input
|
||||
}
|
||||
|
||||
void
|
||||
test_drain_state_callback(cubeb_stream * stm, void * user_ptr, cubeb_state state)
|
||||
test_drain_state_callback(cubeb_stream * /*stm*/, void * /*user_ptr*/, cubeb_state state)
|
||||
{
|
||||
if (state == CUBEB_STATE_DRAINED) {
|
||||
assert(!got_drain);
|
||||
@ -608,7 +608,7 @@ int is_windows_7()
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char * argv[])
|
||||
main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_sanity");
|
||||
|
@ -34,7 +34,7 @@ struct cb_user_data {
|
||||
long position;
|
||||
};
|
||||
|
||||
long data_cb(cubeb_stream *stream, void *user, const void* inputbuffer, void *outputbuffer, long nframes)
|
||||
long data_cb(cubeb_stream *stream, void *user, const void* /*inputbuffer*/, void *outputbuffer, long nframes)
|
||||
{
|
||||
struct cb_user_data *u = (struct cb_user_data *)user;
|
||||
#if (defined(_WIN32) || defined(__WIN32__))
|
||||
@ -98,7 +98,7 @@ void state_cb(cubeb_stream *stream, void *user, cubeb_state state)
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int main(int /*argc*/, char * /*argv*/[])
|
||||
{
|
||||
#ifdef CUBEB_GECKO_BUILD
|
||||
ScopedXPCOM xpcom("test_tone");
|
||||
|
@ -57,5 +57,3 @@ else
|
||||
echo "Remember to update README_MOZILLA with the version details."
|
||||
fi
|
||||
|
||||
patch -p3 < bug1278612.patch
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user