## v24, implemented by >= 2.0
New field in all commands that send/receive port introspection data
-(PA_COMMAND_GET_(SOURCE|SINK)_OUTPUT_INFO,
-PA_COMMAND_GET_(SOURCE|SINK)_OUTPUT_INFO_LIST):
+(PA_COMMAND_GET_(SOURCE|SINK)_INFO,
+PA_COMMAND_GET_(SOURCE|SINK)_INFO_LIST):
uint32_t available
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
+
+## v29, implemented by >= 5.0
+#
+New field in all commands that send/receive profile introspection data
+(PA_COMMAND_GET_CARD_INFO)
+
+ uint32 available
+
+The field is added once for every profile.
+
#### 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.