The Zork PCM decoder does not decode the 1 sample we have correctly, therefore
the encoder based on the decoder is also incorrect. There is no good reason to
keep the encoder.
| ... | ... |
@@ -666,7 +666,7 @@ following image formats are supported: |
| 666 | 666 |
@item PCM unsigned 24-bit little-endian @tab X @tab X |
| 667 | 667 |
@item PCM unsigned 32-bit big-endian @tab X @tab X |
| 668 | 668 |
@item PCM unsigned 32-bit little-endian @tab X @tab X |
| 669 |
-@item PCM Zork @tab X @tab X |
|
| 669 |
+@item PCM Zork @tab @tab X |
|
| 670 | 670 |
@item QCELP / PureVoice @tab @tab X |
| 671 | 671 |
@item QDesign Music Codec 2 @tab @tab X |
| 672 | 672 |
@tab There are still some distortions. |
| ... | ... |
@@ -483,7 +483,6 @@ OBJS-$(CONFIG_PCM_U32BE_ENCODER) += pcm.o |
| 483 | 483 |
OBJS-$(CONFIG_PCM_U32LE_DECODER) += pcm.o |
| 484 | 484 |
OBJS-$(CONFIG_PCM_U32LE_ENCODER) += pcm.o |
| 485 | 485 |
OBJS-$(CONFIG_PCM_ZORK_DECODER) += pcm.o |
| 486 |
-OBJS-$(CONFIG_PCM_ZORK_ENCODER) += pcm.o |
|
| 487 | 486 |
|
| 488 | 487 |
OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o |
| 489 | 488 |
OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o |
| ... | ... |
@@ -313,7 +313,7 @@ void avcodec_register_all(void) |
| 313 | 313 |
REGISTER_ENCDEC (PCM_U24LE, pcm_u24le); |
| 314 | 314 |
REGISTER_ENCDEC (PCM_U32BE, pcm_u32be); |
| 315 | 315 |
REGISTER_ENCDEC (PCM_U32LE, pcm_u32le); |
| 316 |
- REGISTER_ENCDEC (PCM_ZORK , pcm_zork); |
|
| 316 |
+ REGISTER_DECODER (PCM_ZORK , pcm_zork); |
|
| 317 | 317 |
|
| 318 | 318 |
/* DPCM codecs */ |
| 319 | 319 |
REGISTER_DECODER (INTERPLAY_DPCM, interplay_dpcm); |
| ... | ... |
@@ -171,15 +171,6 @@ static int pcm_encode_frame(AVCodecContext *avctx, |
| 171 | 171 |
memcpy(dst, samples, n*sample_size); |
| 172 | 172 |
dst += n*sample_size; |
| 173 | 173 |
break; |
| 174 |
- case CODEC_ID_PCM_ZORK: |
|
| 175 |
- srcu8 = data; |
|
| 176 |
- for (; n > 0; n--) {
|
|
| 177 |
- v = *srcu8++; |
|
| 178 |
- if (v < 128) |
|
| 179 |
- v = 128 - v; |
|
| 180 |
- *dst++ = v; |
|
| 181 |
- } |
|
| 182 |
- break; |
|
| 183 | 174 |
case CODEC_ID_PCM_ALAW: |
| 184 | 175 |
for(;n>0;n--) {
|
| 185 | 176 |
v = *samples++; |
| ... | ... |
@@ -518,4 +509,4 @@ PCM_CODEC (CODEC_ID_PCM_U24BE, AV_SAMPLE_FMT_S32, pcm_u24be, "PCM unsigned 24-b |
| 518 | 518 |
PCM_CODEC (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian"); |
| 519 | 519 |
PCM_CODEC (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); |
| 520 | 520 |
PCM_CODEC (CODEC_ID_PCM_U32LE, AV_SAMPLE_FMT_S32, pcm_u32le, "PCM unsigned 32-bit little-endian"); |
| 521 |
-PCM_CODEC (CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork"); |
|
| 521 |
+PCM_DECODER(CODEC_ID_PCM_ZORK, AV_SAMPLE_FMT_U8, pcm_zork, "PCM Zork"); |
| ... | ... |
@@ -357,6 +357,5 @@ do_audio_enc_dec au flt pcm_f32be |
| 357 | 357 |
do_audio_enc_dec wav flt pcm_f32le |
| 358 | 358 |
do_audio_enc_dec au dbl pcm_f64be |
| 359 | 359 |
do_audio_enc_dec wav dbl pcm_f64le |
| 360 |
-do_audio_enc_dec wav s16 pcm_zork |
|
| 361 | 360 |
do_audio_enc_dec 302 s16 pcm_s24daud "-ac 6 -ar 96000" |
| 362 | 361 |
fi |
| ... | ... |
@@ -62,10 +62,6 @@ ba17c6d1a270e1333e981f239bf7eb45 *./tests/data/acodec/pcm_f64le.wav |
| 62 | 62 |
4233680 ./tests/data/acodec/pcm_f64le.wav |
| 63 | 63 |
64151e4bcc2b717aa5a8454d424d6a1f *./tests/data/pcm.acodec.out.wav |
| 64 | 64 |
stddev: 0.00 PSNR:999.99 MAXDIFF: 0 bytes: 1058400/ 1058400 |
| 65 |
-ebd38ed390ebdefe0bdf00d21bf12c6b *./tests/data/acodec/pcm_zork.wav |
|
| 66 |
-529258 ./tests/data/acodec/pcm_zork.wav |
|
| 67 |
-7b02646acdd063650bb3ebc444543ace *./tests/data/pcm.acodec.out.wav |
|
| 68 |
-stddev: 633.11 PSNR: 40.30 MAXDIFF:32768 bytes: 1058400/ 1058400 |
|
| 69 | 65 |
8168a5c1343553ef027541830f2cb879 *./tests/data/acodec/pcm_s24daud.302 |
| 70 | 66 |
10368730 ./tests/data/acodec/pcm_s24daud.302 |
| 71 | 67 |
f552afadfdfcd6348a07095da6382de5 *./tests/data/pcm.acodec.out.wav |