Support de-/encoding of 24 and 32 bit PCM (from and to internal 16 bit).

Originally committed as revision 4548 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Reimar Döffinger
2005-09-02 19:16:48 +00:00
parent 16beae15f3
commit b461b3bc4a
7 changed files with 232 additions and 0 deletions

View File

@@ -643,6 +643,23 @@ static int get_audio_frame_size(AVCodecContext *enc, int size)
/* specific hack for pcm codecs because no frame size is
provided */
switch(enc->codec_id) {
case CODEC_ID_PCM_S32LE:
case CODEC_ID_PCM_S32BE:
case CODEC_ID_PCM_U32LE:
case CODEC_ID_PCM_U32BE:
if (enc->channels == 0)
return -1;
frame_size = size / (4 * enc->channels);
break;
case CODEC_ID_PCM_S24LE:
case CODEC_ID_PCM_S24BE:
case CODEC_ID_PCM_U24LE:
case CODEC_ID_PCM_U24BE:
case CODEC_ID_PCM_S24DAUD:
if (enc->channels == 0)
return -1;
frame_size = size / (3 * enc->channels);
break;
case CODEC_ID_PCM_S16LE:
case CODEC_ID_PCM_S16BE:
case CODEC_ID_PCM_U16LE: