Opened 18 months ago

Last modified 3 months ago

#6091 open sponsoring request

support ds2 audio (dss pro audio) file format

Reported by: vineet156 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 vineet156 18 months ago.
sample ds2 audio file for testing
VoiceRec11.aif (498.6 KB) - added by vineet156 18 months ago.
corresponding aiff file as exported from DSS player

Download all attachments as: .zip

Change History (17)

Changed 18 months ago by vineet156

sample ds2 audio file for testing

comment:1 Changed 18 months ago by vineet156

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 Changed 18 months ago by cehoyos

  • Keywords dss added
  • Priority changed from normal to wish
  • Reproduced by developer set
  • Status changed from new to open

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

comment:3 Changed 18 months ago by vineet156

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 Changed 18 months ago by cehoyos

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

comment:5 Changed 18 months ago by vineet156

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

Changed 18 months ago by vineet156

corresponding aiff file as exported from DSS player

comment:6 Changed 18 months ago by vineet156

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

thanks,

comment:7 Changed 18 months ago by cehoyos

Whatever the dss player outputs directly is useful.

comment:8 Changed 18 months ago by cehoyos

  • Component changed from avformat to avcodec

comment:9 Changed 18 months ago by vineet156

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 Changed 18 months ago by richardpl

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

comment:11 follow-up: Changed 18 months ago by vineet156

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

comment:12 in reply to: ↑ 11 Changed 18 months ago by llogan

  • 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 Changed 12 months ago by jphayes

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

comment:14 Changed 12 months ago by jphayes

  • Keywords ds2 added
  • Type changed from enhancement to sponsoring request

comment:15 Changed 3 months ago by richardpl

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

Note: See TracTickets for help on using tickets.