[mythtv-users] Squeezesoft prevents audio in .24

Gabe Rubin gaberubin at gmail.com
Wed Nov 17 17:23:55 UTC 2010


On Wed, Nov 17, 2010 at 3:23 AM, Jean-Yves Avenard <jyavenard at gmail.com> wrote:
> On 17 November 2010 15:36, Gabe Rubin <gaberubin at gmail.com> wrote:
>
>> Don't know what to say.  It worked.  I could not play from squeezesoft
>> and myth simultaneously, but the two never seemed to conflict with
>> each other.
>
> Can you try this patch and see if it help having myth working while
> another program is using the audio card?
>
> Index: libs/libmyth/audiooutputalsa.cpp
> ===================================================================
> --- libs/libmyth/audiooutputalsa.cpp    (revision 27227)
> +++ libs/libmyth/audiooutputalsa.cpp    (working copy)
> @@ -23,7 +23,7 @@
>  #define CHANNELS_MAX 8
>
>  #define OPEN_FLAGS (SND_PCM_NO_AUTO_RESAMPLE|SND_PCM_NO_AUTO_FORMAT|    \
> -                    SND_PCM_NO_AUTO_CHANNELS)
> +                    SND_PCM_NO_AUTO_CHANNELS|SND_PCM_NONBLOCK)
>
>  #define FILTER_FLAGS ~(SND_PCM_NO_AUTO_FORMAT)
>
> @@ -313,7 +313,7 @@
>  {
>     snd_pcm_format_t format;
>     uint buffer_time, period_time;
> -    int err;
> +    int err = 0;
>     QString real_device;
>
>     if (pcm_handle != NULL)
> @@ -335,7 +335,7 @@
>
>     QByteArray dev_ba = real_device.toAscii();
>     if ((err = snd_pcm_open(&pcm_handle, dev_ba.constData(),
> -                            SND_PCM_STREAM_PLAYBACK,
> OPEN_FLAGS&FILTER_FLAGS)) < 0)
> +                            SND_PCM_STREAM_PLAYBACK, SND_PCM_NONBLOCK)) < 0)
>     {
>         AERROR(QString("snd_pcm_open(%1)").arg(real_device));
>         if (pcm_handle)
> @@ -464,6 +464,10 @@
>
>         switch (err)
>         {
> +            case -EAGAIN:
> +                snd_pcm_wait(pcm_handle, 10);
> +                break;
> +
>             case -EPIPE:
>                  if (snd_pcm_state(pcm_handle) == SND_PCM_STATE_XRUN)
>                  {
> _______________________________________________


I appreciate the patch; however, I install from packages and am a
little leery of mixing that up by patching and compiling from source.
I can live with my workaround.

If it would really help, I can try to patch and compile, but would not
be able to do that until this weekend or most likely next.


More information about the mythtv-users mailing list