diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-11-20 01:02:01 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-11-20 01:02:01 +0100 |
commit | 9708ecd6483ac9037c82a2a2a935e97d027f6b1b (patch) | |
tree | e7215343bc75c47ce30d88764e52062206c8d0fd /src/pulsecore | |
parent | f202af17b717f5b383ac072f80a6c1327bc3143b (diff) | |
parent | 9033140f18db820f3be9a6acae88a118d9154cf6 (diff) |
Merge branch 'master' of ssh://rootserver/home/lennart/git/public/pulseaudio
Diffstat (limited to 'src/pulsecore')
-rw-r--r-- | src/pulsecore/core-util.c | 8 | ||||
-rw-r--r-- | src/pulsecore/protocol-native.c | 2 | ||||
-rw-r--r-- | src/pulsecore/sink-input.c | 11 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 93ddf301..d596c481 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -117,6 +117,7 @@ #include <pulsecore/strbuf.h> #include <pulsecore/usergroup.h> #include <pulsecore/strlist.h> +#include <pulsecore/cpu-x86.h> #include "core-util.h" @@ -3085,10 +3086,13 @@ pa_bool_t pa_running_in_vm(void) { pa_zero(sig); __asm__ __volatile__ ( - " xor %%ebx, %%ebx \n\t" + /* ebx/rbx is being used for PIC! */ + " push %%"PA_REG_b" \n\t" " cpuid \n\t" + " mov %%ebx, %1 \n\t" + " pop %%"PA_REG_b" \n\t" - : "=a" (eax), "=b" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) + : "=a" (eax), "=r" (sig.sig32[0]), "=c" (sig.sig32[1]), "=d" (sig.sig32[2]) : "0" (eax) ); diff --git a/src/pulsecore/protocol-native.c b/src/pulsecore/protocol-native.c index bb29a196..d49a78e5 100644 --- a/src/pulsecore/protocol-native.c +++ b/src/pulsecore/protocol-native.c @@ -2631,7 +2631,7 @@ static void command_get_record_latency(pa_pdispatch *pd, uint32_t command, uint3 pa_tagstruct_put_usec(reply, s->current_monitor_latency); pa_tagstruct_put_usec(reply, s->current_source_latency + - pa_bytes_to_usec(s->on_the_fly_snapshot, &s->source_output->sample_spec)); + pa_bytes_to_usec(s->on_the_fly_snapshot, &s->source_output->source->sample_spec)); pa_tagstruct_put_boolean(reply, pa_source_get_state(s->source_output->source) == PA_SOURCE_RUNNING && pa_source_output_get_state(s->source_output) == PA_SOURCE_OUTPUT_RUNNING); diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index 177d330d..35e3d4a9 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -740,14 +740,15 @@ void pa_sink_input_peek(pa_sink_input *i, size_t slength /* in sink frames */, p pa_memchunk rchunk; pa_resampler_run(i->thread_info.resampler, &wchunk, &rchunk); - if (nvfs) { - pa_memchunk_make_writable(&rchunk, 0); - pa_volume_memchunk(&rchunk, &i->sink->sample_spec, &i->volume_factor_sink); - } - /* pa_log_debug("pushing %lu", (unsigned long) rchunk.length); */ if (rchunk.memblock) { + + if (nvfs) { + pa_memchunk_make_writable(&rchunk, 0); + pa_volume_memchunk(&rchunk, &i->sink->sample_spec, &i->volume_factor_sink); + } + pa_memblockq_push_align(i->thread_info.render_memblockq, &rchunk); pa_memblock_unref(rchunk.memblock); } |