mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-28 05:40:21 -04:00
The previous AAC pass-through patch (commit: 53807e4a) introduced
a new encoding format type: PA_ENCODING_MPEG2_AAC_IEC61937,
which is mostly used in pa_format_info, but forgot to increment the
protocol version number. The version needs to be incremented, because
clients need some way of checking whether the server supports the new
encoding.
349 lines
7.5 KiB
Text
349 lines
7.5 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
|
|
volume
|
|
bool muted
|
|
bool volume_set
|
|
bool muted_set
|
|
bool relative_volume
|
|
bool passthrough
|
|
|
|
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)
|
|
|
|
volume
|
|
bool mute
|
|
bool has_volume
|
|
bool volume_writable
|
|
format_info format
|
|
|
|
## v23, implemented by >= 1.0
|
|
|
|
New field in PA_COMMAND_UNDERFLOW:
|
|
|
|
int64_t index
|
|
|
|
## v24, implemented by >= 2.0
|
|
|
|
New field in all commands that send/receive port introspection data
|
|
(PA_COMMAND_GET_(SOURCE|SINK)_INFO,
|
|
PA_COMMAND_GET_(SOURCE|SINK)_INFO_LIST):
|
|
|
|
uint32_t available
|
|
|
|
The field is added once for every port.
|
|
|
|
## v25, implemented by >= 2.0
|
|
|
|
When port availability changes, send a subscription event for the
|
|
owning card.
|
|
|
|
## v26, implemented by >= 2.0
|
|
|
|
In reply from PA_COMMAND_GET_CARD_INFO (and thus
|
|
PA_COMMAND_GET_CARD_INFO_LIST), the following is added:
|
|
|
|
uint32_t n_ports
|
|
|
|
...followed by n_ports extended port entries, which look like this:
|
|
|
|
string name
|
|
string description
|
|
uint32_t priority
|
|
uint32_t available
|
|
uint8_t direction
|
|
proplist
|
|
uint32_t n_profiles
|
|
string profile_name_1
|
|
...
|
|
string profile_name_n
|
|
|
|
Profile names must match earlier sent profile names for the same card.
|
|
|
|
## v27, implemented by >= 3.0
|
|
|
|
New opcodes:
|
|
PA_COMMAND_SET_PORT_LATENCY_OFFSET
|
|
|
|
New field in the card commands that send/receive port introspection data
|
|
PA_COMMAND_GET_CARD_INFO(_LIST)):
|
|
|
|
int64_t latency_offset
|
|
|
|
The field is added once for every port.
|
|
|
|
## v28, implemented by >= 4.0
|
|
|
|
New value for encoding format type in format_info
|
|
PA_COMMAND_CREATE_(PLAYBACK|RECORDING)_STREAM and its reply,
|
|
In reply from PA_COMMAND_GET_(SOURCE|SOURCE_OUTPUT|SINK|SINK_INPUT)_INFO[_LIST],
|
|
SUBCOMMAND_SAVE_FORMATS, in reply from SUBCOMMAND_READ_FORMATS[_ALL]
|
|
|
|
(uint8_t ) PA_ENCODING_MPEG2_AAC_IEC61937 := 6
|
|
|
|
#### 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.
|