audioconvert: add f64 support

Fixes #1990
This commit is contained in:
Wim Taymans 2022-01-10 13:14:23 +01:00
parent 9f5caa6358
commit 7b1c5cd6dd
4 changed files with 28 additions and 3 deletions

View file

@ -400,11 +400,14 @@ static int port_enum_formats(void *object,
info.info.raw.format == SPA_AUDIO_FORMAT_F32P ||
info.info.raw.format == SPA_AUDIO_FORMAT_F32) {
spa_pod_builder_add(builder,
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(26,
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(29,
info.info.raw.format,
SPA_AUDIO_FORMAT_F32P,
SPA_AUDIO_FORMAT_F32,
SPA_AUDIO_FORMAT_F32_OE,
SPA_AUDIO_FORMAT_F64P,
SPA_AUDIO_FORMAT_F64,
SPA_AUDIO_FORMAT_F64_OE,
SPA_AUDIO_FORMAT_S32P,
SPA_AUDIO_FORMAT_S32,
SPA_AUDIO_FORMAT_S32_OE,
@ -619,6 +622,10 @@ static int calc_width(struct spa_audio_info *info)
case SPA_AUDIO_FORMAT_S24_OE:
case SPA_AUDIO_FORMAT_U24:
return 3;
case SPA_AUDIO_FORMAT_F64P:
case SPA_AUDIO_FORMAT_F64:
case SPA_AUDIO_FORMAT_F64_OE:
return 8;
default:
return 4;
}

View file

@ -775,11 +775,14 @@ static int port_enum_formats(void *object,
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_audio),
SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(22,
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(25,
SPA_AUDIO_FORMAT_F32P,
SPA_AUDIO_FORMAT_F32P,
SPA_AUDIO_FORMAT_F32,
SPA_AUDIO_FORMAT_F32_OE,
SPA_AUDIO_FORMAT_F64P,
SPA_AUDIO_FORMAT_F64,
SPA_AUDIO_FORMAT_F64_OE,
SPA_AUDIO_FORMAT_S32P,
SPA_AUDIO_FORMAT_S32,
SPA_AUDIO_FORMAT_S32_OE,
@ -1008,6 +1011,10 @@ static int calc_width(struct spa_audio_info *info)
case SPA_AUDIO_FORMAT_S24:
case SPA_AUDIO_FORMAT_S24_OE:
return 3;
case SPA_AUDIO_FORMAT_F64P:
case SPA_AUDIO_FORMAT_F64:
case SPA_AUDIO_FORMAT_F64_OE:
return 8;
default:
return 4;
}

View file

@ -456,11 +456,14 @@ static int port_enum_formats(void *object,
SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_audio),
SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(22,
SPA_FORMAT_AUDIO_format, SPA_POD_CHOICE_ENUM_Id(25,
SPA_AUDIO_FORMAT_F32P,
SPA_AUDIO_FORMAT_F32P,
SPA_AUDIO_FORMAT_F32,
SPA_AUDIO_FORMAT_F32_OE,
SPA_AUDIO_FORMAT_F64P,
SPA_AUDIO_FORMAT_F64,
SPA_AUDIO_FORMAT_F64_OE,
SPA_AUDIO_FORMAT_S32P,
SPA_AUDIO_FORMAT_S32,
SPA_AUDIO_FORMAT_S32_OE,
@ -690,6 +693,10 @@ static int calc_width(struct spa_audio_info *info)
case SPA_AUDIO_FORMAT_S24:
case SPA_AUDIO_FORMAT_S24_OE:
return 3;
case SPA_AUDIO_FORMAT_F64P:
case SPA_AUDIO_FORMAT_F64:
case SPA_AUDIO_FORMAT_F64_OE:
return 8;
default:
return 4;
}

View file

@ -520,6 +520,10 @@ static int calc_width(struct spa_audio_info *info)
case SPA_AUDIO_FORMAT_S24_OE:
case SPA_AUDIO_FORMAT_U24:
return 3;
case SPA_AUDIO_FORMAT_F64P:
case SPA_AUDIO_FORMAT_F64:
case SPA_AUDIO_FORMAT_F64_OE:
return 8;
default:
return 4;
}