Commit 173715d2 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge remote-tracking branch 'qatar/master'

* qatar/master: (35 commits)
  libopencore-amr: check output buffer size before decoding
  libopencore-amr: remove unneeded buf_size==0 check.
  libopencore-amr: remove unneeded frame_count field.
  aac_latm: remove unneeded check for zero-size packet.
  pcmdec: fix output buffer size check by calculating the actual output size prior to decoding.
  pcmdec: move codec-specific variable declarations to the corresponding codec blocks.
  pcmdec: return buf_size instead of src-buf.
  avcodec: remove the Zork PCM encoder.
  pcm_zork: use AV_SAMPLE_FMT_U8 instead of shifting all samples by 8.
  pcmenc: remove unneeded sample_fmt check.
  pcmdec: move number of channels check to pcm_decode_init()
  pcmdec: remove unnecessary check for sample_fmt change
  pcmdec: move DVD PCM bits_per_coded_sample check near to the code that sets the sample size.
  pcmdec: do not needlessly set *data_size to 0
  alacdec: remove unneeded NULL or zero-size packet checks.
  alacdec: simplify buffer allocation by using FF_ALLOC_OR_GOTO()
  alacdec: ask for a sample for unsupported sample depths.
  alacdec: cosmetics: use 'ch' instead of 'chan' to iterate channels
  alacdec: move some declarations to the top of the function
  alacdec: always use get_sbits_long() for uncompressed samples
  ...

Conflicts:
	libavcodec/pcm.c
	tests/ref/acodec/pcm
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 1c5670db 4a6a29a7
...@@ -683,7 +683,7 @@ following image formats are supported: ...@@ -683,7 +683,7 @@ following image formats are supported:
@item PCM unsigned 24-bit little-endian @tab X @tab X @item PCM unsigned 24-bit little-endian @tab X @tab X
@item PCM unsigned 32-bit big-endian @tab X @tab X @item PCM unsigned 32-bit big-endian @tab X @tab X
@item PCM unsigned 32-bit little-endian @tab X @tab X @item PCM unsigned 32-bit little-endian @tab X @tab X
@item PCM Zork @tab X @tab X @item PCM Zork @tab @tab X
@item QCELP / PureVoice @tab @tab X @item QCELP / PureVoice @tab @tab X
@item QDesign Music Codec 2 @tab @tab X @item QDesign Music Codec 2 @tab @tab X
@tab There are still some distortions. @tab There are still some distortions.
......
...@@ -508,7 +508,6 @@ OBJS-$(CONFIG_PCM_U32BE_ENCODER) += pcm.o ...@@ -508,7 +508,6 @@ OBJS-$(CONFIG_PCM_U32BE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_U32LE_DECODER) += pcm.o OBJS-$(CONFIG_PCM_U32LE_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_U32LE_ENCODER) += pcm.o OBJS-$(CONFIG_PCM_U32LE_ENCODER) += pcm.o
OBJS-$(CONFIG_PCM_ZORK_DECODER) += pcm.o OBJS-$(CONFIG_PCM_ZORK_DECODER) += pcm.o
OBJS-$(CONFIG_PCM_ZORK_ENCODER) += pcm.o
OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o
OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o
......
...@@ -2501,9 +2501,6 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size, ...@@ -2501,9 +2501,6 @@ static int latm_decode_frame(AVCodecContext *avctx, void *out, int *out_size,
int muxlength, err; int muxlength, err;
GetBitContext gb; GetBitContext gb;
if (avpkt->size == 0)
return 0;
init_get_bits(&gb, avpkt->data, avpkt->size * 8); init_get_bits(&gb, avpkt->data, avpkt->size * 8);
// check for LOAS sync word // check for LOAS sync word
......
This diff is collapsed.
...@@ -329,7 +329,7 @@ void avcodec_register_all(void) ...@@ -329,7 +329,7 @@ void avcodec_register_all(void)
REGISTER_ENCDEC (PCM_U24LE, pcm_u24le); REGISTER_ENCDEC (PCM_U24LE, pcm_u24le);
REGISTER_ENCDEC (PCM_U32BE, pcm_u32be); REGISTER_ENCDEC (PCM_U32BE, pcm_u32be);
REGISTER_ENCDEC (PCM_U32LE, pcm_u32le); REGISTER_ENCDEC (PCM_U32LE, pcm_u32le);
REGISTER_ENCDEC (PCM_ZORK , pcm_zork); REGISTER_DECODER (PCM_ZORK , pcm_zork);
/* DPCM codecs */ /* DPCM codecs */
REGISTER_DECODER (INTERPLAY_DPCM, interplay_dpcm); REGISTER_DECODER (INTERPLAY_DPCM, interplay_dpcm);
......
...@@ -79,7 +79,6 @@ static int get_bitrate_mode(int bitrate, void *log_ctx) ...@@ -79,7 +79,6 @@ static int get_bitrate_mode(int bitrate, void *log_ctx)
typedef struct AMRContext { typedef struct AMRContext {
AVClass *av_class; AVClass *av_class;
int frame_count;
void *dec_state; void *dec_state;
void *enc_state; void *enc_state;
int enc_bitrate; int enc_bitrate;
...@@ -100,7 +99,6 @@ static av_cold int amr_nb_decode_init(AVCodecContext *avctx) ...@@ -100,7 +99,6 @@ static av_cold int amr_nb_decode_init(AVCodecContext *avctx)
{ {
AMRContext *s = avctx->priv_data; AMRContext *s = avctx->priv_data;
s->frame_count = 0;
s->dec_state = Decoder_Interface_init(); s->dec_state = Decoder_Interface_init();
if (!s->dec_state) { if (!s->dec_state) {
av_log(avctx, AV_LOG_ERROR, "Decoder_Interface_init error\n"); av_log(avctx, AV_LOG_ERROR, "Decoder_Interface_init error\n");
...@@ -133,10 +131,16 @@ static int amr_nb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -133,10 +131,16 @@ static int amr_nb_decode_frame(AVCodecContext *avctx, void *data,
AMRContext *s = avctx->priv_data; AMRContext *s = avctx->priv_data;
static const uint8_t block_size[16] = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0 }; static const uint8_t block_size[16] = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0 };
enum Mode dec_mode; enum Mode dec_mode;
int packet_size; int packet_size, out_size;
av_dlog(avctx, "amr_decode_frame buf=%p buf_size=%d frame_count=%d!!\n", av_dlog(avctx, "amr_decode_frame buf=%p buf_size=%d frame_count=%d!!\n",
buf, buf_size, s->frame_count); buf, buf_size, avctx->frame_number);
out_size = 160 * av_get_bytes_per_sample(avctx->sample_fmt);
if (*data_size < out_size) {
av_log(avctx, AV_LOG_ERROR, "output buffer is too small\n");
return AVERROR(EINVAL);
}
dec_mode = (buf[0] >> 3) & 0x000F; dec_mode = (buf[0] >> 3) & 0x000F;
packet_size = block_size[dec_mode] + 1; packet_size = block_size[dec_mode] + 1;
...@@ -147,12 +151,11 @@ static int amr_nb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -147,12 +151,11 @@ static int amr_nb_decode_frame(AVCodecContext *avctx, void *data,
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
} }
s->frame_count++;
av_dlog(avctx, "packet_size=%d buf= 0x%X %X %X %X\n", av_dlog(avctx, "packet_size=%d buf= 0x%X %X %X %X\n",
packet_size, buf[0], buf[1], buf[2], buf[3]); packet_size, buf[0], buf[1], buf[2], buf[3]);
/* call decoder */ /* call decoder */
Decoder_Interface_Decode(s->dec_state, buf, data, 0); Decoder_Interface_Decode(s->dec_state, buf, data, 0);
*data_size = 160 * 2; *data_size = out_size;
return packet_size; return packet_size;
} }
...@@ -172,8 +175,6 @@ static av_cold int amr_nb_encode_init(AVCodecContext *avctx) ...@@ -172,8 +175,6 @@ static av_cold int amr_nb_encode_init(AVCodecContext *avctx)
{ {
AMRContext *s = avctx->priv_data; AMRContext *s = avctx->priv_data;
s->frame_count = 0;
if (avctx->sample_rate != 8000) { if (avctx->sample_rate != 8000) {
av_log(avctx, AV_LOG_ERROR, "Only 8000Hz sample rate supported\n"); av_log(avctx, AV_LOG_ERROR, "Only 8000Hz sample rate supported\n");
return AVERROR(ENOSYS); return AVERROR(ENOSYS);
...@@ -276,12 +277,14 @@ static int amr_wb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -276,12 +277,14 @@ static int amr_wb_decode_frame(AVCodecContext *avctx, void *data,
int buf_size = avpkt->size; int buf_size = avpkt->size;
AMRWBContext *s = avctx->priv_data; AMRWBContext *s = avctx->priv_data;
int mode; int mode;
int packet_size; int packet_size, out_size;
static const uint8_t block_size[16] = {18, 24, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1}; static const uint8_t block_size[16] = {18, 24, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};
if (!buf_size) out_size = 320 * av_get_bytes_per_sample(avctx->sample_fmt);
/* nothing to do */ if (*data_size < out_size) {
return 0; av_log(avctx, AV_LOG_ERROR, "output buffer is too small\n");
return AVERROR(EINVAL);
}
mode = (buf[0] >> 3) & 0x000F; mode = (buf[0] >> 3) & 0x000F;
packet_size = block_size[mode]; packet_size = block_size[mode];
...@@ -293,7 +296,7 @@ static int amr_wb_decode_frame(AVCodecContext *avctx, void *data, ...@@ -293,7 +296,7 @@ static int amr_wb_decode_frame(AVCodecContext *avctx, void *data,
} }
D_IF_decode(s->state, buf, data, _good_frame); D_IF_decode(s->state, buf, data, _good_frame);
*data_size = 320 * 2; *data_size = out_size;
return packet_size; return packet_size;
} }
......
...@@ -95,11 +95,6 @@ static int pcm_encode_frame(AVCodecContext *avctx, ...@@ -95,11 +95,6 @@ static int pcm_encode_frame(AVCodecContext *avctx,
samples = data; samples = data;
dst = frame; dst = frame;
if (avctx->sample_fmt!=avctx->codec->sample_fmts[0]) {
av_log(avctx, AV_LOG_ERROR, "invalid sample_fmt\n");
return -1;
}
switch(avctx->codec->id) { switch(avctx->codec->id) {
case CODEC_ID_PCM_U32LE: case CODEC_ID_PCM_U32LE:
ENCODE(uint32_t, le32, samples, dst, n, 0, 0x80000000) ENCODE(uint32_t, le32, samples, dst, n, 0, 0x80000000)
...@@ -176,14 +171,6 @@ static int pcm_encode_frame(AVCodecContext *avctx, ...@@ -176,14 +171,6 @@ static int pcm_encode_frame(AVCodecContext *avctx,
memcpy(dst, samples, n*sample_size); memcpy(dst, samples, n*sample_size);
dst += n*sample_size; dst += n*sample_size;
break; break;
case CODEC_ID_PCM_ZORK:
for(;n>0;n--) {
v= *samples++ >> 8;
if(v<0) v = -v;
else v+= 128;
*dst++ = v;
}
break;
case CODEC_ID_PCM_ALAW: case CODEC_ID_PCM_ALAW:
for(;n>0;n--) { for(;n>0;n--) {
v = *samples++; v = *samples++;
...@@ -213,6 +200,11 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx) ...@@ -213,6 +200,11 @@ static av_cold int pcm_decode_init(AVCodecContext * avctx)
PCMDecode *s = avctx->priv_data; PCMDecode *s = avctx->priv_data;
int i; int i;
if (avctx->channels <= 0 || avctx->channels > MAX_CHANNELS) {
av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n");
return AVERROR(EINVAL);
}
switch(avctx->codec->id) { switch(avctx->codec->id) {
case CODEC_ID_PCM_ALAW: case CODEC_ID_PCM_ALAW:
for(i=0;i<256;i++) for(i=0;i<256;i++)
...@@ -255,34 +247,29 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -255,34 +247,29 @@ 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, out_size;
uint8_t *samples; uint8_t *samples;
const uint8_t *src, *src8, *src2[MAX_CHANNELS];
int32_t *dst_int32_t; int32_t *dst_int32_t;
samples = data; samples = data;
src = buf;
if (avctx->sample_fmt!=avctx->codec->sample_fmts[0]) {
av_log(avctx, AV_LOG_ERROR, "invalid sample_fmt\n");
return -1;
}
if(avctx->channels <= 0 || avctx->channels > MAX_CHANNELS){
av_log(avctx, AV_LOG_ERROR, "PCM channels out of bounds\n");
return -1;
}
sample_size = av_get_bits_per_sample(avctx->codec_id)/8; sample_size = av_get_bits_per_sample(avctx->codec_id)/8;
/* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */ /* av_get_bits_per_sample returns 0 for CODEC_ID_PCM_DVD */
if (CODEC_ID_PCM_DVD == avctx->codec_id) if (CODEC_ID_PCM_DVD == avctx->codec_id) {
if (avctx->bits_per_coded_sample != 20 &&
avctx->bits_per_coded_sample != 24) {
av_log(avctx, AV_LOG_ERROR,
"PCM DVD unsupported sample depth %i\n",
avctx->bits_per_coded_sample);
return AVERROR(EINVAL);
}
/* 2 samples are interleaved per block in PCM_DVD */ /* 2 samples are interleaved per block in PCM_DVD */
sample_size = avctx->bits_per_coded_sample * 2 / 8; sample_size = avctx->bits_per_coded_sample * 2 / 8;
else if (avctx->codec_id == CODEC_ID_PCM_LXF) } else if (avctx->codec_id == CODEC_ID_PCM_LXF)
/* we process 40-bit blocks per channel for LXF */ /* we process 40-bit blocks per channel for LXF */
sample_size = 5; sample_size = 5;
...@@ -301,11 +288,17 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -301,11 +288,17 @@ static int pcm_decode_frame(AVCodecContext *avctx,
buf_size -= buf_size % n; buf_size -= buf_size % n;
} }
buf_size= FFMIN(buf_size, *data_size/2);
*data_size=0;
n = buf_size/sample_size; n = buf_size/sample_size;
out_size = n * av_get_bytes_per_sample(avctx->sample_fmt);
if (avctx->codec_id == CODEC_ID_PCM_DVD ||
avctx->codec_id == CODEC_ID_PCM_LXF)
out_size *= 2;
if (*data_size < out_size) {
av_log(avctx, AV_LOG_ERROR, "output buffer too small\n");
return AVERROR(EINVAL);
}
switch(avctx->codec->id) { switch(avctx->codec->id) {
case CODEC_ID_PCM_U32LE: case CODEC_ID_PCM_U32LE:
DECODE(32, le32, src, samples, n, 0, 0x80000000) DECODE(32, le32, src, samples, n, 0, 0x80000000)
...@@ -335,6 +328,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -335,6 +328,8 @@ static int pcm_decode_frame(AVCodecContext *avctx,
} }
break; break;
case CODEC_ID_PCM_S16LE_PLANAR: case CODEC_ID_PCM_S16LE_PLANAR:
{
const uint8_t *src2[MAX_CHANNELS];
n /= avctx->channels; n /= avctx->channels;
for(c=0;c<avctx->channels;c++) for(c=0;c<avctx->channels;c++)
src2[c] = &src[c*n*2]; src2[c] = &src[c*n*2];
...@@ -343,8 +338,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -343,8 +338,8 @@ 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)
break; break;
...@@ -389,16 +384,14 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -389,16 +384,14 @@ 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:
for(;n>0;n--) { for (; n > 0; n--) {
int x= *src++; int v = *src++;
if(x&128) x-= 128; if (v < 128)
else x = -x; v = 128 - v;
AV_WN16A(samples, x << 8); *samples++ = v;
samples += 2;
} }
break; break;
case CODEC_ID_PCM_ALAW: case CODEC_ID_PCM_ALAW:
...@@ -409,6 +402,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -409,6 +402,8 @@ static int pcm_decode_frame(AVCodecContext *avctx,
} }
break; break;
case CODEC_ID_PCM_DVD: case CODEC_ID_PCM_DVD:
{
const uint8_t *src8;
dst_int32_t = data; dst_int32_t = data;
n /= avctx->channels; n /= avctx->channels;
switch (avctx->bits_per_coded_sample) { switch (avctx->bits_per_coded_sample) {
...@@ -434,15 +429,14 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -434,15 +429,14 @@ static int pcm_decode_frame(AVCodecContext *avctx,
src = src8; src = src8;
} }
break; break;
default:
av_log(avctx, AV_LOG_ERROR,
"PCM DVD unsupported sample depth %i\n",
avctx->bits_per_coded_sample);
return -1;
} }
samples = (uint8_t *) dst_int32_t; samples = (uint8_t *) dst_int32_t;
break; break;
}
case CODEC_ID_PCM_LXF: case CODEC_ID_PCM_LXF:
{
int i;
const uint8_t *src8;
dst_int32_t = data; dst_int32_t = data;
n /= avctx->channels; n /= avctx->channels;
//unpack and de-planerize //unpack and de-planerize
...@@ -459,14 +453,14 @@ static int pcm_decode_frame(AVCodecContext *avctx, ...@@ -459,14 +453,14 @@ 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 = out_size;
return src - buf; return buf_size;
} }
#if CONFIG_ENCODERS #if CONFIG_ENCODERS
...@@ -529,4 +523,4 @@ PCM_CODEC (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-b ...@@ -529,4 +523,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_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_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_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_DECODER(CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork");
...@@ -686,6 +686,7 @@ static void frame_thread_free(AVCodecContext *avctx, int thread_count) ...@@ -686,6 +686,7 @@ static void frame_thread_free(AVCodecContext *avctx, int thread_count)
av_freep(&fctx->threads); av_freep(&fctx->threads);
pthread_mutex_destroy(&fctx->buffer_mutex); pthread_mutex_destroy(&fctx->buffer_mutex);
av_freep(&avctx->thread_opaque); av_freep(&avctx->thread_opaque);
avctx->has_b_frames -= avctx->thread_count - 1;
} }
static int frame_thread_init(AVCodecContext *avctx) static int frame_thread_init(AVCodecContext *avctx)
......
...@@ -393,6 +393,5 @@ do_audio_enc_dec au flt pcm_f32be ...@@ -393,6 +393,5 @@ do_audio_enc_dec au flt pcm_f32be
do_audio_enc_dec wav flt pcm_f32le do_audio_enc_dec wav flt pcm_f32le
do_audio_enc_dec au dbl pcm_f64be do_audio_enc_dec au dbl pcm_f64be
do_audio_enc_dec wav dbl pcm_f64le do_audio_enc_dec wav dbl pcm_f64le
do_audio_enc_dec wav s16 pcm_zork
do_audio_enc_dec 302 s16 pcm_s24daud "-ac 6 -ar 96000" do_audio_enc_dec 302 s16 pcm_s24daud "-ac 6 -ar 96000"
fi fi
...@@ -62,10 +62,6 @@ ba17c6d1a270e1333e981f239bf7eb45 *./tests/data/acodec/pcm_f64le.wav ...@@ -62,10 +62,6 @@ ba17c6d1a270e1333e981f239bf7eb45 *./tests/data/acodec/pcm_f64le.wav
4233680 ./tests/data/acodec/pcm_f64le.wav 4233680 ./tests/data/acodec/pcm_f64le.wav
64151e4bcc2b717aa5a8454d424d6a1f *./tests/data/pcm.acodec.out.wav 64151e4bcc2b717aa5a8454d424d6a1f *./tests/data/pcm.acodec.out.wav
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400 stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400
ebd38ed390ebdefe0bdf00d21bf12c6b *./tests/data/acodec/pcm_zork.wav
529258 ./tests/data/acodec/pcm_zork.wav
7b02646acdd063650bb3ebc444543ace *./tests/data/pcm.acodec.out.wav
stddev: 633.11 PSNR: 40.30 MAXDIFF:32768 bytes: 1058400/ 1058400
1b75d5198ae789ab3c48f7024e08f4a9 *./tests/data/acodec/pcm_s24daud.302 1b75d5198ae789ab3c48f7024e08f4a9 *./tests/data/acodec/pcm_s24daud.302
10368730 ./tests/data/acodec/pcm_s24daud.302 10368730 ./tests/data/acodec/pcm_s24daud.302
4708f86529c594e29404603c64bb208c *./tests/data/pcm.acodec.out.wav 4708f86529c594e29404603c64bb208c *./tests/data/pcm.acodec.out.wav
......
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st:-1 flags:0 ts:-1.000000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st:-1 flags:1 ts: 1.894167
ret: 0 st: 0 flags:1 dts: 1.894127 pts: 1.894127 pos: 30364 size: 4096
ret: 0 st: 0 flags:0 ts: 0.788345
ret: 0 st: 0 flags:1 dts: 0.788367 pts: 0.788367 pos: 12672 size: 4096
ret: 0 st: 0 flags:1 ts:-0.317506
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st:-1 flags:0 ts: 2.576668
ret: 0 st: 0 flags:1 dts: 2.576757 pts: 2.576757 pos: 41286 size: 4096
ret: 0 st:-1 flags:1 ts: 1.470835
ret: 0 st: 0 flags:1 dts: 1.470748 pts: 1.470748 pos: 23590 size: 4096
ret: 0 st: 0 flags:0 ts: 0.365011
ret: 0 st: 0 flags:1 dts: 0.365125 pts: 0.365125 pos: 5900 size: 4096
ret: 0 st: 0 flags:1 ts:-0.740839
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st:-1 flags:0 ts: 2.153336
ret: 0 st: 0 flags:1 dts: 2.153379 pts: 2.153379 pos: 34512 size: 4096
ret: 0 st:-1 flags:1 ts: 1.047503
ret: 0 st: 0 flags:1 dts: 1.047506 pts: 1.047506 pos: 16818 size: 4096
ret: 0 st: 0 flags:0 ts:-0.058322
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st: 0 flags:1 ts: 2.835828
ret: 0 st: 0 flags:1 dts: 2.835760 pts: 2.835760 pos: 45430 size: 4096
ret: 0 st:-1 flags:0 ts: 1.730004
ret: 0 st: 0 flags:1 dts: 1.730000 pts: 1.730000 pos: 27738 size: 4096
ret: 0 st:-1 flags:1 ts: 0.624171
ret: 0 st: 0 flags:1 dts: 0.624127 pts: 0.624127 pos: 10044 size: 4096
ret: 0 st: 0 flags:0 ts:-0.481655
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st: 0 flags:1 ts: 2.412494
ret: 0 st: 0 flags:1 dts: 2.412381 pts: 2.412381 pos: 38656 size: 4096
ret: 0 st:-1 flags:0 ts: 1.306672
ret: 0 st: 0 flags:1 dts: 1.306757 pts: 1.306757 pos: 20966 size: 4096
ret: 0 st:-1 flags:1 ts: 0.200839
ret: 0 st: 0 flags:1 dts: 0.200748 pts: 0.200748 pos: 3270 size: 4096
ret: 0 st: 0 flags:0 ts:-0.904989
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st: 0 flags:1 ts: 1.989184
ret: 0 st: 0 flags:1 dts: 1.989116 pts: 1.989116 pos: 31884 size: 4096
ret: 0 st:-1 flags:0 ts: 0.883340
ret: 0 st: 0 flags:1 dts: 0.883379 pts: 0.883379 pos: 14192 size: 4096
ret: 0 st:-1 flags:1 ts:-0.222493
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
ret: 0 st: 0 flags:0 ts: 2.671678
ret: 0 st: 0 flags:1 dts: 2.671746 pts: 2.671746 pos: 42806 size: 4096
ret: 0 st: 0 flags:1 ts: 1.565850
ret: 0 st: 0 flags:1 dts: 1.565760 pts: 1.565760 pos: 25110 size: 4096
ret: 0 st:-1 flags:0 ts: 0.460008
ret: 0 st: 0 flags:1 dts: 0.460000 pts: 0.460000 pos: 7418 size: 4096
ret: 0 st:-1 flags:1 ts:-0.645825
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 58 size: 4096
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment