Opened 7 years ago

Last modified 5 months ago

#6091 open sponsoring request

support ds2 audio (dss pro audio) file format

Reported by: Vineet Goel Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: dss bounty ds2
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: ffmpeg already supports dss audio file decoding. Please add support for ds2 as well, which is an improved version of dss and called "dss pro"
How to reproduce:

ffmpeg started on 2017-01-19 at 04:20:46
Report written to "ffmpeg-20170119-042046.log"
Command line:
../bin/ffmpeg -report -i VoiceRec11.ds2 VoiceRec11.mp3
ffmpeg version N-83132-g9561de4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/home/ubuntu/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-I/home/ubuntu/ffmpeg_build/include -static' --extra-ldflags='-L/home/ubuntu/ffmpeg_build/lib -static' --bindir=/home/ubuntu/bin --enable-libmp3lame
  libavutil      55. 43.100 / 55. 43.100
  libavcodec     57. 73.100 / 57. 73.100
  libavformat    57. 62.100 / 57. 62.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 69.100 /  6. 69.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input url with argument 'VoiceRec11.ds2'.
Reading option 'VoiceRec11.mp3' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url VoiceRec11.ds2.
Successfully parsed a group of options.
Opening an input file: VoiceRec11.ds2.
[file @ 0x3e5db40] Setting default whitelist 'file,crypto'
[AVIOContext @ 0x3e66f60] Statistics: 1048576 bytes read, 0 seeks
VoiceRec11.ds2: Invalid data found when processing input

A ds2 sample file is attached for testing.
Also making a small donation to the project

thank you,

Attachments (2)

VoiceRec11.ds2 (57.0 KB ) - added by Vineet Goel 7 years ago.
sample ds2 audio file for testing
VoiceRec11.aif (498.6 KB ) - added by Vineet Goel 7 years ago.
corresponding aiff file as exported from DSS player

Download all attachments as: .zip

Change History (18)

by Vineet Goel, 7 years ago

Attachment: VoiceRec11.ds2 added

sample ds2 audio file for testing

comment:1 by Vineet Goel, 7 years ago

I had to attach a different input ds2 file instead of the one used in the command line, due to file size upload limit of 2.5MB

comment:2 by Carl Eugen Hoyos, 7 years ago

Keywords: dss added
Priority: normalwish
Reproduced by developer: set
Status: newopen

Are you able to transcode the attached file to something audible?

comment:3 by Vineet Goel, 7 years ago

Not directly using earlier command. Since there is no output file generated.
But if I force the input file format to "dss", then it trancodes mp3 output successfully. However, the audio is all muzzled up, and the duration is double the input file's duration (32 seconds instead of 16 seconds)
fyi, input file's codec is dss_sp only as I checked in a dss player.

ffmpeg started on 2017-01-19 at 06:19:58
Report written to "ffmpeg-20170119-061958.log"
Command line:
ffmpeg -report -f dss -i VoiceRec11.ds2 VoiceRec11.mp3
ffmpeg version N-83132-g9561de4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/home/ubuntu/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-I/home/ubuntu/ffmpeg_build/include -static' --extra-ldflags='-L/home/ubuntu/ffmpeg_build/lib -static' --bindir=/home/ubuntu/bin --enable-libmp3lame
  libavutil      55. 43.100 / 55. 43.100
  libavcodec     57. 73.100 / 57. 73.100
  libavformat    57. 62.100 / 57. 62.100
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 69.100 /  6. 69.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
Splitting the commandline.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'dss'.
Reading option '-i' ... matched as input url with argument 'VoiceRec11.ds2'.
Reading option 'VoiceRec11.mp3' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url VoiceRec11.ds2.
Applying option f (force format) with argument dss.
Successfully parsed a group of options.
Opening an input file: VoiceRec11.ds2.
[file @ 0x2798b80] Setting default whitelist 'file,crypto'
[dss @ 0x2798200] Before avformat_find_stream_info() pos: 1536 bytes read:32768 seeks:0 nb_streams:1
[dss @ 0x2798200] All info found
[dss @ 0x2798200] Estimating duration from bitrate, this may be inaccurate
[dss @ 0x2798200] After avformat_find_stream_info() pos: 3616 bytes read:32768 seeks:0 frames:50
Input #0, dss, from 'VoiceRec11.ds2':
  Metadata:
    author          : DPM 6000
    date            : 2017-01-12T10:44:19
    comment         : 
  Duration: 00:00:32.80, start: 0.000000, bitrate: 14 kb/s
    Stream #0:0, 50, 1/11025: Audio: dss_sp, 11025 Hz, mono, s16
Successfully opened the file.
Parsing a group of options: output url VoiceRec11.mp3.
Successfully parsed a group of options.
Opening an output file: VoiceRec11.mp3.
[file @ 0x27af4e0] Setting default whitelist 'file,crypto'
Successfully opened the file.
detected 1 logical cores
[graph_0_in_0_0 @ 0x27b7dc0] Setting 'time_base' to value '1/11025'
[graph_0_in_0_0 @ 0x27b7dc0] Setting 'sample_rate' to value '11025'
[graph_0_in_0_0 @ 0x27b7dc0] Setting 'sample_fmt' to value 's16'
[graph_0_in_0_0 @ 0x27b7dc0] Setting 'channel_layout' to value '0x4'
[graph_0_in_0_0 @ 0x27b7dc0] tb:1/11025 samplefmt:s16 samplerate:11025 chlayout:0x4
[format_out_0_0 @ 0x27b8880] Setting 'sample_fmts' to value 's32p|fltp|s16p'
[format_out_0_0 @ 0x27b8880] Setting 'sample_rates' to value '44100|48000|32000|22050|24000|16000|11025|12000|8000'
[format_out_0_0 @ 0x27b8880] Setting 'channel_layouts' to value '0x4|0x3'
[format_out_0_0 @ 0x27b8880] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 0x27b7c80] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_resampler_0 @ 0x27b9280] picking s16p out of 3 ref:s16
[auto_resampler_0 @ 0x27b9280] [SWR @ 0x27b9620] Using s16p internally between filters
[auto_resampler_0 @ 0x27b9280] ch:1 chl:mono fmt:s16 r:11025Hz -> ch:1 chl:mono fmt:s16p r:11025Hz
Output #0, mp3, to 'VoiceRec11.mp3':
  Metadata:
    author          : DPM 6000
    TDRC            : 2017-01-12T10:44:19
    comment         : 
    TSSE            : Lavf57.62.100
    Stream #0:0, 0, 1/11025: Audio: mp3 (libmp3lame), 11025 Hz, mono, s16p
    Metadata:
      encoder         : Lavc57.73.100 libmp3lame
Stream mapping:
  Stream #0:0 -> #0:0 (dss_sp (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[dss_sp @ 0x27a3480] combined_pitch was too large
[dss_sp @ 0x27a3480] combined_pitch was too large
No more output streams to write to, finishing.
[libmp3lame @ 0x27ae880] Trying to remove 359 more samples than there are in the queue
size=      65kB time=00:00:32.81 bitrate=  16.1kbits/s speed= 214x    
video:0kB audio:64kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.502818%
Input file #0 (VoiceRec11.ds2):
  Input stream #0:0 (audio): 1369 packets read (57498 bytes); 1369 frames decoded (361416 samples); 
  Total: 1369 packets (57498 bytes) demuxed
Output file #0 (VoiceRec11.mp3):
  Output stream #0:0 (audio): 628 frames encoded (361416 samples); 630 packets muxed (65829 bytes); 
  Total: 630 packets (65829 bytes) muxed
1369 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x27af3a0] Statistics: 1 seeks, 632 writeouts
[AVIOContext @ 0x27a1f60] Statistics: 58368 bytes read, 0 seeks

comment:4 by Carl Eugen Hoyos, 7 years ago

What I meant was: Do you have other software that is able to provide reference output?

comment:5 by Vineet Goel, 7 years ago

Yes, the DSS player allows me to export the ds2 file to aiff format. attaching the exported aiff file.

by Vineet Goel, 7 years ago

Attachment: VoiceRec11.aif added

corresponding aiff file as exported from DSS player

comment:6 by Vineet Goel, 7 years ago

is the attached file VoiceRec11.aif useful or should I provide it in some other format?

thanks,

comment:7 by Carl Eugen Hoyos, 7 years ago

Whatever the dss player outputs directly is useful.

comment:8 by Carl Eugen Hoyos, 7 years ago

Component: avformatavcodec

comment:9 by Vineet Goel, 7 years ago

my humble request if the priority for this can be increased. Actually I am stuck in a difficult situation here and this seems to be only way out.
thank you

comment:10 by Elon Musk, 7 years ago

The only way to increase priority of bug is finding someone to do it.
Or giving bounty.

comment:11 by Vineet Goel, 7 years ago

how does bounty work in here? ready to pitch $250

in reply to:  11 comment:12 by llogan, 7 years ago

Keywords: bounty added

Replying to vineet156:

how does bounty work in here? ready to pitch $250

Someone adds the bounty keyword and that's pretty much it. Then you can communicate directly with any interested developers. Leaving your email address may be helpful for someone to contact you if you prefer. Or you can use Bountysource if you like that, but they do take a cut (make sure to leave a link if you want to use BS).

comment:13 by John Paul Hayes, 7 years ago

This is a feature that I require so I will gladly give a bounty of $500 for ds2 support.

comment:14 by John Paul Hayes, 7 years ago

Keywords: ds2 added
Type: enhancementsponsoring request

comment:15 by Elon Musk, 6 years ago

If you want to sponsor contact developers directly, as I'm developer I'm also interested in this.

comment:16 by traycerb, 5 months ago

Just chiming in about how useful this feature would still be.

There is still no open-source way to play or transcode these files. It looks like significant bounties were offered in the past, but no one was interested, so not sure if there will ever be any traction, but would be glad to contribute any way I can if someone was interested.

Note: See TracTickets for help on using tickets.