MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

pa_buffer_attr Struct Reference

Playback and record buffer metrics. More...

Data Fields

uint32_t  maxlength
  Maximum length of the buffer.
uint32_t  tlength
  Playback only: target length of the buffer.
uint32_t  prebuf
  Playback only: pre-buffering.
uint32_t  minreq
  Playback only: minimum request.
uint32_t  fragsize
  Recording only: fragment size.

Detailed Description

Playback and record buffer metrics.


Field Documentation

Recording only: fragment size.

The server sends data in blocks of fragsize bytes size. Large values diminish interactivity with other operations on the connection context but decrease control overhead. It is recommended to set this to (uint32_t) -1, which will initialize this to a value that is deemed sensible by the server. However, this value will default to something like 2s, i.e. for applications that have specific latency requirements this value should be set to the maximum latency that the application can deal with. If PA_STREAM_ADJUST_LATENCY is set the overall source latency will be adjusted according to this value. If it is not set the source latency is left unmodified.

Maximum length of the buffer.

Setting this to (uint32_t) -1 will initialize this to the maximum value supported by server, which is recommended.

Playback only: minimum request.

The server does not request less than minreq bytes from the client, instead waits until the buffer is free enough to request more bytes at once. It is recommended to set this to (uint32_t) -1, which will initialize this to a value that is deemed sensible by the server. This should be set to a value that gives PulseAudio enough time to move the data from the per-stream playback buffer into the hardware playback buffer.

Playback only: pre-buffering.

The server does not start with playback before at least prebuf bytes are available in the buffer. It is recommended to set this to (uint32_t) -1, which will initialize this to the same value as tlength, whatever that may be. Initialize to 0 to enable manual start/stop control of the stream. This means that playback will not stop on underrun and playback will not start automatically. Instead pa_stream_corked() needs to be called explicitly. If you set this value to 0 you should also set PA_STREAM_START_CORKED.

Playback only: target length of the buffer.

The server tries to assure that at least tlength bytes are always available in the per-stream server-side playback buffer. It is recommended to set this to (uint32_t) -1, which will initialize this to a value that is deemed sensible by the server. However, this value will default to something like 2s, i.e. for applications that have specific latency requirements this value should be set to the maximum latency that the application can deal with. When PA_STREAM_ADJUST_LATENCY is not set this value will influence only the per-stream playback buffer size. When PA_STREAM_ADJUST_LATENCY is set the overall latency of the sink plus the playback buffer size is configured to this value. Set PA_STREAM_ADJUST_LATENCY if you are interested in adjusting the overall latency. Don't set it if you are interested in configuring the server-side per-stream playback buffer size.


Several copyright owners
GNU Lesser General Public License v2.1
MeeGo 1.2 Harmattan API