[pulseaudio-discuss] [PATCH v2] thread-posix: remove duplicate code for setting thread name
According to the principle of DRY (don't repeat yourself), remove the code for setting thread name in thread-posix.c. Signed-off-by: Lu Guanqun --- src/pulsecore/thread-posix.c | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pulsecore/thread-posix.c b/src/pulsecore/thread-posix.c index 3f4ae5c..9a8c51b 100644 --- a/src/pulsecore/thread-posix.c +++ b/src/pulsecore/thread-posix.c @@ -65,15 +65,19 @@ static void thread_free_cb(void *p) { PA_STATIC_TLS_DECLARE(current_thread, thread_free_cb); +static void set_thread_name(const char *name) { +#ifdef __linux__ +prctl(PR_SET_NAME, name); +#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) +pthread_setname_np(name); +#endif +} + static void* internal_thread_func(void *userdata) { pa_thread *t = userdata; pa_assert(t); -#ifdef __linux__ -prctl(PR_SET_NAME, t->name); -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) -pthread_setname_np(t->name); -#endif +set_thread_name(t->name); t->id = pthread_self(); @@ -175,11 +179,7 @@ void pa_thread_set_name(pa_thread *t, const char *name) { pa_xfree(t->name); t->name = pa_xstrdup(name); -#ifdef __linux__ -prctl(PR_SET_NAME, name); -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) -pthread_setname_np(name); -#endif +set_thread_name(name); } const char *pa_thread_get_name(pa_thread *t) { ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 1/2] thread-posix: remove duplicate code for setting thread name
On Wed, Aug 10, 2011 at 11:42:03PM +0800, Maarten Bosmans wrote: > 2011/8/10 Lu Guanqun : > > According to the principle of DRY (don't repeat yourself), remove the code > > for > > setting thread name in thread-posix.c. > > > > Signed-off-by: Lu Guanqun > > --- > > src/pulsecore/thread-posix.c | 20 ++-- > > 1 files changed, 10 insertions(+), 10 deletions(-) > > > > diff --git a/src/pulsecore/thread-posix.c b/src/pulsecore/thread-posix.c > > index 3f4ae5c..81ae98d 100644 > > --- a/src/pulsecore/thread-posix.c > > +++ b/src/pulsecore/thread-posix.c > > @@ -65,15 +65,19 @@ static void thread_free_cb(void *p) { > > > > PA_STATIC_TLS_DECLARE(current_thread, thread_free_cb); > > > > +static void pa_thread_set_name_raw(const char *name) { > > We generally do not prefix internal functions with pa_.\ > See http://pulseaudio.org/wiki/CodingStyle, #7. Thanks for pointing this out. Will resend it. -- guanqun ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Automatic muting of multiple applications
> > There's a project called "Ear Candy" which implements similar > functionality. It's a stand-alone python app which fades the volume of > applications in and out based on certain criteria. Unfortunately it > doesn't seem to be active anymore, and the author notes that the > functionality should ideally be added to PulseAudio. > Indeed it should.. the only reason I haven't done it is my lack of c ninja skills > So my question is, would people be interested in such a feature in > PulseAudio, probably as a module? Do you see any apparent problems > with having this functionality? > It would be awesome... A couple of things * A lot of apps are now correctly adding media roles to there pa SinkInputs * Its already be stated that apps *should* obey the cork events... but most dont, a work around was attempted by faking the multimedia keys to the apps.. which frankly didn't work that well. * A better cork work around would be to use the MEPIS2 dbus interface ( http://www.mpris.org/2.1/spec/index.html) to pause apps. Most music/video apps these days support this interface (thanks to the ubuntu sound menu) * That would just leave the flash plugin issue... flash cant be corked? and of course you still will have no idea what kind of sound is coming from the browser (music/video/phone). In Earcandy I just treated browsers as a Video role, but I dont think theres a one size fits all answer here.. * Earcandy used the window stack to determine active client in a role.. ie the highest window with a client role of music got to be heard * Apps that can't be paused can always be muted... Cheers Jason Taylor > > > Best regards, > > Johannes > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > -- "Weekends don't count unless you spend them doing something completely pointless. " - Calven ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
pierre-louis wrote: > > > Have you played with the "prebuf" field? It defines the amount of > > buffering > > > before playback starts. By default it is set to the tlength size, > > that may > > > explain your 2s wait. > > > > i don't think so. the 2s happens at the end of playback, not the > > start. > > the trac ticket i referenced explains it pretty well. (but to answer > > your > > question, yes, i played with it.) > > Quite frankly I am not sure what the problem is, even after reading the bug > description. > > In your test file, you have a single stream open. If you write sequentially > multiple tones, they will be played one after the other. There cannot be any > issues with synchronization here, things are serial by construction. > And if you want your program to exit quickly, then you should use > pa_simple_flush, otherwise you will always have to wait for the buffered > data to be played out. > > Indeed pa_simple_drain has a delay, but I fail to see how it's a blocking > point. pa_play -s somehost tone1.wav pa_play -s somehost tone2.wav pa_play -s somehost tone3.wav the three tones will be separated by 2.2 second gaps of silence. paul =- paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 72.1 degrees) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
> > Have you played with the "prebuf" field? It defines the amount of > buffering > > before playback starts. By default it is set to the tlength size, > that may > > explain your 2s wait. > > i don't think so. the 2s happens at the end of playback, not the > start. > the trac ticket i referenced explains it pretty well. (but to answer > your > question, yes, i played with it.) Quite frankly I am not sure what the problem is, even after reading the bug description. In your test file, you have a single stream open. If you write sequentially multiple tones, they will be played one after the other. There cannot be any issues with synchronization here, things are serial by construction. And if you want your program to exit quickly, then you should use pa_simple_flush, otherwise you will always have to wait for the buffered data to be played out. Indeed pa_simple_drain has a delay, but I fail to see how it's a blocking point. -Pierre ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
pierre-louis wrote: > > > The 2s delay is likely related to the amount of audio that is > > buffered > > > by default. > > > > i've modified the pacat-simple.c example to let me play with the > > pa_buffer_attr passed to pa_simple_new, but can't seem to find a > > combination that avoids the 2s wait. > > Have you played with the "prebuf" field? It defines the amount of buffering > before playback starts. By default it is set to the tlength size, that may > explain your 2s wait. i don't think so. the 2s happens at the end of playback, not the start. the trac ticket i referenced explains it pretty well. (but to answer your question, yes, i played with it.) paul =- paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 69.4 degrees) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
> > The 2s delay is likely related to the amount of audio that is > buffered > > by default. > > i've modified the pacat-simple.c example to let me play with the > pa_buffer_attr passed to pa_simple_new, but can't seem to find a > combination that avoids the 2s wait. Have you played with the "prebuf" field? It defines the amount of buffering before playback starts. By default it is set to the tlength size, that may explain your 2s wait. -Pierre ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
lu wrote: > Hi, > > On Wed, Aug 10, 2011 at 09:47:47PM +0800, Paul Fox wrote: > > colin wrote: > > > 'Twas brillig, and Paul Fox at 08/08/11 15:21 did gyre and gimble: > > ... > > > > but this: > > > > paplay -s server one.wav > > > > paplay -s server two.wav > > > > will result in a delay of over 2 seconds between "one" and "two". > > ... > > > > > > This is likely related to the drain. In order to be 100% sure that the > > > data is no longer needed (as it may be needed by rewind buffers) we have > > > to wait. > > > > > > There are a few bug reports about this kind of thing in e.g. the simple > > > protocol, but I'm not sure we can solve it 100% in all cases. > > > > thanks. i found this: http://www.pulseaudio.org/ticket/866 > > > > it certainly sounds like a fix will be a long time coming. it feels > > to me that there should be a way for a stream to be started with a > > different "contract", i.e., "i will never rewind this stream. please > > deliver the data on a best-effort basis. i don't require > > acknowledgement of the last byte." i.e., exactly the conditions needed > > by most real-world uses of pa_play. > > > > > The 2s delay is likely related to the amount of audio that is buffered > > > by default. > > > > i've modified the pacat-simple.c example to let me play with the > > pa_buffer_attr passed to pa_simple_new, but can't seem to find a > > combination that avoids the 2s wait. > > I did some experiment to set the tsched buffer size down a little bit > and for me the wait time becomes smaller. This makes sense since the > total buffer becomes smaller and the time to wait it to be drained is > smaller. > > As this parameter is not exported via module-udev-detect, so you have to > use this hack method instead: thanks! will doing this result in different behavior than modifying the pa_buffer_attr struct that's passed to pa_simple_new()? (other than it affecting all clients, instead of just one, that is.) paul > > pacmd > >> list-modules > [find the module index of your alsa card] > >> unload-module > >> load-module module-alsa-card device_id="0" name="pci-_00_1b.0" > card_name="alsa_card.pci-_00_1b.0" namereg_fail=false tsched=yes > ignore_dB=no sync_volume=yes > card_properties="module-udev-detect.discovered=1" > tsched_buffer_size= > > [note the parameter here may differ from yours, but you can get it from > list-modules above, see the arguments part] > > Change the tsched_buffer_size to some number smaller. How to decide the > number? Before you unload this module, invoke list-sinks and check this > property: device.buffering.buffer_size. You may need to try half the > number again and again to see how it fixes your problem. > > The cons of this action is you gets poor power consumption, the wakeup > gets more and if it's too small, more chances of underrun. Be cautious. > It's more like a tuning thing. You can take a try. > > > > > removing the call to pa_simple_drain(), however, and (hack alert!) > > substituting usleep(10) seems to do the trick, for me. i do get > > a click between played files, though, so i'm not done. > > > > paul > > > > > > > > Col > > > > > > -- > > > > > > Colin Guthrie > > > gmane(at)colin.guthr.ie > > > http://colin.guthr.ie/ > > > > =- > > paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 62.4 > > degrees) > > ___ > > pulseaudio-discuss mailing list > > pulseaudio-discuss@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > > -- > guanqun =- paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 67.8 degrees) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 1/2] thread-posix: remove duplicate code for setting thread name
2011/8/10 Lu Guanqun : > According to the principle of DRY (don't repeat yourself), remove the code for > setting thread name in thread-posix.c. > > Signed-off-by: Lu Guanqun > --- > src/pulsecore/thread-posix.c | 20 ++-- > 1 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/src/pulsecore/thread-posix.c b/src/pulsecore/thread-posix.c > index 3f4ae5c..81ae98d 100644 > --- a/src/pulsecore/thread-posix.c > +++ b/src/pulsecore/thread-posix.c > @@ -65,15 +65,19 @@ static void thread_free_cb(void *p) { > > PA_STATIC_TLS_DECLARE(current_thread, thread_free_cb); > > +static void pa_thread_set_name_raw(const char *name) { We generally do not prefix internal functions with pa_.\ See http://pulseaudio.org/wiki/CodingStyle, #7. Maarten > +#ifdef __linux__ > + prctl(PR_SET_NAME, name); > +#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) > + pthread_setname_np(name); > +#endif > +} > + > static void* internal_thread_func(void *userdata) { > pa_thread *t = userdata; > pa_assert(t); > > -#ifdef __linux__ > - prctl(PR_SET_NAME, t->name); > -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) > - pthread_setname_np(t->name); > -#endif > + pa_thread_set_name_raw(t->name); > > t->id = pthread_self(); > > @@ -175,11 +179,7 @@ void pa_thread_set_name(pa_thread *t, const char *name) { > pa_xfree(t->name); > t->name = pa_xstrdup(name); > > -#ifdef __linux__ > - prctl(PR_SET_NAME, name); > -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) > - pthread_setname_np(name); > -#endif > + pa_thread_set_name_raw(name); > } > > const char *pa_thread_get_name(pa_thread *t) { > > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH 2/2] sample-util: use built-in function
use built-in function pa_frame_aligned(). Signed-off-by: Lu Guanqun --- src/pulsecore/sample-util.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/pulsecore/sample-util.c b/src/pulsecore/sample-util.c index 8a13495..16ec4ad 100644 --- a/src/pulsecore/sample-util.c +++ b/src/pulsecore/sample-util.c @@ -734,7 +734,7 @@ void pa_volume_memchunk( pa_assert(c); pa_assert(spec); -pa_assert(c->length % pa_frame_size(spec) == 0); +pa_assert(pa_frame_aligned(c->length, spec)); pa_assert(volume); if (pa_memblock_is_silence(c->memblock)) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH 1/2] thread-posix: remove duplicate code for setting thread name
According to the principle of DRY (don't repeat yourself), remove the code for setting thread name in thread-posix.c. Signed-off-by: Lu Guanqun --- src/pulsecore/thread-posix.c | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pulsecore/thread-posix.c b/src/pulsecore/thread-posix.c index 3f4ae5c..81ae98d 100644 --- a/src/pulsecore/thread-posix.c +++ b/src/pulsecore/thread-posix.c @@ -65,15 +65,19 @@ static void thread_free_cb(void *p) { PA_STATIC_TLS_DECLARE(current_thread, thread_free_cb); +static void pa_thread_set_name_raw(const char *name) { +#ifdef __linux__ +prctl(PR_SET_NAME, name); +#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) +pthread_setname_np(name); +#endif +} + static void* internal_thread_func(void *userdata) { pa_thread *t = userdata; pa_assert(t); -#ifdef __linux__ -prctl(PR_SET_NAME, t->name); -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) -pthread_setname_np(t->name); -#endif +pa_thread_set_name_raw(t->name); t->id = pthread_self(); @@ -175,11 +179,7 @@ void pa_thread_set_name(pa_thread *t, const char *name) { pa_xfree(t->name); t->name = pa_xstrdup(name); -#ifdef __linux__ -prctl(PR_SET_NAME, name); -#elif defined(HAVE_PTHREAD_SETNAME_NP) && defined(OS_IS_DARWIN) -pthread_setname_np(name); -#endif +pa_thread_set_name_raw(name); } const char *pa_thread_get_name(pa_thread *t) { ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
Hi, On Wed, Aug 10, 2011 at 09:47:47PM +0800, Paul Fox wrote: > colin wrote: > > 'Twas brillig, and Paul Fox at 08/08/11 15:21 did gyre and gimble: > ... > > > but this: > > > paplay -s server one.wav > > > paplay -s server two.wav > > > will result in a delay of over 2 seconds between "one" and "two". > ... > > > > This is likely related to the drain. In order to be 100% sure that the > > data is no longer needed (as it may be needed by rewind buffers) we have > > to wait. > > > > There are a few bug reports about this kind of thing in e.g. the simple > > protocol, but I'm not sure we can solve it 100% in all cases. > > thanks. i found this: http://www.pulseaudio.org/ticket/866 > > it certainly sounds like a fix will be a long time coming. it feels > to me that there should be a way for a stream to be started with a > different "contract", i.e., "i will never rewind this stream. please > deliver the data on a best-effort basis. i don't require > acknowledgement of the last byte." i.e., exactly the conditions needed > by most real-world uses of pa_play. > > > The 2s delay is likely related to the amount of audio that is buffered > > by default. > > i've modified the pacat-simple.c example to let me play with the > pa_buffer_attr passed to pa_simple_new, but can't seem to find a > combination that avoids the 2s wait. I did some experiment to set the tsched buffer size down a little bit and for me the wait time becomes smaller. This makes sense since the total buffer becomes smaller and the time to wait it to be drained is smaller. As this parameter is not exported via module-udev-detect, so you have to use this hack method instead: pacmd >> list-modules [find the module index of your alsa card] >> unload-module >> load-module module-alsa-card device_id="0" name="pci-_00_1b.0" card_name="alsa_card.pci-_00_1b.0" namereg_fail=false tsched=yes ignore_dB=no sync_volume=yes card_properties="module-udev-detect.discovered=1" tsched_buffer_size= [note the parameter here may differ from yours, but you can get it from list-modules above, see the arguments part] Change the tsched_buffer_size to some number smaller. How to decide the number? Before you unload this module, invoke list-sinks and check this property: device.buffering.buffer_size. You may need to try half the number again and again to see how it fixes your problem. The cons of this action is you gets poor power consumption, the wakeup gets more and if it's too small, more chances of underrun. Be cautious. It's more like a tuning thing. You can take a try. > > removing the call to pa_simple_drain(), however, and (hack alert!) > substituting usleep(10) seems to do the trick, for me. i do get > a click between played files, though, so i'm not done. > > paul > > > > > Col > > > > -- > > > > Colin Guthrie > > gmane(at)colin.guthr.ie > > http://colin.guthr.ie/ > > =- > paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 62.4 degrees) > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss -- guanqun ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] null pointer check when setting volume
2011/8/10 xing wang : > 2011/8/10 Maarten Bosmans >> >> Looks good. >> Minor comments below. >> > Thanks Marrten!. > >> >> Maarten >> >> 2011/8/10 : >> > From: xingchao >> > >> > some sound app based on pulseaudio get crashed when setting volume, the >> > coredump >> > show it's null pointer in pa_operation_ref(). >> >> Don't you mean pa_operation_unref()? >> > > Oh, sorry for confuse, you're right, it's pa_operation_unref. > >> >> > Signed-off-by: xingchao >> > --- >> > src/utils/pactl.c | 10 -- >> > 1 files changed, 8 insertions(+), 2 deletions(-) >> > >> > diff --git a/src/utils/pactl.c b/src/utils/pactl.c >> > index 2eb0f25..487cd41 100644 >> > --- a/src/utils/pactl.c >> > +++ b/src/utils/pactl.c >> > @@ -1036,6 +1036,7 @@ static void volume_relative_adjust(pa_cvolume *cv) { >> > >> > static void get_sink_volume_callback(pa_context *c, const pa_sink_info >> > *i, int is_last, void *userdata) { >> > pa_cvolume cv; >> > + pa_operation *o; >> > >> > if (is_last < 0) { >> > pa_log(_("Failed to get sink information: %s"), >> > pa_strerror(pa_context_errno(c))); >> > @@ -1050,7 +1051,9 @@ static void get_sink_volume_callback(pa_context *c, >> > const pa_sink_info *i, int i >> > >> > cv = i->volume; >> > volume_relative_adjust(&cv); >> > - pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, >> > &cv, simple_callback, NULL)); >> > + o = pa_context_set_sink_volume_by_name(c, sink_name, &cv, >> > simple_callback, NULL); >> > + if (o) >> > + pa_operation_unref(o); >> > } >> > >> > static void get_source_volume_callback(pa_context *c, const >> > pa_source_info *i, int is_last, void *userdata) { >> > @@ -1370,7 +1373,10 @@ static void context_state_callback(pa_context *c, >> > void *userdata) { >> > } else { >> > pa_cvolume v; >> > pa_cvolume_set(&v, 1, volume); >> > - >> > pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &v, >> > simple_callback, NULL)); >> > + pa_operation *o = >> > pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, >> > NULL); >> >> You should make this two separate lines to avoid mixing declarations >> and code, just like you did in the two hunks above. > > Seems there's some pattern issue when send out the patch with git > send-email. Please find attached patch, it should be okay. > --xingchao No, the patch came through all right. What I meant was that you change pa_cvolume v; pa_cvolume_set(&v, 1, volume); pa_operation *o = pa_context_set_sink_volume_by_name(...); into pa_cvolume v; pa_operation *o; pa_cvolume_set(&v, 1, volume); o = pa_context_set_sink_volume_by_name(...); I find the second approach of separating declaration and code cleaner, but perhaps others disagree. http://pulseaudio.org/wiki/CodingStyle does not say anything specific about this issue, so either way would probably go. Maarten ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] long delay after "paplay -s somehost foo.wav"
colin wrote: > 'Twas brillig, and Paul Fox at 08/08/11 15:21 did gyre and gimble: ... > > but this: > > paplay -s server one.wav > > paplay -s server two.wav > > will result in a delay of over 2 seconds between "one" and "two". ... > > This is likely related to the drain. In order to be 100% sure that the > data is no longer needed (as it may be needed by rewind buffers) we have > to wait. > > There are a few bug reports about this kind of thing in e.g. the simple > protocol, but I'm not sure we can solve it 100% in all cases. thanks. i found this: http://www.pulseaudio.org/ticket/866 it certainly sounds like a fix will be a long time coming. it feels to me that there should be a way for a stream to be started with a different "contract", i.e., "i will never rewind this stream. please deliver the data on a best-effort basis. i don't require acknowledgement of the last byte." i.e., exactly the conditions needed by most real-world uses of pa_play. > The 2s delay is likely related to the amount of audio that is buffered > by default. i've modified the pacat-simple.c example to let me play with the pa_buffer_attr passed to pa_simple_new, but can't seem to find a combination that avoids the 2s wait. removing the call to pa_simple_drain(), however, and (hack alert!) substituting usleep(10) seems to do the trick, for me. i do get a click between played files, though, so i'm not done. paul > > Col > > -- > > Colin Guthrie > gmane(at)colin.guthr.ie > http://colin.guthr.ie/ =- paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 62.4 degrees) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] null pointer check when setting volume
2011/8/10 Maarten Bosmans > > Looks good. > Minor comments below. > Thanks Marrten!. > > Maarten > > 2011/8/10 : > > From: xingchao > > > > some sound app based on pulseaudio get crashed when setting volume, the > > coredump > > show it's null pointer in pa_operation_ref(). > > Don't you mean pa_operation_unref()? > Oh, sorry for confuse, you're right, it's pa_operation_unref. > > > Signed-off-by: xingchao > > --- > > src/utils/pactl.c | 10 -- > > 1 files changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/src/utils/pactl.c b/src/utils/pactl.c > > index 2eb0f25..487cd41 100644 > > --- a/src/utils/pactl.c > > +++ b/src/utils/pactl.c > > @@ -1036,6 +1036,7 @@ static void volume_relative_adjust(pa_cvolume *cv) { > > > > static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, > > int is_last, void *userdata) { > > pa_cvolume cv; > > + pa_operation *o; > > > > if (is_last < 0) { > > pa_log(_("Failed to get sink information: %s"), > > pa_strerror(pa_context_errno(c))); > > @@ -1050,7 +1051,9 @@ static void get_sink_volume_callback(pa_context *c, > > const pa_sink_info *i, int i > > > > cv = i->volume; > > volume_relative_adjust(&cv); > > - pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, > > &cv, simple_callback, NULL)); > > + o = pa_context_set_sink_volume_by_name(c, sink_name, &cv, > > simple_callback, NULL); > > + if (o) > > + pa_operation_unref(o); > > } > > > > static void get_source_volume_callback(pa_context *c, const pa_source_info > > *i, int is_last, void *userdata) { > > @@ -1370,7 +1373,10 @@ static void context_state_callback(pa_context *c, > > void *userdata) { > > } else { > > pa_cvolume v; > > pa_cvolume_set(&v, 1, volume); > > - > > pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &v, > > simple_callback, NULL)); > > + pa_operation *o = > > pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL); > > You should make this two separate lines to avoid mixing declarations > and code, just like you did in the two hunks above. Seems there's some pattern issue when send out the patch with git send-email. Please find attached patch, it should be okay. --xingchao > > > + > > + if (o) > > + pa_operation_unref(o); > > } > > break; > > > > -- > > 1.7.1 > > > > ___ > > pulseaudio-discuss mailing list > > pulseaudio-discuss@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > > > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss From 621e3d760f73144520fe62861409dacd23e838e1 Mon Sep 17 00:00:00 2001 From: xingchao Date: Wed, 10 Aug 2011 21:00:08 -0400 Subject: [PATCH] null pointer check when setting volume some sound app based on pulseaudio get crashed when setting volume, the coredump show it's null pointer in pa_operation_unref(). Signed-off-by: xingchao --- src/utils/pactl.c | 10 -- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils/pactl.c b/src/utils/pactl.c index 2eb0f25..4662d20 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -1036,6 +1036,7 @@ static void volume_relative_adjust(pa_cvolume *cv) { static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, int is_last, void *userdata) { pa_cvolume cv; +pa_operation *o; if (is_last < 0) { pa_log(_("Failed to get sink information: %s"), pa_strerror(pa_context_errno(c))); @@ -1050,7 +1051,9 @@ static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, int i cv = i->volume; volume_relative_adjust(&cv); -pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &cv, simple_callback, NULL)); +o = pa_context_set_sink_volume_by_name(c, sink_name, &cv, simple_callback, NULL); +if (o) + pa_operation_unref(o); } static void get_source_volume_callback(pa_context *c, const pa_source_info *i, int is_last, void *userdata) { @@ -1370,7 +1373,10 @@ static void context_state_callback(pa_context *c, void *userdata) { } else { pa_cvolume v; pa_cvolume_set(&v, 1, volume); -pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL)); + pa_operation *o = pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL); + + if (o) + pa_operation_unref(o); } break; -- 1.7.1 ___
Re: [pulseaudio-discuss] Automatic muting of multiple applications
Hi On Tue, Aug 9, 2011 at 11:18 PM, Johannes H. Jensen wrote: > On Tue, Aug 9, 2011 at 14:32, Maarten Bosmans wrote: > > That could indeed by some handy functionality. > > In pulseaudio there's already a concept of corking a stream. If a > > stream is corked, its audio is muted and the application receives a > > signal so it can pause the playback. If the stream is uncorked, the > > music resumes playing. > > Ah, that's neat! Is there any way to cork a stream from command-line > tools like pacmd? > I guess not, but PA does post an event to the application to CORK/UNCORK the stream, its application responsibility to handle the event and behave accordingly. e.g module-cork-music-on-phone , PA posts and event using pa_sink_input_send_event(j, PA_STREAM_EVENT_REQUEST_CORK, NULL) to the application, application need to register for callback using "pa_stream_set_event_callback" to receive the events from PA. > > > This would indeed be best implemented as a module. You can use > > module-cork-music-on-phone as an example. > > There were also some threads on the mailing list about corking streams > > that you might want to read, such as "dynamic routing through pulse > > audio" a couple of weeks back. > > Great, I will base my module on that :-) > Sure, you will get enough hints if you go-through the module-cork-music-on-phone ,so its best to initially modify the existing module-cork-music-on-phone and base your module on this. > > Thanks! > > - Johannes > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] null pointer check when setting volume
Looks good. Minor comments below. Maarten 2011/8/10 : > From: xingchao > > some sound app based on pulseaudio get crashed when setting volume, the > coredump > show it's null pointer in pa_operation_ref(). Don't you mean pa_operation_unref()? > Signed-off-by: xingchao > --- > src/utils/pactl.c | 10 -- > 1 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/src/utils/pactl.c b/src/utils/pactl.c > index 2eb0f25..487cd41 100644 > --- a/src/utils/pactl.c > +++ b/src/utils/pactl.c > @@ -1036,6 +1036,7 @@ static void volume_relative_adjust(pa_cvolume *cv) { > > static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, > int is_last, void *userdata) { > pa_cvolume cv; > + pa_operation *o; > > if (is_last < 0) { > pa_log(_("Failed to get sink information: %s"), > pa_strerror(pa_context_errno(c))); > @@ -1050,7 +1051,9 @@ static void get_sink_volume_callback(pa_context *c, > const pa_sink_info *i, int i > > cv = i->volume; > volume_relative_adjust(&cv); > - pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &cv, > simple_callback, NULL)); > + o = pa_context_set_sink_volume_by_name(c, sink_name, &cv, > simple_callback, NULL); > + if (o) > + pa_operation_unref(o); > } > > static void get_source_volume_callback(pa_context *c, const pa_source_info > *i, int is_last, void *userdata) { > @@ -1370,7 +1373,10 @@ static void context_state_callback(pa_context *c, void > *userdata) { > } else { > pa_cvolume v; > pa_cvolume_set(&v, 1, volume); > - > pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &v, > simple_callback, NULL)); > + pa_operation *o = > pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL); You should make this two separate lines to avoid mixing declarations and code, just like you did in the two hunks above. > + > + if (o) > + pa_operation_unref(o); > } > break; > > -- > 1.7.1 > > ___ > pulseaudio-discuss mailing list > pulseaudio-discuss@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss > ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH] null pointer check when setting volume
From: xingchao some sound app based on pulseaudio get crashed when setting volume, the coredump show it's null pointer in pa_operation_ref(). Signed-off-by: xingchao --- src/utils/pactl.c | 10 -- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/utils/pactl.c b/src/utils/pactl.c index 2eb0f25..487cd41 100644 --- a/src/utils/pactl.c +++ b/src/utils/pactl.c @@ -1036,6 +1036,7 @@ static void volume_relative_adjust(pa_cvolume *cv) { static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, int is_last, void *userdata) { pa_cvolume cv; + pa_operation *o; if (is_last < 0) { pa_log(_("Failed to get sink information: %s"), pa_strerror(pa_context_errno(c))); @@ -1050,7 +1051,9 @@ static void get_sink_volume_callback(pa_context *c, const pa_sink_info *i, int i cv = i->volume; volume_relative_adjust(&cv); -pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &cv, simple_callback, NULL)); + o = pa_context_set_sink_volume_by_name(c, sink_name, &cv, simple_callback, NULL); + if (o) + pa_operation_unref(o); } static void get_source_volume_callback(pa_context *c, const pa_source_info *i, int is_last, void *userdata) { @@ -1370,7 +1373,10 @@ static void context_state_callback(pa_context *c, void *userdata) { } else { pa_cvolume v; pa_cvolume_set(&v, 1, volume); - pa_operation_unref(pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL)); + pa_operation *o = pa_context_set_sink_volume_by_name(c, sink_name, &v, simple_callback, NULL); + + if (o) + pa_operation_unref(o); } break; -- 1.7.1 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 3/3] Move i18n.[ch] to src/pulsecore
The files client-conf, client-conf-x11 and fork-detect could also be moved from pulse to pulsecore. I didn't do that in this patch, because contrary to i18n.h, these header files are only used in sources from src/pulse. Moving the files to pulsecore would result in all headers in src/pulse (except for internal.h) being used for external api, which I think is a good idea. Should I make a patch for this too? Maarten 2011/8/10 Maarten Bosmans : > The header is used in files troughout the tree and is not included in the > public api, > so it belongs in pulsecore, not in pulse. > --- > src/Makefile.am | 4 +- > src/daemon/caps.c | 3 +- > src/daemon/cmdline.c | 2 +- > src/daemon/daemon-conf.c | 2 +- > src/daemon/dumpmodules.c | 4 +- > src/daemon/ltdl-bind-now.c | 3 +- > src/daemon/main.c | 2 +- > src/modules/alsa/alsa-mixer.c | 2 +- > src/modules/alsa/alsa-sink.c | 2 +- > src/modules/alsa/alsa-source.c | 2 +- > src/modules/alsa/alsa-util.c | 2 +- > src/modules/alsa/module-alsa-card.c | 2 +- > src/modules/bluetooth/module-bluetooth-device.c | 2 +- > src/modules/echo-cancel/module-echo-cancel.c | 2 +- > src/modules/module-always-sink.c | 4 +- > src/modules/module-equalizer-sink.c | 2 +- > src/modules/module-filter-apply.c | 6 +- > src/modules/module-ladspa-sink.c | 2 +- > src/modules/module-null-sink.c | 2 +- > src/modules/module-rygel-media-server.c | 2 +- > src/modules/module-virtual-sink.c | 2 +- > src/modules/module-virtual-source.c | 2 +- > src/modules/reserve-wrap.c | 2 +- > src/pulse/channelmap.c | 2 +- > src/pulse/client-conf-x11.c | 2 +- > src/pulse/client-conf.c | 2 +- > src/pulse/context.c | 2 +- > src/pulse/error.c | 3 +- > src/pulse/format.c | 2 +- > src/pulse/i18n.c | 38 -- > src/pulse/i18n.h | 62 > --- > src/pulse/mainloop-api.c | 2 +- > src/pulse/mainloop-signal.c | 2 +- > src/pulse/mainloop.c | 2 +- > src/pulse/sample.c | 2 +- > src/pulse/thread-mainloop.c | 2 +- > src/pulse/volume.c | 3 +- > src/pulsecore/i18n.c | 38 ++ > src/pulsecore/i18n.h | 61 ++ > src/pulsecore/lock-autospawn.c | 2 +- > src/pulsecore/sink.c | 2 +- > src/tests/resampler-test.c | 2 +- > src/utils/pacat.c | 5 +- > src/utils/pacmd.c | 2 +- > src/utils/pactl.c | 2 +- > src/utils/pasuspender.c | 3 +- > src/utils/pax11publish.c | 2 +- > 47 files changed, 150 insertions(+), 153 deletions(-) > delete mode 100644 src/pulse/i18n.c > delete mode 100644 src/pulse/i18n.h > create mode 100644 src/pulsecore/i18n.c > create mode 100644 src/pulsecore/i18n.h > > diff --git a/src/Makefile.am b/src/Makefile.am > index ebf5ebc..6b775e5 100644 > --- a/src/Makefile.am > +++ b/src/Makefile.am > @@ -523,7 +523,6 @@ lib_LTLIBRARIES = \ > > libpulsecommon_@PA_MAJORMINOR@_la_SOURCES = \ > pulse/client-conf.c pulse/client-conf.h \ > - pulse/i18n.c pulse/i18n.h \ > pulse/fork-detect.c pulse/fork-detect.h \ > pulse/xmalloc.c pulse/xmalloc.h \ > pulse/proplist.c pulse/proplist.h \ > @@ -545,11 +544,12 @@ libpulsecommon_@PA_MAJORMINOR@_la_SOURCES = \ > pulsecore/endianmacros.h \ > pulsecore/flist.c pulsecore/flist.h \ > pulsecore/hashmap.c pulsecore/hashmap.h \ > + pulsecore/i18n.c pulsecore/i18n.h \ > pulsecore/idxset.c pulsecore/idxset.h \ > pulsecore/arpa-inet.c pulsecore/arpa-inet.h \ > pulsecore/iochannel.c pulsecore/iochannel.h \ > pulsecore/ioline.c pulsecore/ioline.h \ > - pulsecore/ipacl.h pulsecore/ipacl.c \ > + pulsecore/ipacl.c pulsecore/ipacl.h \ > pulsecore/llist.h \ > pulsecore/lock-autospawn.c pulsecore/lock-autospawn.h \ >
[pulseaudio-discuss] [PATCH 3/3] Move i18n.[ch] to src/pulsecore
The header is used in files troughout the tree and is not included in the public api, so it belongs in pulsecore, not in pulse. --- src/Makefile.am |4 +- src/daemon/caps.c |3 +- src/daemon/cmdline.c|2 +- src/daemon/daemon-conf.c|2 +- src/daemon/dumpmodules.c|4 +- src/daemon/ltdl-bind-now.c |3 +- src/daemon/main.c |2 +- src/modules/alsa/alsa-mixer.c |2 +- src/modules/alsa/alsa-sink.c|2 +- src/modules/alsa/alsa-source.c |2 +- src/modules/alsa/alsa-util.c|2 +- src/modules/alsa/module-alsa-card.c |2 +- src/modules/bluetooth/module-bluetooth-device.c |2 +- src/modules/echo-cancel/module-echo-cancel.c|2 +- src/modules/module-always-sink.c|4 +- src/modules/module-equalizer-sink.c |2 +- src/modules/module-filter-apply.c |6 +- src/modules/module-ladspa-sink.c|2 +- src/modules/module-null-sink.c |2 +- src/modules/module-rygel-media-server.c |2 +- src/modules/module-virtual-sink.c |2 +- src/modules/module-virtual-source.c |2 +- src/modules/reserve-wrap.c |2 +- src/pulse/channelmap.c |2 +- src/pulse/client-conf-x11.c |2 +- src/pulse/client-conf.c |2 +- src/pulse/context.c |2 +- src/pulse/error.c |3 +- src/pulse/format.c |2 +- src/pulse/i18n.c| 38 -- src/pulse/i18n.h| 62 --- src/pulse/mainloop-api.c|2 +- src/pulse/mainloop-signal.c |2 +- src/pulse/mainloop.c|2 +- src/pulse/sample.c |2 +- src/pulse/thread-mainloop.c |2 +- src/pulse/volume.c |3 +- src/pulsecore/i18n.c| 38 ++ src/pulsecore/i18n.h| 61 ++ src/pulsecore/lock-autospawn.c |2 +- src/pulsecore/sink.c|2 +- src/tests/resampler-test.c |2 +- src/utils/pacat.c |5 +- src/utils/pacmd.c |2 +- src/utils/pactl.c |2 +- src/utils/pasuspender.c |3 +- src/utils/pax11publish.c|2 +- 47 files changed, 150 insertions(+), 153 deletions(-) delete mode 100644 src/pulse/i18n.c delete mode 100644 src/pulse/i18n.h create mode 100644 src/pulsecore/i18n.c create mode 100644 src/pulsecore/i18n.h diff --git a/src/Makefile.am b/src/Makefile.am index ebf5ebc..6b775e5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -523,7 +523,6 @@ lib_LTLIBRARIES = \ libpulsecommon_@PA_MAJORMINOR@_la_SOURCES = \ pulse/client-conf.c pulse/client-conf.h \ - pulse/i18n.c pulse/i18n.h \ pulse/fork-detect.c pulse/fork-detect.h \ pulse/xmalloc.c pulse/xmalloc.h \ pulse/proplist.c pulse/proplist.h \ @@ -545,11 +544,12 @@ libpulsecommon_@PA_MAJORMINOR@_la_SOURCES = \ pulsecore/endianmacros.h \ pulsecore/flist.c pulsecore/flist.h \ pulsecore/hashmap.c pulsecore/hashmap.h \ + pulsecore/i18n.c pulsecore/i18n.h \ pulsecore/idxset.c pulsecore/idxset.h \ pulsecore/arpa-inet.c pulsecore/arpa-inet.h \ pulsecore/iochannel.c pulsecore/iochannel.h \ pulsecore/ioline.c pulsecore/ioline.h \ - pulsecore/ipacl.h pulsecore/ipacl.c \ + pulsecore/ipacl.c pulsecore/ipacl.h \ pulsecore/llist.h \ pulsecore/lock-autospawn.c pulsecore/lock-autospawn.h \ pulsecore/log.c pulsecore/log.h \ diff --git a/src/daemon/caps.c b/src/daemon/caps.c index 74ccb1c..3759388 100644 --- a/src/daemon/caps.c +++ b/src/daemon/caps.c @@ -28,8 +28,7 @@ #include #include -#include - +#include #include #include diff --git a/src/daemon/cmdline.c b/src/daemon/cmdline.c index ec37d46..d42f90d 100644 --- a/src/daemon/cmdline.c +++ b/src/daemon/cmdline.c @@ -28,10 +28,10 @@ #include #include -#include #include #include +#include #include #include diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c index bb92909..1f70b09 10064
[pulseaudio-discuss] [PATCH 2/3] Add some missing format.h includes
--- src/pulse/ext-device-restore.h |1 + src/pulsecore/sink.c |1 + src/pulsecore/sink.h |1 + src/pulsecore/source.c |1 + src/pulsecore/source.h |1 + 5 files changed, 5 insertions(+), 0 deletions(-) diff --git a/src/pulse/ext-device-restore.h b/src/pulse/ext-device-restore.h index eb0619c..9a70d87 100644 --- a/src/pulse/ext-device-restore.h +++ b/src/pulse/ext-device-restore.h @@ -24,6 +24,7 @@ ***/ #include +#include #include /** \file diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 77c665f..714b3d2 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -29,6 +29,7 @@ #include #include +#include #include #include #include diff --git a/src/pulsecore/sink.h b/src/pulsecore/sink.h index 239936b..8aa04b8 100644 --- a/src/pulsecore/sink.h +++ b/src/pulsecore/sink.h @@ -30,6 +30,7 @@ typedef struct pa_sink_volume_change pa_sink_volume_change; #include #include +#include #include #include #include diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 9764a88..31ce39d 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -27,6 +27,7 @@ #include #include +#include #include #include #include diff --git a/src/pulsecore/source.h b/src/pulsecore/source.h index 13d279d..50cec77 100644 --- a/src/pulsecore/source.h +++ b/src/pulsecore/source.h @@ -29,6 +29,7 @@ typedef struct pa_source_volume_change pa_source_volume_change; #include #include +#include #include #include #include -- 1.7.4.1 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH 1/3] Include config.h consistently in source files and not in headers
--- src/pulsecore/cpu-orc.c |4 src/pulsecore/cpu-orc.h |4 src/pulsecore/mime-type.h |4 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/pulsecore/cpu-orc.c b/src/pulsecore/cpu-orc.c index d4a1535..21d49ed 100644 --- a/src/pulsecore/cpu-orc.c +++ b/src/pulsecore/cpu-orc.c @@ -19,6 +19,10 @@ USA. ***/ +#ifdef HAVE_CONFIG_H +#include +#endif + #include "cpu-orc.h" void pa_cpu_init_orc(pa_cpu_info cpu_info) diff --git a/src/pulsecore/cpu-orc.h b/src/pulsecore/cpu-orc.h index 9924d27..d236f7a 100644 --- a/src/pulsecore/cpu-orc.h +++ b/src/pulsecore/cpu-orc.h @@ -22,10 +22,6 @@ USA. ***/ -#ifdef HAVE_CONFIG_H -#include -#endif - #include /* Orc-optimised bits */ diff --git a/src/pulsecore/mime-type.h b/src/pulsecore/mime-type.h index db77379..0a1d892 100644 --- a/src/pulsecore/mime-type.h +++ b/src/pulsecore/mime-type.h @@ -21,10 +21,6 @@ USA. ***/ -#ifdef HAVE_CONFIG_H -#include -#endif - #include #include #include -- 1.7.4.1 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss