Opened 13 days ago

Closed 11 days ago

#6723 closed defect (fixed)

DTS-CD Decoding Distortion

Reported by: nachtzug Owned by:
Priority: important Component: avcodec
Version: git-master Keywords: dca regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

I have a very strange DTS-CD decoding problem. The ffmpeg dts decoder produces strange distortions when decoding my "Engelsstaub - Anderswelt" DTS-CD. I ripped it flawlessly as *.dts.wav. When playing via external DTS-Decoder (S/P-DIF) everything is fine. But decoding it in software (via ffmpeg) produces distortions. There's a chance, that this CD is not properly mastered, but my external hardware decoder has no problems with it. When (re-)burned to a CD-R, my Bluray-Player also plays it flawlessly. So it should be also possible to decode it via ffmpeg properly.

I have other DTS-CDs, which are perfectly decodable by ffmpeg. So at least my "workflow" seems to be correct. ;-)

How to reproduce:

% ffmpeg -i input.dts.wav ... output.wav
ffmpeg version 3.3.4
built on amd64 / gentoo

I will upload the cue/dts.wav as anderswelt_dts_decoding_distortion.7z

thanks!

Attachments (1)

Change History (18)

comment:1 Changed 13 days ago by nachtzug

upload via videolanfileuploader because of size.

comment:2 Changed 13 days ago by nachtzug

"Your upload has completed." ;-)

comment:3 Changed 13 days ago by cehoyos

  • Component changed from ffmpeg to undetermined

Your file did not appear on streams.videolan.org/upload/
Please try again or consider using dropbox or datafilehost ,

comment:4 Changed 13 days ago by nachtzug

ok, I try to reupload it.

comment:5 Changed 13 days ago by nachtzug

URL: https://streams.videolan.org/upload/
Project: ffmpeg
Version: ffmpeg version 3.3.4
Trac Ticket: 6723
Filename: anderswelt_dts_decoding_distortion.7z
Filesize: 523906229 Bytes (500MB)
SHA1: eb66711de83845cd0ae6e2605abff4ca50f26deb

upload completed. Please check.

if this still does not work, I will upload it to my webspace. But then I need your email to send you the URL. I will not post it here... ;-)

comment:6 Changed 13 days ago by cehoyos

Sorry, the file did not appear, please use a file host of your choice.

comment:7 Changed 13 days ago by jamrial

Maybe this should be reported to videolan. The upload should not be failing...

comment:8 Changed 13 days ago by cehoyos

I tested it minutes ago with the listed properties and it works fine, I suspect there is a file size limit (that did not exist for the ftp server).

comment:9 Changed 13 days ago by nachtzug

ok, please give me your email. I Upload it to my server and send you the URL.

comment:10 Changed 12 days ago by nachtzug

I still wait for your email address, or any other way to communicate the URL. I uploaded the file to my webspace, but don't want to make that link public here. Thanks!

comment:11 follow-up: Changed 12 days ago by cehoyos

Use ceffmpeg at gmail.

comment:12 in reply to: ↑ 11 Changed 12 days ago by nachtzug

Replying to cehoyos:

Use ceffmpeg at gmail.

check your inbox. ;-)

comment:13 Changed 12 days ago by cehoyos

  • Component changed from undetermined to avcodec
  • Keywords dca regression added
  • Priority changed from normal to important
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

For future tickets: Please test current FFmpeg git head (nothing else is supported here), provide the command line you tested together with the complete, uncut console output and please cut your samples.

Regression since a0349ae27c127df8c72de1c30dc4090360ec7ef4, a possibly related error - Read past end of core frame - was shown since ae5b2c52 (the new dts decoder) but no distortions were audible.

$ ffmpeg -i Engelsstaub\ -\ Anderswelt.dts.cut.wav out.wav
ffmpeg version N-87764-gb2f256a Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl
  libavutil      55. 77.101 / 55. 77.101
  libavcodec     57.106.104 / 57.106.104
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57.  9.102 / 57.  9.102
  libavfilter     6.106.101 /  6.106.101
  libswscale      4.  7.103 /  4.  7.103
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
[dts @ 0x39fb3a0] Estimating duration from bitrate, this may be inaccurate
Input #0, dts, from 'Engelsstaub - Anderswelt.dts.cut.wav':
  Duration: 00:00:14.51, start: 0.000000, bitrate: 1411 kb/s
    Stream #0:0: Audio: dts (DTS), 44100 Hz, 5.1(side), fltp, 1411 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (dts (dca) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, wav, to 'out.wav':
  Metadata:
    ISFT            : Lavf57.83.100
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 5.1(side), s16, 4233 kb/s
    Metadata:
      encoder         : Lavc57.106.104 pcm_s16le
size=    3750kB time=00:00:07.25 bitrate=4237.4kbits/s speed= 163x
video:0kB audio:3750kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.002656%

Changed 12 days ago by cehoyos

comment:14 follow-up: Changed 12 days ago by nachtzug

the posted WAV ist INCORRECT/DAMAGED! That's what I meant.

Please burn the *.dts.wav on CD-R and listen to it on a hardware DVD/Blueray-Player, or play it as Bitstream through S/P-DIF. It sounds completely different!

Last edited 12 days ago by nachtzug (previous) (diff)

comment:15 in reply to: ↑ 14 ; follow-up: Changed 12 days ago by jamrial

Replying to nachtzug:

the posted WAV ist INCORRECT/DAMAGED! That's what I meant.

Please burn the *.dts.wav on CD-R and listen to it on a hardware DVD/Blueray-Player, or play it as Bitstream through S/P-DIF. It sounds completely different!

I don't think he said it was damaged. He said the fact ffmpeg fails at decoding it right is a regression introduced by an specific change made a year and a half ago.

Before said change, the file played fine.

comment:16 in reply to: ↑ 15 Changed 12 days ago by nachtzug

Replying to jamrial:

Before said change, the file played fine.

ahh, ok!

if you know there's an error, you can probably fix it. ;-)

but I'm not sure if it ever played correctly with ffmpeg. But now you know how to compare the expected result with the output of ffmpeg.

comment:17 Changed 11 days ago by jamrial

  • Resolution set to fixed
  • Status changed from open to closed

Should be fixed in 23990950e35eff0b96f843c396a62a6429ea25ec, which will be part of ffmpeg 3.4

It should also be backported to older release branches soon.

Note: See TracTickets for help on using tickets.