pcmdec: return buf_size instead of src-buf.

The values will always be the same, so this change eliminates an unneeded
variable. It also gets rid of the need to reset src when memcpy() is used.
pull/2/head
Justin Ruggles 13 years ago
parent 85579b6381
commit 0093f96d34
  1. 10
      libavcodec/pcm.c

@ -247,16 +247,15 @@ static int pcm_decode_frame(AVCodecContext *avctx,
void *data, int *data_size, void *data, int *data_size,
AVPacket *avpkt) AVPacket *avpkt)
{ {
const uint8_t *buf = avpkt->data; const uint8_t *src = avpkt->data;
int buf_size = avpkt->size; int buf_size = avpkt->size;
PCMDecode *s = avctx->priv_data; PCMDecode *s = avctx->priv_data;
int sample_size, c, n, i; int sample_size, c, n, i;
uint8_t *samples; uint8_t *samples;
const uint8_t *src, *src8, *src2[MAX_CHANNELS]; const uint8_t *src8, *src2[MAX_CHANNELS];
int32_t *dst_int32_t; int32_t *dst_int32_t;
samples = data; samples = data;
src = buf;
sample_size = av_get_bits_per_sample(avctx->codec_id)/8; sample_size = av_get_bits_per_sample(avctx->codec_id)/8;
@ -329,7 +328,6 @@ static int pcm_decode_frame(AVCodecContext *avctx,
AV_WN16A(samples, bytestream_get_le16(&src2[c])); AV_WN16A(samples, bytestream_get_le16(&src2[c]));
samples += 2; samples += 2;
} }
src = src2[avctx->channels-1];
break; break;
case CODEC_ID_PCM_U16LE: case CODEC_ID_PCM_U16LE:
DECODE(16, le16, src, samples, n, 0, 0x8000) DECODE(16, le16, src, samples, n, 0, 0x8000)
@ -375,7 +373,6 @@ static int pcm_decode_frame(AVCodecContext *avctx,
#endif /* HAVE_BIGENDIAN */ #endif /* HAVE_BIGENDIAN */
case CODEC_ID_PCM_U8: case CODEC_ID_PCM_U8:
memcpy(samples, src, n*sample_size); memcpy(samples, src, n*sample_size);
src += n*sample_size;
samples += n * sample_size; samples += n * sample_size;
break; break;
case CODEC_ID_PCM_ZORK: case CODEC_ID_PCM_ZORK:
@ -439,14 +436,13 @@ static int pcm_decode_frame(AVCodecContext *avctx,
((src8[2] & 0xF0) << 8) | (src8[4] << 4) | (src8[3] >> 4); ((src8[2] & 0xF0) << 8) | (src8[4] << 4) | (src8[3] >> 4);
} }
} }
src += n * avctx->channels * 5;
samples = (uint8_t *) dst_int32_t; samples = (uint8_t *) dst_int32_t;
break; break;
default: default:
return -1; return -1;
} }
*data_size = samples - (uint8_t *)data; *data_size = samples - (uint8_t *)data;
return src - buf; return buf_size;
} }
#if CONFIG_ENCODERS #if CONFIG_ENCODERS

Loading…
Cancel
Save