Opened 4 years ago

Closed 4 years 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)

Engelsstaub - Anderswelt.dts.cut.wav (2.4 MB ) - added by Carl Eugen Hoyos 4 years ago.

Change History (18)

comment:1 by nachtzug, 4 years ago

upload via videolanfileuploader because of size.

comment:2 by nachtzug, 4 years ago

"Your upload has completed." ;-)

comment:3 by Carl Eugen Hoyos, 4 years ago

Component: ffmpegundetermined

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

comment:4 by nachtzug, 4 years ago

ok, I try to reupload it.

comment:5 by nachtzug, 4 years ago

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 by Carl Eugen Hoyos, 4 years ago

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

comment:7 by James, 4 years ago

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

comment:8 by Carl Eugen Hoyos, 4 years ago

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 by nachtzug, 4 years ago

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

comment:10 by nachtzug, 4 years ago

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 by Carl Eugen Hoyos, 4 years ago

Use ceffmpeg at gmail.

in reply to:  11 comment:12 by nachtzug, 4 years ago

Replying to cehoyos:

Use ceffmpeg at gmail.

check your inbox. ;-)

comment:13 by Carl Eugen Hoyos, 4 years ago

Component: undeterminedavcodec
Keywords: dca regression added
Priority: normalimportant
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-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%

by Carl Eugen Hoyos, 4 years ago

comment:14 by nachtzug, 4 years ago

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 4 years ago by nachtzug (previous) (diff)

in reply to:  14 ; comment:15 by James, 4 years ago

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.

in reply to:  15 comment:16 by nachtzug, 4 years ago

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 by James, 4 years ago

Resolution: fixed
Status: openclosed

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.