diff options
Diffstat (limited to 'libaf')
-rw-r--r-- | libaf/af_mp.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libaf/af_mp.c b/libaf/af_mp.c index d5535acb34..50bbc90e2e 100644 --- a/libaf/af_mp.c +++ b/libaf/af_mp.c @@ -18,10 +18,22 @@ int af_format_decode(int ifmt) ofmt = AF_FORMAT_LE|AF_FORMAT_US; break; case(AFMT_U16_BE): ofmt = AF_FORMAT_BE|AF_FORMAT_US; break; + case(AFMT_S24_LE): + ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break; + case(AFMT_S24_BE): + ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break; + case(AFMT_U24_LE): + ofmt = AF_FORMAT_LE|AF_FORMAT_US; break; + case(AFMT_U24_BE): + ofmt = AF_FORMAT_BE|AF_FORMAT_US; break; case(AFMT_S32_LE): ofmt = AF_FORMAT_LE|AF_FORMAT_SI; break; case(AFMT_S32_BE): ofmt = AF_FORMAT_BE|AF_FORMAT_SI; break; + case(AFMT_U32_LE): + ofmt = AF_FORMAT_LE|AF_FORMAT_US; break; + case(AFMT_U32_BE): + ofmt = AF_FORMAT_BE|AF_FORMAT_US; break; case(AFMT_IMA_ADPCM): ofmt = AF_FORMAT_IMA_ADPCM; break; case(AFMT_MU_LAW): @@ -58,6 +70,7 @@ int af_format_encode(void* fmtp) switch(fmt->bps){ case 1: return AFMT_S8; case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_S16_LE : AFMT_S16_BE; + case 3: return (fmt->format&AF_FORMAT_LE) ? AFMT_S24_LE : AFMT_S24_BE; case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_S32_LE : AFMT_S32_BE; } } else { @@ -65,7 +78,8 @@ int af_format_encode(void* fmtp) switch(fmt->bps){ case 1: return AFMT_U8; case 2: return (fmt->format&AF_FORMAT_LE) ? AFMT_U16_LE : AFMT_U16_BE; -// case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_U32_LE : AFMT_U32_BE; + case 3: return (fmt->format&AF_FORMAT_LE) ? AFMT_U24_LE : AFMT_U24_BE; + case 4: return (fmt->format&AF_FORMAT_LE) ? AFMT_U32_LE : AFMT_U32_BE; } } } else { |