diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-09-28 19:31:05 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2011-10-26 12:01:07 -0400 |
commit | 67a3b67c717e4e53b9217ec1d579f2dff5e46717 (patch) | |
tree | b296e656397e9ddddbc757c71122910f97366526 /libavcodec/pcm.c | |
parent | 06af335a33a771bad05dc1873c3f9d8e84abfb45 (diff) | |
download | ffmpeg-67a3b67c717e4e53b9217ec1d579f2dff5e46717.tar.gz |
pcm_zork: use AV_SAMPLE_FMT_U8 instead of shifting all samples by 8.
Diffstat (limited to 'libavcodec/pcm.c')
-rw-r--r-- | libavcodec/pcm.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c index e7cf874f44..ec2660cbd3 100644 --- a/libavcodec/pcm.c +++ b/libavcodec/pcm.c @@ -172,10 +172,11 @@ static int pcm_encode_frame(AVCodecContext *avctx, dst += n*sample_size; break; case CODEC_ID_PCM_ZORK: - for(;n>0;n--) { - v= *samples++ >> 8; - if(v<0) v = -v; - else v+= 128; + srcu8 = data; + for (; n > 0; n--) { + v = *srcu8++; + if (v < 128) + v = 128 - v; *dst++ = v; } break; @@ -387,12 +388,11 @@ static int pcm_decode_frame(AVCodecContext *avctx, samples += n * sample_size; break; case CODEC_ID_PCM_ZORK: - for(;n>0;n--) { - int x= *src++; - if(x&128) x-= 128; - else x = -x; - AV_WN16A(samples, x << 8); - samples += 2; + for (; n > 0; n--) { + int v = *src++; + if (v < 128) + v = 128 - v; + *samples++ = v; } break; case CODEC_ID_PCM_ALAW: @@ -518,4 +518,4 @@ PCM_CODEC (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-b PCM_CODEC (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian"); PCM_CODEC (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); PCM_CODEC (CODEC_ID_PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian"); -PCM_CODEC (CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_S16, pcm_zork, "PCM Zork"); +PCM_CODEC (CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork"); |