summaryrefslogtreecommitdiff
path: root/libavcodec/pcm.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-09-28 19:31:05 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2011-10-26 12:01:07 -0400
commit67a3b67c717e4e53b9217ec1d579f2dff5e46717 (patch)
treeb296e656397e9ddddbc757c71122910f97366526 /libavcodec/pcm.c
parent06af335a33a771bad05dc1873c3f9d8e84abfb45 (diff)
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.c22
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");