lavf: add a common function for selecting a pcm codec from parameters

This commit is contained in:
Justin Ruggles
2012-11-27 14:52:38 -05:00
parent bfe5454cd2
commit 261e9348ef
4 changed files with 57 additions and 36 deletions

View File

@@ -678,15 +678,12 @@ enum AVCodecID ff_wav_codec_get_id(unsigned int tag, int bps)
id = ff_codec_get_id(ff_codec_wav_tags, tag);
if (id <= 0)
return id;
/* handle specific u8 codec */
if (id == AV_CODEC_ID_PCM_S16LE && bps == 8)
id = AV_CODEC_ID_PCM_U8;
if (id == AV_CODEC_ID_PCM_S16LE && bps == 24)
id = AV_CODEC_ID_PCM_S24LE;
if (id == AV_CODEC_ID_PCM_S16LE && bps == 32)
id = AV_CODEC_ID_PCM_S32LE;
if (id == AV_CODEC_ID_PCM_F32LE && bps == 64)
id = AV_CODEC_ID_PCM_F64LE;
if (id == AV_CODEC_ID_PCM_S16LE)
id = ff_get_pcm_codec_id(bps, 0, 0, ~1);
else if (id == AV_CODEC_ID_PCM_F32LE)
id = ff_get_pcm_codec_id(bps, 1, 0, 0);
if (id == AV_CODEC_ID_ADPCM_IMA_WAV && bps == 8)
id = AV_CODEC_ID_PCM_ZORK;
return id;