pulseaudio/PROTOCOL
2011-08-15 15:19:10 +05:30

285 lines
5.9 KiB
Text

### v8, implemented by >= 0.8
First version supported.
### v9, implemented by >= 0.9.0
Reply for PA_COMMAND_CREATE_PLAYBACK_STREAM,
PA_COMMAND_CREATE_RECORD_STREAM now returns buffer_attrs that are used:
Four new fields in reply of PA_COMMAND_CREATE_PLAYBACK_STREAM:
maxlength
tlength
prebuf
minreq
Two new fields in reply of PA_COMMAND_CREATE_RECORD_STREAM:
maxlength
fragsize
### v10, implemented by >= 0.9.5
New opcodes:
PA_COMMAND_MOVE_SINK_INPUT
PA_COMMAND_MOVE_SOURCE_OUTPUT
SHM data transfer support
### v11, implemented by >= 0.9.7
Reply to to PA_COMMAND_GET_SINK_INPUT_INFO, PA_COMMAND_GET_SINK_INPUT_INFO_LIST gets new field at the end:
mute
New opcodes:
PA_COMMAND_SET_SINK_INPUT_MUTE
PA_COMMAND_SUSPEND_SINK
PA_COMMAND_SUSPEND_SOURCE
### v12, implemented by >= 0.9.8
S32LE, S32BE is now known as sample spec.
Gained six new bool fields for PA_COMMAND_CREATE_PLAYBACK_STREAM, PA_COMMAND_CREATE_RECORD_STREAM request at the end:
no_remap_channels
no_remix_channels
fix_format
fix_rate
fix_channels
no_move
variable_rate
Reply to these opcodes now includes:
sample_spec
channel_map
device_index
device_name
suspended
New opcodes for changing buffer attrs:
PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR
PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR
New opcodes for changing sampling rate:
PA_COMMAND_UPDATE_PLAYBACK_STREAM_SAMPLE_RATE
PA_COMMAND_UPDATE_RECORD_STREAM_SAMPLE_RATE
New opcodes for notifications:
PA_COMMAND_PLAYBACK_STREAM_SUSPENDED
PA_COMMAND_CAPTURE_STREAM_SUSPENDED
PA_COMMAND_PLAYBACK_STREAM_MOVED
PA_COMMAND_CAPTURE_STREAM_MOVED
### v13, implemented by >= 0.9.11
New fields for PA_COMMAND_CREATE_PLAYBACK_STREAM, PA_COMMAND_CREATE_RECORD_STREAM request at the end:
peak_detect (bool)
adjust_latency (bool)
Replace field "name" for PA_COMMAND_CREATE_PLAYBACK_STREAM, PA_COMMAND_CREATE_RECORD_STREAM at the end:
proplist
Replace field "name" for PA_COMMAND_SET_CLIENT_NAME request at the end:
proplist
On response of PA_COMMAND_SET_CLIENT_NAME:
client_index
New proplist field for sink, source, sink input, source output introspection opcodes and at the end:
proplist
New opcodes for proplist modifications
PA_COMMAND_UPDATE_RECORD_STREAM_PROPLIST
PA_COMMAND_UPDATE_PLAYBACK_STREAM_PROPLIST
PA_COMMAND_UPDATE_CLIENT_PROPLIST
PA_COMMAND_REMOVE_RECORD_STREAM_PROPLIST
PA_COMMAND_REMOVE_PLAYBACK_STREAM_PROPLIST
PA_COMMAND_REMOVE_CLIENT_PROPLIST
New field for PA_COMMAND_PLAY_SAMPLE:
proplist
New field for PA_COMMAND_PLAY_SAMPLE response:
idx
New field for PA_COMMAND_CREATE_PLAYBACK_STREAM at the end:
start_muted
Buffer attributes for PA_COMMAND_CREATE_PLAYBACK_STREAM and
PA_COMMAND_CREATE_RECORD_STREAM may now be 0 for default values.
New field for PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR,
PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR at the end:
adjust_latency (bool)
new message:
PA_COMMAND_STARTED
### v14, implemented by >= 0.9.12
new message:
PA_COMMAND_EXTENSION
PA_COMMAND_CREATE_PLAYBACK_STREAM:
bool volume_set at the end
PA_COMMAND_CREATE_RECORD_STREAM, PA_COMMAND_CREATE_PLAYBACK_STREAM:
bool early_requests at the end
New field for PA_COMMAND_SET_PLAYBACK_STREAM_BUFFER_ATTR,
PA_COMMAND_SET_RECORD_STREAM_BUFFER_ATTR at the end:
early_requests (bool)
### v15, implemented by >= 0.9.15
PA_COMMAND_CREATE_PLAYBACK_STREAM
bool muted at the end
PA_COMMAND_CREATE_PLAYBACK_STREAM, PA_COMMAND_CREATE_RECORD_STREAM:
bool dont_inhibit_auto_suspend at the end
PA_COMMAND_GET_MODULE_INFO_LIST
remove bool auto_unload
add proplist at the end
new messages:
PA_COMMAND_GET_CARD_INFO
PA_COMMAND_GET_CARD_INFO_LIST
PA_COMMAND_SET_CARD_PROFILE
PA_COMMAND_CLIENT_EVENT
PA_COMMAND_PLAYBACK_STREAM_EVENT
PA_COMMAND_RECORD_STREAM_EVENT
PA_COMMAND_PLAYBACK_BUFFER_ATTR_CHANGED
PA_COMMAND_RECORD_BUFFER_ATTR_CHANGED
### v16, implemented by >= 0.9.15
new messages:
PA_COMMAND_SET_SINK_PORT
PA_COMMAND_SET_SOURCE_PORT
## v17, implemented by >= 0.9.20
new flag at end of CREATE_PLAYBACK_STREAM:
bool relative_volume
## v18, implemented by >= 0.9.22
new flag at end of CREATE_PLAYBACK_STREAM:
bool passthrough
## v19, implemented by >= 0.9.22
New flag at the end of sink input and source output introspection data:
bool corked
## v20, implemented by >= 1.0
Two new flags at the end of sink input introspection data:
bool has_volume
bool volume_writable
## v21, implemented by >= 1.0
Changes for format negotiation in the extended API.
New fields PA_COMMAND_CREATE_PLAYBACK_STREAM:
uint8_t n_formats
format_info format1
...
format_info formatn
One new field in reply from PA_COMMAND_CREATE_PLAYBACK_STREAM:
format_info format
New fields in reply from PA_COMMAND_GET_SINK_INFO (and thus
PA_COMMAND_GET_SINK_INFO_LIST)
uint8_t n_formats
format_info format1
...
format_info formatn
One new field in reply from PA_COMMAND_GET_SINK_INPUT_INFO (and thus
PA_COMMAND_GET_SINK_INPUT_INFO_LIST)
format_info format
## v22, implemented by >= 1.0
New fields PA_COMMAND_CREATE_RECORD_STREAM:
uint8_t n_formats
format_info format1
...
format_info formatn
One new field in reply from PA_COMMAND_CREATE_RECORD_STREAM:
format_info format
New fields in reply from PA_COMMAND_GET_SOURCE_INFO (and thus
PA_COMMAND_GET_SOURCE_INFO_LIST)
uint8_t n_formats
format_info format1
...
format_info formatn
Five new fields in reply from PA_COMMAND_GET_SOURCE_OUTPUT_INFO (and thus
PA_COMMAND_GET_SOURCE_OUTPUT_INFO_LIST)
format_info format
volume
bool mute
bool has_volume
bool volume_writable
## v23, implemented by >= 1.0
New field in PA_COMMAND_UNDERFLOW:
int64_t index
#### If you just changed the protocol, read this
## module-tunnel depends on the sink/source/sink-input/source-input protocol
## internals, so if you changed these, you might have broken module-tunnel.
## Don't forget to test module-tunnel-{source,sink} when pushing protocol
## changes.