available on debian stable
Unified · Split
| @@ -44,17 +44,6 @@ · 43 unmodified lines | |||
| 44 | #include "internal.h" | 44 | #include "internal.h" |
| 45 | #include "osdep/timer.h" | 45 | #include "osdep/timer.h" |
| 46 | 46 | ||
| 47 | #if !PW_CHECK_VERSION(0, 3, 50) | ||
| 48 | static inline int pw_stream_get_time_n(struct pw_stream *stream, struct pw_time *time, size_t size) { | ||
| 49 | return pw_stream_get_time(stream, time); | ||
| 50 | } | ||
| 51 | #endif | ||
| 52 | |||
| 53 | #if !PW_CHECK_VERSION(0, 3, 57) | ||
| 54 | // Earlier versions segfault on zeroed hooks | ||
| 55 | #define spa_hook_remove(hook) if ((hook)->link.prev) spa_hook_remove(hook) | ||
| 56 | #endif | ||
| 57 | |||
| 58 | #if !PW_CHECK_VERSION(1, 0, 4) | 47 | #if !PW_CHECK_VERSION(1, 0, 4) |
| 59 | static uint64_t pw_stream_get_nsec(struct pw_stream *stream) | 48 | static uint64_t pw_stream_get_nsec(struct pw_stream *stream) |
| 60 | { | 49 | { |
| @@ -191,10 +180,8 @@ static void on_process(void *userdata) · 130 unmodified lines | |||
| 191 | struct spa_buffer *buf = b->buffer; | 180 | struct spa_buffer *buf = b->buffer; |
| 192 | 181 | ||
| 193 | int nframes = buf->datas[0].maxsize / ao->sstride; | 182 | int nframes = buf->datas[0].maxsize / ao->sstride; |
| 194 | #if PW_CHECK_VERSION(0, 3, 49) | ||
| 195 | if (b->requested != 0) | 183 | if (b->requested != 0) |
| 196 | nframes = MPMIN(b->requested, nframes); | 184 | nframes = MPMIN(b->requested, nframes); |
| 197 | #endif | ||
| 198 | 185 | ||
| 199 | for (int i = 0; i < buf->n_datas; i++) | 186 | for (int i = 0; i < buf->n_datas; i++) |
| 200 | data[i] = buf->datas[i].data; | 187 | data[i] = buf->datas[i].data; |
| @@ -209,9 +196,7 @@ static void on_process(void *userdata) · 8 unmodified lines | |||
| 209 | end_time += MP_TIME_S_TO_NS(nframes) / ao->samplerate; | 196 | end_time += MP_TIME_S_TO_NS(nframes) / ao->samplerate; |
| 210 | end_time += MP_TIME_S_TO_NS(time.delay) * time.rate.num / time.rate.denom; | 197 | end_time += MP_TIME_S_TO_NS(time.delay) * time.rate.num / time.rate.denom; |
| 211 | end_time += MP_TIME_S_TO_NS(time.queued) / ao->samplerate; | 198 | end_time += MP_TIME_S_TO_NS(time.queued) / ao->samplerate; |
| 212 | #if PW_CHECK_VERSION(0, 3, 50) | ||
| 213 | end_time += MP_TIME_S_TO_NS(time.buffered) / ao->samplerate; | 199 | end_time += MP_TIME_S_TO_NS(time.buffered) / ao->samplerate; |
| 214 | #endif | ||
| 215 | end_time -= pw_stream_get_nsec(p->stream) - time.now; | 200 | end_time -= pw_stream_get_nsec(p->stream) - time.now; |
| 216 | 201 | ||
| 217 | int samples = ao_read_data(ao, data, nframes, end_time, NULL, false, false); | 202 | int samples = ao_read_data(ao, data, nframes, end_time, NULL, false, false); |
| @@ -862,7 +862,7 @@ if features['oss-audio'] · 861 unmodified lines | |||
| 862 | sources += files('audio/out/ao_oss.c') | 862 | sources += files('audio/out/ao_oss.c') |
| 863 | endif | 863 | endif |
| 864 | 864 | ||
| 865 | pipewire = dependency('libpipewire-0.3', version: '>= 0.3.48', required: get_option('pipewire')) | 865 | pipewire = dependency('libpipewire-0.3', version: '>= 0.3.57', required: get_option('pipewire')) |
| 866 | features += {'pipewire': pipewire.found()} | 866 | features += {'pipewire': pipewire.found()} |
| 867 | if features['pipewire'] | 867 | if features['pipewire'] |
| 868 | dependencies += pipewire | 868 | dependencies += pipewire |