Skip to content

Draft: bluez5: add LHDC V3 A2DP vendor codec

anonymix007 requested to merge anonymix007/pipewire:lhdc into master

Codec enumerates just fine, but nothing is being played and the following error message is shown:

W 16:40:12.664192   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:328:debug_params: params Spa:Enum:ParamId:EnumFormat: 1:0 (convert format) no matching params
W 16:40:12.664205   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:335:debug_params: with this filter:
W 16:40:12.664210   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:   Object: size 192, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
W 16:40:12.664213   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
W 16:40:12.664216   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Id 1        (Spa:Enum:MediaType:audio)
W 16:40:12.664219   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
W 16:40:12.664221   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Id 1        (Spa:Enum:MediaSubtype:raw)
W 16:40:12.664224   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:format (65537), flags 00000000
W 16:40:12.664227   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Choice: type Spa:Enum:Choice:Enum, flags 00000000 20 4
W 16:40:12.664230   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:         Id 267      (Spa:Enum:AudioFormat:S32LE)
W 16:40:12.664232   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:rate (65539), flags 00000000
W 16:40:12.664235   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Choice: type Spa:Enum:Choice:None, flags 00000000 24 4
W 16:40:12.664238   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:         Int 48000
W 16:40:12.664240   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:         Int 48000
W 16:40:12.664243   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:channels (65540), flags 00000000
W 16:40:12.664246   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Int 2
W 16:40:12.664249   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:position (65541), flags 00000000
W 16:40:12.664251   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:       Array: child.size 4, child.type Spa:Id
W 16:40:12.664254   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:         Id 3        (Spa:Enum:AudioChannel:FL)
W 16:40:12.664257   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:336:debug_params:         Id 4        (Spa:Enum:AudioChannel:FR)
W 16:40:12.664261   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:353:debug_params: unmatched convert format 0:
W 16:40:12.664264   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:   Object: size 288, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
W 16:40:12.664266   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:     Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
W 16:40:12.664269   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:       Id 1        (Spa:Enum:MediaType:audio)
W 16:40:12.664271   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:     Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
W 16:40:12.664274   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:       Id 1        (Spa:Enum:MediaSubtype:raw)
W 16:40:12.664276   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:format (65537), flags 00000000
W 16:40:12.664279   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:       Choice: type Spa:Enum:Choice:Enum, flags 00000000 116 4
W 16:40:12.664281   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 518      (Spa:Enum:AudioFormat:F32P)
W 16:40:12.664284   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 518      (Spa:Enum:AudioFormat:F32P)
W 16:40:12.664286   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 283      (Spa:Enum:AudioFormat:F32LE)
W 16:40:12.664289   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 284      (Spa:Enum:AudioFormat:F32BE)
W 16:40:12.664291   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 519      (Spa:Enum:AudioFormat:F64P)
W 16:40:12.664294   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 285      (Spa:Enum:AudioFormat:F64LE)
W 16:40:12.664297   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 286      (Spa:Enum:AudioFormat:F64BE)
W 16:40:12.664299   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 516      (Spa:Enum:AudioFormat:S32P)
W 16:40:12.664302   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 267      (Spa:Enum:AudioFormat:S32LE)
W 16:40:12.664305   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 268      (Spa:Enum:AudioFormat:S32BE)
W 16:40:12.664308   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 515      (Spa:Enum:AudioFormat:S24_32P)
W 16:40:12.664310   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 263      (Spa:Enum:AudioFormat:S24_32LE)
W 16:40:12.664313   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 264      (Spa:Enum:AudioFormat:S24_32BE)
W 16:40:12.664317   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 517      (Spa:Enum:AudioFormat:S24P)
W 16:40:12.664320   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 271      (Spa:Enum:AudioFormat:S24LE)
W 16:40:12.664322   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 272      (Spa:Enum:AudioFormat:S24BE)
W 16:40:12.664326   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 514      (Spa:Enum:AudioFormat:S16P)
W 16:40:12.664329   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 259      (Spa:Enum:AudioFormat:S16LE)
W 16:40:12.664331   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 260      (Spa:Enum:AudioFormat:S16BE)
W 16:40:12.664334   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 520      (Spa:Enum:AudioFormat:S8P)
W 16:40:12.664337   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 257      (Spa:Enum:AudioFormat:S8)
W 16:40:12.664340   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 513      (Spa:Enum:AudioFormat:U8P)
W 16:40:12.664342   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 258      (Spa:Enum:AudioFormat:U8)
W 16:40:12.664345   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 287      (Spa:Enum:AudioFormat:ULAW)
W 16:40:12.664348   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Id 288      (Spa:Enum:AudioFormat:ALAW)
W 16:40:12.664350   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:rate (65539), flags 00000000
W 16:40:12.664353   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:       Choice: type Spa:Enum:Choice:Range, flags 00000000 28 4
W 16:40:12.664355   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 48000
W 16:40:12.664358   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 1
W 16:40:12.664360   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 2147483647
W 16:40:12.664363   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:     Prop: key Spa:Pod:Object:Param:Format:Audio:channels (65540), flags 00000000
W 16:40:12.664365   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:       Choice: type Spa:Enum:Choice:Range, flags 00000000 28 4
W 16:40:12.664368   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 2
W 16:40:12.664370   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 1
W 16:40:12.664373   spa.audioadapter ../spa/plugins/audioconvert/audioadapter.c:354:debug_params:         Int 64
W 16:40:12.664392            pw.node ../src/pipewire/impl-node.c:409:node_update_state: (bluez_output.28_6F_40_3A_D4_52.1-92) suspended -> error (Start error: Operation not supported)

Codec libraries and headers can be downloaded here. The build process is almost the same as in INSTALL.md with the addition of

LHDC_INCLUDE_DIR=/path/to/headers
export C_INCLUDE_PATH=$LHDC_INCLUDE_DIR/liblhdc/include:$LHDC_INCLUDE_DIR/liblhdc/inc 

before setup.

UPD Most of my changes are being recognized as spam. This is VERY annoying.

Edited by anonymix007

Merge request reports