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.
Unified · Split
| @@ -666,7 +666,7 @@ following image formats are supported: · 665 unmodified lines | ||
| 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 · 482 unmodified lines | ||
| 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) · 312 unmodified lines | ||
| 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, · 170 unmodified lines | ||
| 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 · 332 unmodified lines | ||
| 518 | 509 | PCM_CODEC (CODEC_ID_PCM_U24LE, AV_SAMPLE_FMT_S32, pcm_u24le, "PCM unsigned 24-bit little-endian"); |
| 519 | 510 | PCM_CODEC (CODEC_ID_PCM_U32BE, AV_SAMPLE_FMT_S32, pcm_u32be, "PCM unsigned 32-bit big-endian"); |
| 520 | 511 | 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"); | |
| 512 | +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 · 356 unmodified lines | ||
| 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 · 61 unmodified lines | ||
| 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 |