Problem with SND_PCM_MODE_STREAM under 6.1

After installing QNX RTP 6.1 I’m having a problem with some code
which worked fine under 6.0. When using stream mode, snd_pcm_plugin_write
fails and returns -ENOTSUP which isn’t even listed as a possible return
value. The same code modified to use block mode works just fine.

The code in question can be found at:
http://nanocrew.net/vlc/aout_qnx.c

card: Creative Soundblaster SbLive.

Thanks in advance.


Jon

Jon L. Johansen <jon-qnx@nanocrew.net> wrote:

card: Creative Soundblaster SbLive.

I meant Creative Labs SbLive :slight_smile:


Jon

Jon L. Johansen <jon-qnx@nanocrew.net> wrote:

After installing QNX RTP 6.1 I’m having a problem with some code
which worked fine under 6.0. When using stream mode, snd_pcm_plugin_write
fails and returns -ENOTSUP which isn’t even listed as a possible return
value. The same code modified to use block mode works just fine.

When the Audio Drivers were rewritten stream mode was not
resupported. Stream mode was not supported because it was
not implemented on all cards. Also the value of stream mode
was futher reduced when we implemented a block mode that
would accept writes of any number of bytes.

With the above being said we are still willing to implement
a stream mode provided:

  1. a technical case be made for why an application needs
    this mode and block mode can’t be used

  2. a definition of stream mode can be defined that is
    universal regardless of hardware

“Audio Support” <audio_support@qnx.com> wrote in message
news:9lblj5$qu4$1@nntp.qnx.com

Jon L. Johansen <> jon-qnx@nanocrew.net> > wrote:
After installing QNX RTP 6.1 I’m having a problem with some code
which worked fine under 6.0. When using stream mode,
snd_pcm_plugin_write
fails and returns -ENOTSUP which isn’t even listed as a possible return
value. The same code modified to use block mode works just fine.

When the Audio Drivers were rewritten stream mode was not
resupported. Stream mode was not supported because it was
not implemented on all cards. Also the value of stream mode
was futher reduced when we implemented a block mode that
would accept writes of any number of bytes.

With the above being said we are still willing to implement
a stream mode provided:

  1. a technical case be made for why an application needs
    this mode and block mode can’t be used

I’m no audio guru, but ALSA site seems to suggest that stream mode was
invented because block mode has DMA-related latencies which might be
untolerable for some professional-type applications.

  1. a definition of stream mode can be defined that is
    universal regardless of hardware

So you have definition of block mode universal regardless of hardware? I
thought block mode relies on DMA mode support by hardware… Or they all
support DMA?

It is of course up to you to support this feature since you’re ‘not ALSA’,
but it would be nice to have this mentioned in docs. The DDK data structures
surely do make impression that stream mode is still supported.

I also suggest to rename io-audio into io-nalsa (stands for not-ALSA) for
clarity sake =:v]

  • Igor