mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
pw-cat: Add support for AC3, EAC3, TrueHD, DTS, MPEG-H
This commit is contained in:
parent
5db9bca75c
commit
7341cc401b
1 changed files with 36 additions and 0 deletions
|
|
@ -412,6 +412,42 @@ static int av_codec_params_to_audio_info(struct data *data, AVCodecParameters *c
|
||||||
info->info.amr.channels = data->channels;
|
info->info.amr.channels = data->channels;
|
||||||
info->info.amr.band_mode = SPA_AUDIO_AMR_BAND_MODE_WB;
|
info->info.amr.band_mode = SPA_AUDIO_AMR_BAND_MODE_WB;
|
||||||
break;
|
break;
|
||||||
|
case AV_CODEC_ID_AC3:
|
||||||
|
info->media_subtype = SPA_MEDIA_SUBTYPE_ac3;
|
||||||
|
info->info.ac3.rate = data->rate;
|
||||||
|
info->info.ac3.channels = data->channels;
|
||||||
|
break;
|
||||||
|
case AV_CODEC_ID_EAC3:
|
||||||
|
info->media_subtype = SPA_MEDIA_SUBTYPE_eac3;
|
||||||
|
info->info.eac3.rate = data->rate;
|
||||||
|
info->info.eac3.channels = data->channels;
|
||||||
|
break;
|
||||||
|
case AV_CODEC_ID_TRUEHD:
|
||||||
|
info->media_subtype = SPA_MEDIA_SUBTYPE_truehd;
|
||||||
|
info->info.truehd.rate = data->rate;
|
||||||
|
info->info.truehd.channels = data->channels;
|
||||||
|
break;
|
||||||
|
case AV_CODEC_ID_DTS:
|
||||||
|
info->media_subtype = SPA_MEDIA_SUBTYPE_dts;
|
||||||
|
info->info.dts.rate = data->rate;
|
||||||
|
info->info.dts.channels = data->channels;
|
||||||
|
switch (codec_params->profile) {
|
||||||
|
case FF_PROFILE_DTS_HD_MA:
|
||||||
|
info->info.dts.ext_type = SPA_AUDIO_DTS_EXT_HD_MA;
|
||||||
|
break;
|
||||||
|
case FF_PROFILE_DTS_HD_HRA:
|
||||||
|
info->info.dts.ext_type = SPA_AUDIO_DTS_EXT_HD_HRA;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
info->info.dts.ext_type = SPA_AUDIO_DTS_EXT_NONE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AV_CODEC_ID_MPEGH_3D_AUDIO:
|
||||||
|
info->media_subtype = SPA_MEDIA_SUBTYPE_mpegh;
|
||||||
|
info->info.mpegh.rate = data->rate;
|
||||||
|
info->info.mpegh.channels = data->channels;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unsupported encoded media subtype\n");
|
fprintf(stderr, "Unsupported encoded media subtype\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue