summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
authorbad <bad@pkgsrc.org>2015-05-14 15:30:54 +0000
committerbad <bad@pkgsrc.org>2015-05-14 15:30:54 +0000
commit5ca478744b98c230d82a437274fc41915c9a4c91 (patch)
tree194703381526701602fd5bebcdf4499ac38383ce /www
parent03483a67a92d2c7a1287c8b237e1b9c7c037a157 (diff)
downloadpkgsrc-5ca478744b98c230d82a437274fc41915c9a4c91.tar.gz
Make ALSA support build again. Handle EBADFD only if it is #defined.
Diffstat (limited to 'www')
-rw-r--r--www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c70
1 files changed, 36 insertions, 34 deletions
diff --git a/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c b/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
index 5f5c7adefc3..19bf917df22 100644
--- a/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
+++ b/www/firefox/patches/patch-media_libcubeb_src_cubeb__alsa.c
@@ -1,7 +1,7 @@
-$NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon Exp $
+$NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.10 2015/05/14 15:30:54 bad Exp $
---- media/libcubeb/src/cubeb_alsa.c.orig 2015-03-27 02:20:23.000000000 +0000
-+++ media/libcubeb/src/cubeb_alsa.c
+--- media/libcubeb/src/cubeb_alsa.c.orig 2015-05-08 16:55:17.000000000 +0000
++++ media/libcubeb/src/cubeb_alsa.c 2015-05-14 15:22:34.000000000 +0000
@@ -7,12 +7,18 @@
#undef NDEBUG
#define _DEFAULT_SOURCE
@@ -73,7 +73,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
/* ALSA is not thread-safe. snd_pcm_t instances are individually protected
by the owning cubeb_stream's mutex. snd_pcm_t creation and destruction
is not thread-safe until ALSA 1.0.24 (see alsa-lib.git commit 91c9c8f1),
-@@ -65,6 +116,8 @@ struct cubeb {
+@@ -65,6 +116,8 @@
workaround is not required. */
snd_config_t * local_config;
int is_pa;
@@ -82,7 +82,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
};
enum stream_state {
-@@ -258,32 +311,35 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -258,32 +311,35 @@
long got;
void * p;
int draining;
@@ -137,7 +137,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
/* This should never happen. */
if ((unsigned int) avail > stm->buffer_size) {
-@@ -294,8 +350,8 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -294,8 +350,8 @@
available to write. If avail is still zero here, the stream must be in
a funky state, so recover and try again. */
if (avail == 0) {
@@ -148,7 +148,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (avail <= 0) {
pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
-@@ -303,7 +359,7 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -303,7 +359,7 @@
}
}
@@ -157,7 +157,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
assert(p);
pthread_mutex_unlock(&stm->mutex);
-@@ -312,10 +368,11 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -312,10 +368,11 @@
if (got < 0) {
pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
@@ -170,7 +170,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
float * b = (float *) p;
-@@ -328,14 +385,62 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -328,14 +385,64 @@
b[i] *= stm->volume;
}
}
@@ -206,6 +206,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
+ return ERROR;
+ }
+ continue;
++#if defined(EBADFD)
+ case -EBADFD:
+ fprintf(stderr, "%s: snc_pcm_writei returned -%s, giving up\n",
+ __func__, "EBADFD");
@@ -213,6 +214,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
+ stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
+ pthread_mutex_unlock(&stm->mutex);
+ return ERROR;
++#endif
+ }
+ if (wrote < 0) {
+ fprintf(stderr, "%s: snc_pcm_writei returned unexpected error %lld, "
@@ -241,7 +243,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
}
if (got != avail) {
long buffer_fill = stm->buffer_size - (avail - got);
-@@ -343,7 +448,7 @@ alsa_refill_stream(cubeb_stream * stm)
+@@ -343,7 +450,7 @@
/* Fill the remaining buffer with silence to guarantee one full period
has been written. */
@@ -250,7 +252,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
set_timeout(&stm->drain_timeout, buffer_time * 1000);
-@@ -454,26 +559,26 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -454,26 +561,26 @@
slave_def = NULL;
@@ -282,7 +284,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -482,7 +587,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -482,7 +589,7 @@
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -291,7 +293,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -491,7 +596,7 @@ get_slave_pcm_node(snd_config_t * lconf,
+@@ -491,7 +598,7 @@
} while (0);
if (slave_def) {
@@ -300,7 +302,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
}
return NULL;
-@@ -514,22 +619,22 @@ init_local_config_with_workaround(char c
+@@ -514,22 +621,22 @@
lconf = NULL;
@@ -327,7 +329,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -538,7 +643,7 @@ init_local_config_with_workaround(char c
+@@ -538,7 +645,7 @@
if (r < 0 || r > (int) sizeof(node_name)) {
break;
}
@@ -336,7 +338,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -549,12 +654,12 @@ init_local_config_with_workaround(char c
+@@ -549,12 +656,12 @@
}
/* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
@@ -351,7 +353,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -565,18 +670,18 @@ init_local_config_with_workaround(char c
+@@ -565,18 +672,18 @@
/* Don't clobber an explicit existing handle_underrun value, set it only
if it doesn't already exist. */
@@ -373,7 +375,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
break;
}
-@@ -584,7 +689,7 @@ init_local_config_with_workaround(char c
+@@ -584,7 +691,7 @@
return lconf;
} while (0);
@@ -382,7 +384,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
return NULL;
}
-@@ -596,9 +701,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, s
+@@ -596,9 +703,9 @@
pthread_mutex_lock(&cubeb_alsa_mutex);
if (local_config) {
@@ -394,7 +396,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -611,7 +716,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
+@@ -611,7 +718,7 @@
int r;
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -403,7 +405,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
return r;
-@@ -668,12 +773,65 @@ alsa_init(cubeb ** context, char const *
+@@ -668,12 +775,65 @@
pthread_attr_t attr;
snd_pcm_t * dummy;
@@ -470,7 +472,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
cubeb_alsa_error_handler_set = 1;
}
pthread_mutex_unlock(&cubeb_alsa_mutex);
-@@ -681,6 +839,8 @@ alsa_init(cubeb ** context, char const *
+@@ -681,6 +841,8 @@
ctx = calloc(1, sizeof(*ctx));
assert(ctx);
@@ -479,7 +481,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
ctx->ops = &alsa_ops;
r = pthread_mutex_init(&ctx->mutex, NULL);
-@@ -730,7 +890,7 @@ alsa_init(cubeb ** context, char const *
+@@ -730,7 +892,7 @@
config fails with EINVAL, the PA PCM is too old for this workaround. */
if (r == -EINVAL) {
pthread_mutex_lock(&cubeb_alsa_mutex);
@@ -488,7 +490,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
ctx->local_config = NULL;
} else if (r >= 0) {
-@@ -769,9 +929,13 @@ alsa_destroy(cubeb * ctx)
+@@ -769,9 +931,13 @@
pthread_mutex_destroy(&ctx->mutex);
free(ctx->fds);
@@ -503,7 +505,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
pthread_mutex_unlock(&cubeb_alsa_mutex);
}
-@@ -839,7 +1003,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+@@ -839,7 +1005,7 @@
return CUBEB_ERROR;
}
@@ -512,7 +514,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
assert(r == 0);
/* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
-@@ -849,23 +1013,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
+@@ -849,23 +1015,23 @@
latency = latency < 500 ? 500 : latency;
}
@@ -542,7 +544,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
assert((nfds_t) r == stm->nfds);
r = pthread_cond_init(&stm->cond, NULL);
-@@ -896,7 +1060,7 @@ alsa_stream_destroy(cubeb_stream * stm)
+@@ -896,7 +1062,7 @@
pthread_mutex_lock(&stm->mutex);
if (stm->pcm) {
if (stm->state == DRAINING) {
@@ -551,7 +553,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
}
alsa_locked_pcm_close(stm->pcm);
stm->pcm = NULL;
-@@ -906,7 +1070,10 @@ alsa_stream_destroy(cubeb_stream * stm)
+@@ -906,7 +1072,10 @@
pthread_mutex_destroy(&stm->mutex);
r = pthread_cond_destroy(&stm->cond);
@@ -563,7 +565,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
alsa_unregister_stream(stm);
-@@ -938,12 +1105,12 @@ alsa_get_max_channel_count(cubeb * ctx,
+@@ -938,12 +1107,12 @@
return CUBEB_ERROR;
}
@@ -578,7 +580,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
if (r < 0) {
return CUBEB_ERROR;
}
-@@ -963,34 +1130,34 @@ alsa_get_preferred_sample_rate(cubeb * c
+@@ -963,34 +1132,34 @@
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
@@ -621,7 +623,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
return CUBEB_OK;
}
-@@ -1014,7 +1181,7 @@ alsa_stream_start(cubeb_stream * stm)
+@@ -1014,7 +1183,7 @@
ctx = stm->context;
pthread_mutex_lock(&stm->mutex);
@@ -630,7 +632,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
gettimeofday(&stm->last_activity, NULL);
pthread_mutex_unlock(&stm->mutex);
-@@ -1048,7 +1215,7 @@ alsa_stream_stop(cubeb_stream * stm)
+@@ -1048,7 +1217,7 @@
pthread_mutex_unlock(&ctx->mutex);
pthread_mutex_lock(&stm->mutex);
@@ -639,7 +641,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
pthread_mutex_unlock(&stm->mutex);
return CUBEB_OK;
-@@ -1064,14 +1231,17 @@ alsa_stream_get_position(cubeb_stream *
+@@ -1064,14 +1233,17 @@
pthread_mutex_lock(&stm->mutex);
delay = -1;
@@ -660,7 +662,7 @@ $NetBSD: patch-media_libcubeb_src_cubeb__alsa.c,v 1.9 2015/04/05 12:54:11 ryoon
*position = 0;
if (stm->write_position >= (snd_pcm_uframes_t) delay) {
-@@ -1090,7 +1260,7 @@ alsa_stream_get_latency(cubeb_stream * s
+@@ -1090,7 +1262,7 @@
snd_pcm_sframes_t delay;
/* This function returns the delay in frames until a frame written using
snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */